全く追いかけていなかったので、Upgradeやらを見ながらメモ書き。
Laravel 5.8 Release おめでとうございます。
というわけで、新機能と、5.7 → 5.8 のアップデートメモ
皆に影響がある部分として、下記の4つがあるそうです。
- Cache TTL Change
- Cache Lock Safety Improvements
- MarkDown File Directory Change
- Nexmo / Slack Notification Channels
PHP DotEnv 3.0
複数行の値が使えるようになった。
DOT_ENV_KEY="DOT
ENV
VALUE"
Carbon v2.0
Carbon V2 にアップデートされます。
see: Carbon Update Coming Laravel 5.8
Cache TTL Change
Cacheを使っている時に有効時間(分)をしていたのを、明確に期限切れを指定する形になります。
<?php
# ~5.7
\Cache::reminder('active-posts', 5, function(){ return Post::active()->get(); });
# 5.8~
\Cache::reminder('active-posts', now()->addMinute(5), function(){ return Post::active()->get(); });
see: Cache TTL Change Coming to Laravel 5.8
Deprecates String and Array Helpers
関数で存在していた array_add($array, $key, $value)
が非推奨になります。代わりに Arr::add($array, $key, $value)
を使ってください。
Illuminate/Support/helpers.php
に @deprecated <method> ~~
と書かれているので、それを参考にしながら変えていくのがいいと思います。
see: Laravel 5.8 Deprecates String and Array Helpers
Automatic Policy Resolution is Coming to Laravel 5.8
今まで AuthServicePovider
に protected $policy = [ 'Model' => 'Policy' ]
と書いていた部分が、動的に変えられるようになったっぽい。
see: Automatic Policy Resolution is Coming to Laravel 5.8
Blade Template File Path
Blade を使っていると、ファイル名がハッシュ値になりどのテンプレでエラーが起きたのかわかりにくかったです。
このバージョンから Blade のコンパイルしたテンプレートファイルの先頭行に、テンプレートのファイルパスが PHP のコメントアウトして記述されます。
Nexmo / Slack Notification Change
Mexmo / Slack の Notification がパッケージ分離されました。
使用している場合は別途インストールが必要です。
(何で分離されたんだろ?)
composer require laravel/nexmo-notification-channel
composer require laravel/slack-notification-channel
see: Upgrade notification
MarkDown File Directory Name Change
Markdown ファイルは /resources/views/vendor/mail/markdown
でしたが、このバージョンからは /resources/views/vendor/mail/text
になりました。
see: Markdown File Directory Change
Testing
PHPUnit 8 が使われるようになりました。これに伴い、 setUp()
および tearDown()
に返り型を指定する事が必須になりました。
具体的にはこんな感じ
<?php
protected function setUp(): void
{
...
}
protected function tearDown(): void
{
...
}