目次
Chapter1 Laravelのコア機能を考える
1-1 ルーティング
ベースプロジェクトの用意
ルートの基本
名前付きルートについて
whereによる正規表現ルート
HTTPステータスコードによるエラー表示
ルートグループについて
ミドルウェアの適用
名前空間とグループルート
ルートとモデルの結合
1-2 設定情報と環境変数
設定情報とConfigクラス
設定情報を更新する
環境変数の利用
1-3 ファイルシステム
Storageクラスについて
ファイルアクセスの実際
localとpublic
publicディスクにアクセスする
ファイル情報を取得するメソッド
ファイル情報取得メソッドでファイル情報を表示する
ファイルのコピー・移動・削除
際るのダウンロード
ファイルのアップロード処理メソッド(putFile)
ディレクトリの管理
Filesystem.phpについて
「logs」ディスクを用意する
FTPディスクを作成する
1-4 リクエストとレスポンス
Requestについて
フォームをまとめて処理する
Responseと出力コンテンツ
フォームの必要な項目のみ利用する
フォーム地の保管とold関数
クエリパラメータの利用
クエリパラメータを指定したリダイレクト
Chapter2 サービスとミドルウェア
2-1 サービスコンテナと結合
DIとサービスコンテナ
サービスとしてのクラスを用意する
明示的にインスタンスを生成する
引数が必要なクラスのインスタンス取得
サービスコンテナへの結合
サービスとシングルトン
MySerivceをシングルトンで結合する
引数を必要とする結合
インターフェイスを利用した粗な結合
MyServiceInterface実装クラスを作成する
結合t時のイベント処理について
2-2 ファサードの利用
サービスとサービスプロバイダ
サービスプロバイダを作成する
ファサードとは?
MyServiceファサードを作成する
ファサードを登録する
MyServiceファサードを使う
2-3 ミドルウェアの利用
リクエストを拡張するミドルウェア
MyMiddlewareミドルウェアを作る
MyMiddlewareミドルウェアの利用
beforeとafterについて
after処理を追加する
ミドルウェアの利用範囲と設定
グローバルミドルウェアの利用
Chapter3 データベースの活用
3-1 DBクラスとクエリビルダ
DB::selectの利点と欠点
クエリビルダを使う
fableとselectを使う
whereメソッドによる検索条件
あいまい検索はどうする?
whereRawは書き方に注意!
最初・最後のレコード取得
指定IDのレコード取得(find)
特定のフィールドだけ取得(pluck)
chunkByldによる分割処理
orderByとchunkを使う
一定の部分だけを抜き出して処理する
さまざまなwhere
3-2 ペジネーション
paginateによるペジネーション
ナビゲーションリンクの表示
Eloquent利用の場合
カスタムナビゲーションリンクの作成
Paginatorのメソッド
ナビゲーションリンクのタグについて
3-3 EloquentとCollection
Eloquentとモデルクラス
モデルの基本ルール
Personモデルの基本形
モデルとコレクション
コレクションの機能:rejectとfilter
コレクションの機能:diffによる差分取得
コレクションの機能:modelKeysとonlyおよびexcept
コレクションの機能:mergeとunique
mapによるコレクション生成
3-4 モデルの拡張
カスタムコレクションの利用
アクセサについて
既存のプロパティを変更する
ミューテータについて
配列でデータを保存する
JSON形式でのレコード取得(toJson)
JavaScriptからアクセスする
3-5 Scoutによる全文検索
Scoutとは?
全文検索を利用する
インデックスの操作
TNTSearchを利用する
toSearchableArrayの実装
Chapter4 キュー・ジョブ・イベント・スケジューラ
4-1 キューとジョブ
キューとは何か?
ジョブを作成する
ジョブ用プロバイダを作成する
MyJobをディスパッチする
データベースにアクセスする
非同期に対応させる
ワーカを実行する
キューテーブルを確認する
ワーカ実行コマンドについて
特定のキューを指定する
クロージャをキューに登録する
4-2 イベントの利用
イベントとは?
EventServiceProviderについて
PersonEventについて
PersonEventListenerについて
PersonEventを発行する
購読について
イベントディスカバリについて
キューを利用してイベントを発行する
ジョブか? イベントか?
4-3 タスクとスケジューラ
タスクを実行する
/app/Console/Kernel.phpについて
Scheduleクラスの「コマンドの実行」:execとcommandメソッド
Artisanコマンドを実行する「command」メソッド
クロージャで処理を実行する
invoke実装クラスをcallする
ジョブをinvoke化する
jobメソッドによるジョブ実行
Chapter5 フロントエンドとの連携
5-1 Vue.jsを利用する
Vue.jsのセットアップ
コンポーネントを利用する
コンポーネントを作成する
axiosでJSONデータを取得する
5-2 Reactの利用
React利用のセットアップ
package.jsonについて
Reactを利用する
アプリケーションを実行する
Exampleコンポーネントについて
MyComponentを作る
クライアント=サーバー通信について
5-3 Angularの利用
LaravelはAngular未対応!
Angularコンポーネントを利用する
AngularアプリとLaravelアプリのビルド
Angularの開発手順について
コンポーネントをを作成する
axiosでサーバー通信する
Chapter6 ユニットテスト
6-1 コントローラーのテスト
Laravel開発とテスト
設定ファイルphpunit.xmlについて
2つのテスト用スクリプト
/tests/Unit/ExampleTest.phpについて
/tests/Feature/ExampleTest.phpについて
コントローラーをテストする
6-2 モデルのテスト
テスト用データベースの準備
マイグレーションの用意
シーディングの用意
モデルのテストを行う
モデルを利用する
テーブルの初期化について
シードを利用する
6-3 ファクトリの利用
ファクトリを作成する
ファクトリを使ってテストする
ステートを設定する
ステートを利用する
コールバックの設定
6-4 モックの活用
ジョブをテストする
クロージャでディスパッチ状況をチェックする
イベントをテストする
コントローラーでイベントを発行させる
キューをテストする
特定のキューを調べるには?
サービスをテストする
クラスをモックする
PowerMyServiceをモックする
Chapter7 ArtisanCLIの開発
7-1 Artisanコマンドの利用
Artisanコマンドについて
dump-serverの利用
dump-serverを起動する
Tinkerの利用
Tinkerの設定ファイルの作成
7-2 スクリプト内からArtisanを使う
Artisanクラスの利用
実行結果を受け取るには?
オプションを設定する
7-3 Artisanコマンド開発
Artisanコマンドを作成する
MyCommand.phpの内容を確認する
シグネチャと説明を用意
コマンドの出力を作成するhandleメソッド
引数を利用する
可変長引数の利用
オプションの利用
インタラクティブな操作
複数項目の選択
出力の形式について
テーブル出力について
クロージャコマンドについて