Laravel5.1 release
Laravel Meetup Tokyo Vol.6
yuuki takezawa
Profile
• ytake (github), ex_takezawa(twitter)
• java, php, node.js, RDBMS, NoSQL, VoltDB
4章担当
一家に一冊よろしくお願いします
Laravel5.1

release!
long term support


Laravel 5.1 will receive bug
fixes for 2 years and
security fixes for 3 years.
ドキュメントが豊富に
"php": ">=5.5.9"
• PHP5.5.9以上となりました

現行のHHVMももちろん、

問題なく動作します

PHP7でも(いまのところ)
required
• OpenSSL PHP Extension
• Mbstring PHP Extension
• Tokenizer PHP Extension
goodbye mcrypt!
• opensslエクステンションが必要です
• MCRYPT_RIJNDAEL_128

MCRYPT_RIJNDAEL_256を選択した場合のみ

mcryptが利用されますが、

5.2で削除されます
upgrade guide
compile fileの行方
• storage/framework配下にあった

最適化ファイルcompiled.php
• bootstrap/cache配下に移動

services.json

configキャッシュ,routeキャッシュも

文字通りbootstrapへ
AuthController?
• デフォルトで用意されていた認証関連の

コントローラを使っている方は少しだけ変更
があります
• 使ってない方は何もなし
デフォルトで付属している

コントローラなどは、
モックや簡単なプロトタイプ
がすぐに作れるように置いて
あるだけで、
推奨ではありません
Validation
• formatValidationErrors , formatErrors

あたりのメソッドをオーバライドして使って
いた方はValidatorインターフェースなどを

コンストラクタにタイプヒンティング
Eloquent
• createをオーバーライドしていた方、

内部でfindをコールしてた方は少しだけ変更
• dateFormat周りもすこーしだけ変更
• 大きな変更は無し
CommandBus -> Job
• CommandBusはQueue処理向けのJobクラス
に変更
• HandlersはListenersへ
• SelfHandlingの方はクラス名変えるだけ

Queueファサード利用の方が多い?
Deprecated
• Middleware、TerminableMiddleware

インターフェースが非推奨で5.2で削除

機能はそのままで無くなりませんよ!

PSR-7のため?
• filterは5.2で完全に利用できなくなります

ミドルウェアに移行しましょう
Deprecated
• BusDispatchesCommandsインターフェース
はJobsに変更されたので変えましょう

5.2で削除
• コンテナのbindSharedが5.2で削除

singletonと同じなのでそちらを使いましょう
コーディング規約
• フレームワーク本体がPSR-2へ

今までのPSR-0+オールマンスタイルから変更
• ユーザーが実装するところは皆さんの規約で
• 合わせるのは強制ではありません
New Feature!

一部5.0おさらい
route group
• groupにasを利用して名前もグループ化

Route::group(['as' => 'group'], function () {
get('/', ['uses' => 'IndexController@index', 'as' => 'index']);
});
CSRF token
• csrf_field()でinputタグから生成
• XSRF-TOKENがCookieに付与されているので

angularの方は使いましょう
• VerifyCsrfTokenミドルウェアでtokenチェックを除
外したいルートが指定できます

(内部でRequest::isを利用)
HTML, Form
• Laravelパッケージから外されています
• Laravelのilluminateコンポーネントでは

メンテナンスされていません 5.0止まり
• どうしても使いたい方はLaravelCollectiveへ

メンテナンスや新しい機能はそちらで
Modelsディレクトリは削除
• MVCパターンで作りたい場合はMVCで
• 他のアーキテクチャにしたい場合は

そのパターンで
• 自分でアーキテクチャを作るフレームワーク
• ディレクトリはpsr-4で自由で、

強制はされていません 作りやすいように
make:model
• 実行するとapp直下に作られるんですけど・・
• ええ、そこが置き場なの?!
$ php artisan make:model ModelsMessage
指定したディレクトリに

置かれるので心配無用です
laravel elixir
• gulpを使った開発支援タスクランナー
• less, sassコンパイルやphpunit自動実行など
• 最新バージョンからbabelタスク追加

ECMAScript2015がブラウザで!
• elixir.jsonでパス変更などができます

(ソース読みましょう)
middleware
• ミドルウェアで引数が利用できるように

'middleware' => ‘role:editor'
• 邪魔なミドルウェアは中身を見て外しましょう

CookieやSession管理や

メンテナンスモード判定のミドルウェアが

最初から全て有効になってます
Request
• validationはフォームリクエストを利用した方
がスムーズです
• PSR-7対応で好きなライブラリを自由に

(対応しているものであれば)
Broadcast
• Redis pubsub / pusher(海外サービス)を使っ
て簡単にwebsocketが利用可能
• socket.io利用であればRedis(pubsub)の方が早
いのでおすすめ
Faker factory
• Fakerを使って簡単にデータをつくれます
• テストがより簡単に
• Mockeryと一緒に使うと色々できます
functional test
• クローリングするテストがより分かりやすく簡単
に(Controller)
• ファンクショナルテストがより簡単に
• ミドルウェアなどを無効にしたり、

テスト時に自動でmigrationをするtraitも

(tearDownでロールバックしてくれます)
用途にあった
コンポーネントを使って
快適な開発生活を
ご静聴
ありがとうございました

Laravel5.1 Release