PHPフレームワーク Laravel入門 第2版 4章 メモ

Chapter 4 リクエスト・レスポンスを補完する

4-1 ミドルウェアの利用

  • ミドルウェア概要
    • ミドルウェアは、コントローラー処理前後に割り込み、独自の処理を追加する仕組み
    • ミドルウェアの設定はルート情報記述で指定 --> コントローラーから分離している
  • 実践
    • artisanで作成 artisan make:middleware HelloMiddleware
    • app\Http\Kernel.php routeMiddleware へ追記
    • routes\web.php ->middleware() で、登録
    • Controller、Template を書き換え
    • Controller処理前後は $next($request) の呼び出し前後にあたる
    • global middleware は app\Http\Kernel.php middleware へ追記
    • グループ化 Ha middlewareGroups へ追記

4-2 バリデーション

  • コントローラーの validate メソッドを利用 (もっとも簡単な方法)
  • Validation rule を連想配列で定義
  • 定義を引数にvalidateメソッド呼び出し
  • $errors変数、@error directive 使用
  • Validation rule catalog

4-3 バリデーションをカスタマイズする

  • FormRequest概要
    • Requestクラスを、Formで利用するのに便利なように拡張したもの
  • FormRequestを作る
  • Validator
    • Validator::make()
  • 独自Validator作成
    • app\Http\Validators 下に HelloValidator.php 作成
    • HelloServiceProvider boot() で HelloValidator を登録
  • Validator::extendを利用
    • Validatorをワンポイントで使いたいときに使う
  • バリデーションルールを作る
    • 作成 php artisan make:rule Myrule
    • rule を記述する箇所で(HelloRequest rules()など)でインスタンス化して使う

4-4 その他のリクエスト・レスポンス処理

  • CSRF対策
    • app\Http\Middleware\VerifyCsrfToken.php
    • $except にPathを追記すると、CSRF確認されなくなる
  • クッキーを読み書きする
    • 読み $request->cookie('msg')
    • 書き $response->cookie('msg', $request->msg, 100)
  • リダイレクト
    • 引数にパスを指定し、redirect()ヘルパーを呼び出すと、RedirecResponseを返す
    • RedirecResponseの主なメソッド
      • withInput(), withErrors(), withCookie()
    • 引数指定なしで、redirect()ヘルパーを呼び出すと、Redirectorを返す
    • Redirectorの主なメソッド
      • route(), action(), view(), json(), download(), file()
  • Response $response と respose()呼び出し の違い
    • Response $responseでは->view()呼び出しできない
    • respose()呼び出しはResponseFactoryインスタンスを返す
    • ResponseFactoryインスタンスはそこにあるviewを呼び出しす