Download - Laravel5.1 Release
Laravel5.1 releaseLaravel Meetup Tokyo Vol.6 yuuki takezawa
Profile
• ytake (github), ex_takezawa(twitter)
• java, php, node.js, RDBMS, NoSQL, VoltDB
4章担当
一家に一冊よろしくお願いします
Laravel5.1release!
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_128MCRYPT_RIJNDAEL_256を選択した場合のみmcryptが利用されますが、5.2で削除されます
upgrade guide
compile fileの行方
• storage/framework配下にあった
最適化ファイルcompiled.php
• bootstrap/cache配下に移動services.jsonconfigキャッシュ,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
• Bus\DispatchesCommandsインターフェースは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 Models\\Message
指定したディレクトリに置かれるので心配無用です
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でロールバックしてくれます)
用途にあった コンポーネントを使って 快適な開発生活を
ご静聴 ありがとうございました