laravel5.1 release

Post on 06-Aug-2015

730 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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でロールバックしてくれます)

用途にあった コンポーネントを使って 快適な開発生活を

ご静聴 ありがとうございました

top related