2016年8月23日にリリースされたLaravel 5.3の新機能まとめ。
この記事は、Laravel Newsの"Laravel 5.3 is now released"の抄訳。翻訳がこなれていないところや怪しいところもありますが、何かあればご連絡ください。
新しいホームページ
新しいパッケージやLaravelコミュニティーの情報へのリンクが表示されるようになった。
Laravel Scout
Eloquent用の新しい全文検索エンジン。ユーザのモデルにSearchable traitを追加することで機能する。データは選択可能な方法でインデックス化が行われ、次のように簡単に検索できる。
Post::search('Alice')->get();
Laravel Passport
Laravel Passportにより、ものの数分で自分自身のOAuth2サーバーを配備することが可能となるオプションパッケージ。
Laravel Mailable と Notifications
Laravel Mailable は、メール送信のためのクラスベースの新しい方法で、クロージャスタイルを必要とせず簡単にメールが送れるようになる。
Laravel Notifications により、Slack, テキストメッセージ、電子メールのようなサービスによる即座にアップデートを送ることが可能になる。
“Laravel Notifications Channel”というコミュニティーが立ち上がっており、誰でもドライバーを公開でき、すでに26のドライバーが公開されている。
Laravel Echo
Laravel Echo は、今まであったweb socketで動くイベントブロードキャスティングシステムの改良版。Echoを利用するためのバックエンドはLaravelのコアに同梱されており、JavaScript側のNPMパッケージにpullする必要がある。
マイグレーション
1ステップのロールバックが可能となった。
php artisan migrate:rollback --step=1
このオプションはこれまではなく、従来は複数ステップを一気にロールバックするしかできなかった。
シンプル・ページネーション
Laravelは2つのページネーションを提供している。ページ番号を表示する高度なスタイルと、前後ページへのリンクのみを表示するシンプルなスタイルの2種。
このリリースから従来より簡単にビューファイルでシンプル・ページネーションの利用が可能となった。
BladeのLoop変数
Laravel Bladeでは、ループ内でより細かい制御を可能とする新しい $loop 変数が導入された。次のようなプロパティがある。
- index – ループの数
- remaining – 残っているループの回数
- count – 全体のカウント
- first – 最初のループかどうか
- last – 最後のループかどうか
- depth – 何レベルの深さにいるか
- parent – ネスとしたループ内から親を呼び出す
参考ブログ -> The new $loop variable in Laravel 5.3
ディレクトリ構成の変更
appフォルダからEvents, Jobs, Listeners, Policiesのからフォルダが削除された。ただし、互換性のため、aritisan make:コマンドによりこれらのフォルダを作ることができる機能が残されている。
キューイングされたジョブ
Eloquentコレクション は、個々のモデルに対する操作と同様に、キューイングされたジョブによって綺麗にシリアライズして引き出することができる。
これは、ジョブがキューイングされた時からEloquentコレクション内のデータが変更された場合に有益である。
クエリービルダー
クエリービルダーはディフォルトでは配列ではなくコレクションを返すようになる。これは互換性に影響する変更が起こりうるが、クエリビルダからもEloquentからも同一形式で結果を受け取ることができるようになる。
Cache ヘルパー関数
Laravel 5.3 は、新しくグローバルヘルパー関数cache()を用意している。これは背後にあるサービスに対してインスタンスをget, put, returnすることができる。
ドキュメントの改定
このリリースではドキュメントに大きなオーバホールが行われた。インストールに始まってLaravelの公式パッケージ全体を見渡せるように章構成が改善された。また、関連する無料のLaracastsビデオへもリンクされている。オーディオやビデをを好む人にも読むのを好む人にも対応できるようになった。
アップグレードガイド
今日から5.3を使い始めるために必要な情報を含んだアップグレードガイドを公式ドキュメントとして用意した。アップグレードに必要な時間の見積もりは2~3時間だ。
(original English article was written by Eric L. Barnes)