Laravel6へのアップグレード内容

仕事でもろもろ事情がありLaravel5系を使用しているので時代に取り残されないよう段階的にアップグレード内容を確認する

アップグレードガイド 6.x Laravel

 

  • php7.2以上でないと動かない
    なるほど

 

  • authorizeResource()※コントローラーごとに認可を設定できるメソッド
    が、viewAny()がないと動かなくなる
    authorizeResourceについて、仕事ではroutesでmiddleware(Gate)を使用しているのであまり関係がないが使う日が来るかもしれない…

 

  • Illuminate\Auth\Access\Responseのコンストラクタ変更
    Authなので認証関係ぽい

 

  • ポリシーのメソッドについて必ずdeny()の返り値を返す必要がある
    ポリシーを使っていないが、返り値の値が変わると変な使い方してたら影響範囲はそこそこありそう

 

  • Illuminate\Contracts\Auth\Access\Gateのインターフェースを作成している場合、inspectメソッドが追加になったため追加実装が必要
    これもAuthなので認証関係か

 

  • Carbon 1.xは使用不可、Carbon2.0を使用
    Carbonのアップグレード内容を確認したほうがよさそう

 

 

  • デフォルトのRedisクライアントが変更、以前までのクライアントを使用する場合redis.clientの値を変更する必要あり
    Redisはキャッシュ関係。何も考えず前のクライアントを使ったほうがとりあえずはしのぐのに楽そうだけども…デメリットがあるならこれを機に置き換えたほうがいいのかもしれない

 

  • Laravel Vaporを使用する場合、キャッシュ保存の設定を追加する必要あり(dynamodb)
    Laravel Vaporとは、サーバーレスなLaravelアプリを作成できるプラットフォームらしい。サーバーレスにはあまりまだふれたことがない…

 

  • Laravel Vaporを使用する場合、キュー設定にsqsのオプションを追加する必要あり
    今度触ってみたい。SQSはキューが飛んで行って返してくれるというあいまい認識なので今度勉強する

 

  • illuminate/databaseを依存パッケージとして使用しているLaravel以外のアプリケーションを対象とする変更で、Illuminate\Database\Capsule\Managerクラスのtable()の使用方法が変更に

 

  • cursor()の返り値が変更に
    モデル関係で使用するメソッド。一行ずつ結果を返してくれるもの

 

  • BelongsToのupdate()の振る舞いが変更に
    update()->updateではなく、大元のモデルのupdateを呼び出す必要がある
    修正時は一発置き換えでも良さそう

 

  • EloquentモデルのtoArray()が、Illuminate\Contracts\Support\Arrayableを実装している属性も配列に変換するように変更

 

  • モデルの主キーに数字ではなく文字列を使用してる場合、別途宣言が必要に
    文字列を使ったDB設計をしたことがない。どんなものに向いているか気になってきた

 

  • routeでemail/resendを使用している場合、getからpostに変更になったためフロントを変更する必要あり
    使用していないが変えないと絶対にエラーになる変更

 

  • Illuminate\Contracts\Auth\MustVerifyEmailを使用して自前で実装している場合、getEmailForVerification()が追加になったため追加実装する必要あり

 

  • メール確認のrouteが変更

 

  • str_str_とarray_が削除されたため、別クラスを使用するかcomposerでライブラリを導入
    もともと使用していなかった。

 

  • Lang::trans()とLang::transChoice()のリネーム、これに伴いIlluminate\Contracts\Translation\Translatorを使用して自前で実装している場合はこちらも同様リネームが必要
    言語化などで使用しているクラス群のはず

 

  • Lang::getFromJson()がLang::get()に統合されたため、該当箇所はLang::get()の呼び出しに置き換える

 

  • mandrillとsparkpostメールドライバの削除(引き続き使用したい場合は採用しているパッケージを探す必要あり)

 

  • nexmorouteの削除、Notifiableに置き換える必要あり
    SNS通知に使用するものだったらしい

 

  • PasswordBrokerがバリデーションを行わなくなったため、渡す前にバリデーションを行う必要あり

 

  • php artisan queue:workコマンドが無制限再試行から1回のみの実行に変更、無制限にしたい場合はオプションを付ける必要あり
    無制限に試行しないでほしいのでよかった

 

  • InputファサードがRequestと重複しているため削除、Requestファサードに置き換える必要あり
    Inputファサードを使用していないので問題なし
    修正時は一発置き換えでいけそう

 

  • between()メソッドの引数の変更
    真逆になったぽい

  • rackspaceストレージドライバの削除(引き続き使用したい場合は採用しているパッケージを探す必要あり)

 

  • routeに設定された以外の値が渡された場合、URIとして生成していたがクエリパラメータとするように変更、actionヘルパも同様
    クエリパラメータとしてきてくれた方が影響がすくない…?