おめでとうございます。どうも laracon に合わせてリリース。
所々で力尽きてるので。
大きな変更点は Argon
のサポート、 Log
まわりの内部変更、Bootstrap4 対応
PHP上の変更点
-
PHP >= 7.0.0
からPHP >= 7.1.3
になりました。
配列
-
Arr::wrap
メソッドの返り値がnull
から[]
になりました
Artisan
-
optimize
が廃止されます。
Blade
e
メソッドで htmlspecialchars
メソッドを通すが、Inline-JSONでJavascriptFrameworkを使うと二重……???
あとで書く
Blade Component Alias
Bladeのコンポーネントにエイリアス名をつけられるようになった。
-
resources/views/components/alert.blade.php
にコンポーネントの内容を書いたとする。 -
Blade::component('components.alert', 'alert');
というコードをどっかに書く( ViewServiceProvider とか作ってそこのboot
とかにやろか) - Blade内で書くにはこんな感じになる
@component('alert')
<p>This is an alert component</p>
@endcomponent
Cache
The Rate Limiter tooManyAttempts
Method の挙動変更?
Cron
Cron実行をいくつかのサーバで実行している場合、全てのサーバで実行されますが、 onOneServer
メソッドでどれか一つのサーバのみで実行できるようになった。
この機能を使うには、memcached
orredis
サーバをキャッシュサーバとして使っている必要がある。
Database
Morph
カラムのインデックス化。
morphs
を使ったカラムのマイグレーションをした時に、パフォーマンスを良くするために実行予約が逆転していました(訳:あやしい)
もし mophs
メソッドを一つのマイグレーションで使っている場合、migration
のdown
を実行した時にエラーが発生したと思われます。もし開発中のアプリケーションに起きた時、migrate:fresh
を実行して再構築をしていたはずです。Production
環境の場合、morphs
メソッドのインデックス名からパスするでしょう
MigrationRepositoryInterface
新しいgetMigrationsBatches
メソッドがMigrationRepositoryInterface
に追加されました。
In the very unlikely event that you were defining your own implementation of this class, you should add this method to your implementation. You may view the default implementation in the framework as an example.
Eloquent
getDateFormat
メソッドが、protected
からpublic
になりました。
Hashing
config/hashing.php
ファイルが追加されました。設定ファイルの中身は default configurationにして下さい。
Most likely, you should maintain the bcrypt
driver as your default driver. However, argon
is also supported.
Argon2i
Laravel では Argon2i アルゴリズムを使う。詳しくはこちら
Helpers
e
関数の挙動変更。
Logging
-
新しい設定ファイル
config/logging.php
ファイルが追加されました。設定ファイルの中身は default configurationにしてください。そして
config/app.php
の設定にあったlog
,log_level
は削除されます。 -
configureMonologUsing
メソッドもしあなたのアプリケーションが
configureMonologUsing
を使っている場合、custom
ログチャンネルを新設する必要があります。詳しいことは こちら -
Writer
クラスIlluminate\Log\Writer
クラスはIlluminate\Log\Logger
へ名前変更されます。type-hintingでこのクラスを使っている場合は名前の変更をするようにして下さい。もしくは、どちらかと言えば、type-hintingでもPsr\Log\LoggerInterface
を使うようにしてください。 -
Illuminate\Contracts\Logging\Log
インターフェースIlluminate\Contracts\Logging\Log
インターフェースは廃止されます。type-hintingとして使うならPsr\Log\LoggerInterface
を使うようにしてください。
Pagination
Bootstrap4 に対応しました。Bootstrap3 のリンクを使う場合は Paginator::useBootstrapThree
を AppServiceProvider::boot
メソッド内で実行して下さい。
Resources
Eloquent
のResource Response の origial
プロパティが、新しくJsonの string/array になりました。modelデータの情報を早く確認する方法ができたっぽい。
Routing
Model を新しく作った時の返り値が自動的に 201
になります。アプリケーションテストで 200
が帰ってくるとしている場合は 201
に書き換えてね。
Trusted Proxies
Validation
ValidatesWhenResolved
interface/trait の validate
メソッド が、$request->validate()
との衝突を回避するために validateResolved
へ名前が変更されました。
Str
UUID メソッドが使えるようになりました。
(string) Str::uuid();
や (string)Str::orderedUuid()
orderedUuid
このメソッドは timestamp
からUUIDを生成します。そしてDBのインデックスに効率がいい感じにするぽいよ。