15_4_Laravel6.2 → Laravel 7.x upgrade - hpscript/laravel GitHub Wiki
公式ドキュメント: https://laravel.com/docs/7.x/upgrade
Update your laravel/framework dependency to ^7.0 in your composer.json file. In addition, update your nunomaduro/collision dependency to ^4.1, phpunit/phpunit dependency to ^8.5, laravel/tinker dependency to ^2.0, and facade/ignition to ^2.0.
composer.json
//省略
"laravel/framework": "^7.0",
"nunomaduro/collision": "^4.1",
"phpunit/phpunit": "^8.5"
"laravel/tinker": "^2.0",
"facade/ignition": "^2.0",
"laravel/ui": "^2.0",
// 省略
App/Exceptions/Handler -> composer.updateする前に変更しないとエラーになる
use Throwable;
// public function report(Exception $exception)
public function report(Throwable $exception)
// public function render($request, Exception $exception)
public function render($request, Throwable $exception)
$ php composer.phar update $ php artisan --version Laravel Framework 7.2.1
主要変更点
- Symfony 5 関連のアップグレード -- App\Exceptions\Handlerクラスのreportとrender -- コンフィグファイルのsessionのoptionのデフォルト値の変更
- Authenticationー認証 -- laravel/uiを~2.0にする必要
- Date Serializationー日付のシリアライズ化 -- 2019-12-02 20:01:00は7系から2019-12-02T20:01:00.283041Zに更新
- $model->getOriginal()メソードはキャストされたモデルを使用
その他変更点
- PHPのバージョン 7.2.5以上
- Blade::componentメソードをBlade::aliasComponentに変更
- Blade Components & "Blade X"
- "factory types"機能を削除
- addHiddenとaddVisible削除
- bootingとbootedをEloquentに追加
- resolveRouteBindingメソードは$fieldパラメータ使用
- Illuminate\Auth\Passwords\TokenRepositoryInterfaceにrecentlyCreatedTokenを使用
- queue:workコマンドのフラグ--daemonが削除
- Illuminate\Http\Resources\Json\Resourceは削除
- array セッションドライバのデータはカレントリクエストに持続的にアクセス
- TestResponseクラスのassertSee アサーションは自動的にエスケープ
- differentルールはリクエストに特定のパラメータが足りない場合に通らない
各変更点の確認
-
Authentication laravel/ui 2.0で異常なし
-
コンフィグファイルのsessionのoptionのデフォルト値の変更 config/session.php
// 'secure' => env('SESSION_SECURE_COOKIE', false),
'secure' => env('SESSION_SECURE_COOKIE', null),
// 'same_site' => null,
'same_site' => 'lax',
-
Date Serialization 一部データをJasonで送って、blade側でdateのデータ(created_at)をmomentでMM/DD HH:mmに変換しているが、挙動確認したところ影響はない。
-
$model->getOriginal() 画像の保存処理で、$file->getClientOriginalName();としており、似ているため念の為確認したが、やはり問題なし
-
Mail Configuration File Changes 一応確認しておく。