公式ドキュメント: 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系が古くなるとは思わなかった。。