公式ドキュメント: Upgrade Guide
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
laravel7.2をcreateして一応違いを確認しておく。
6系だとconfig/service.phpに書かれていたsmtp周りがconfig/mail.phpに纏められています。確かに、なんでservice.phpに?って思っていたので、これは良い改良です。
'mailers' => [ 'smtp' => [ 'transport' => 'smtp', 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), 'port' => env('MAIL_PORT', 587), 'encryption' => env('MAIL_ENCRYPTION', 'tls'), 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), ], 'ses' => [ 'transport' => 'ses', ], 'sendmail' => [ 'transport' => 'sendmail', 'path' => '/usr/sbin/sendmail -bs', ], 'log' => [ 'transport' => 'log', 'channel' => env('MAIL_LOG_CHANNEL'), ], 'array' => [ 'transport' => 'array', ], ],
しかし、まさかもうLaravel6.x系が古くなるとは思わなかった。。