laravel5.1 release

36
Laravel5.1 release Laravel Meetup Tokyo Vol.6 yuuki takezawa

Upload: yuuki-takezawa

Post on 06-Aug-2015

730 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Laravel5.1 Release

Laravel5.1 releaseLaravel Meetup Tokyo Vol.6 yuuki takezawa

Page 2: Laravel5.1 Release

Profile

• ytake (github), ex_takezawa(twitter)

• java, php, node.js, RDBMS, NoSQL, VoltDB

Page 3: Laravel5.1 Release

4章担当

一家に一冊よろしくお願いします

Page 4: Laravel5.1 Release

Laravel5.1release!

Page 5: Laravel5.1 Release

long term support

Laravel 5.1 will receive bug fixes for 2 years and

security fixes for 3 years.

Page 6: Laravel5.1 Release

ドキュメントが豊富に

Page 7: Laravel5.1 Release

"php": ">=5.5.9"

• PHP5.5.9以上となりました

現行のHHVMももちろん、

問題なく動作しますPHP7でも(いまのところ)

Page 8: Laravel5.1 Release

required

• OpenSSL PHP Extension

• Mbstring PHP Extension

• Tokenizer PHP Extension

Page 9: Laravel5.1 Release

goodbye mcrypt!

• opensslエクステンションが必要です

• MCRYPT_RIJNDAEL_128MCRYPT_RIJNDAEL_256を選択した場合のみmcryptが利用されますが、5.2で削除されます

Page 10: Laravel5.1 Release

upgrade guide

Page 11: Laravel5.1 Release

compile fileの行方

• storage/framework配下にあった

最適化ファイルcompiled.php

• bootstrap/cache配下に移動services.jsonconfigキャッシュ,routeキャッシュも

文字通りbootstrapへ

Page 12: Laravel5.1 Release

AuthController?

• デフォルトで用意されていた認証関連の コントローラを使っている方は少しだけ変更があります

• 使ってない方は何もなし

Page 13: Laravel5.1 Release

デフォルトで付属しているコントローラなどは、

モックや簡単なプロトタイプがすぐに作れるように置いて

あるだけで、 推奨ではありません

Page 14: Laravel5.1 Release

Validation

• formatValidationErrors , formatErrors あたりのメソッドをオーバライドして使っていた方はValidatorインターフェースなどを コンストラクタにタイプヒンティング

Page 15: Laravel5.1 Release

Eloquent

• createをオーバーライドしていた方、

内部でfindをコールしてた方は少しだけ変更

• dateFormat周りもすこーしだけ変更

• 大きな変更は無し

Page 16: Laravel5.1 Release

CommandBus -> Job

• CommandBusはQueue処理向けのJobクラスに変更

• HandlersはListenersへ

• SelfHandlingの方はクラス名変えるだけQueueファサード利用の方が多い?

Page 17: Laravel5.1 Release

Deprecated

• Middleware、TerminableMiddleware

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

機能はそのままで無くなりませんよ! PSR-7のため?

• filterは5.2で完全に利用できなくなります ミドルウェアに移行しましょう

Page 18: Laravel5.1 Release

Deprecated

• Bus\DispatchesCommandsインターフェースはJobsに変更されたので変えましょう5.2で削除

• コンテナのbindSharedが5.2で削除singletonと同じなのでそちらを使いましょう

Page 19: Laravel5.1 Release

コーディング規約

• フレームワーク本体がPSR-2へ

今までのPSR-0+オールマンスタイルから変更

• ユーザーが実装するところは皆さんの規約で

• 合わせるのは強制ではありません

Page 20: Laravel5.1 Release

New Feature!一部5.0おさらい

Page 21: Laravel5.1 Release

route group

• groupにasを利用して名前もグループ化

Page 22: Laravel5.1 Release

\Route::group(['as' => 'group'], function () { get('/', ['uses' => 'IndexController@index', 'as' => 'index']); });

Page 23: Laravel5.1 Release

CSRF token

• csrf_field()でinputタグから生成

• XSRF-TOKENがCookieに付与されているのでangularの方は使いましょう

• VerifyCsrfTokenミドルウェアでtokenチェックを除外したいルートが指定できます(内部でRequest::isを利用)

Page 24: Laravel5.1 Release

HTML, Form

• Laravelパッケージから外されています

• Laravelのilluminateコンポーネントでは

メンテナンスされていません 5.0止まり

• どうしても使いたい方はLaravelCollectiveへメンテナンスや新しい機能はそちらで

Page 25: Laravel5.1 Release

Modelsディレクトリは削除

• MVCパターンで作りたい場合はMVCで

• 他のアーキテクチャにしたい場合はそのパターンで

• 自分でアーキテクチャを作るフレームワーク

• ディレクトリはpsr-4で自由で、強制はされていません 作りやすいように

Page 26: Laravel5.1 Release

make:model

• 実行するとapp直下に作られるんですけど・・

• ええ、そこが置き場なの?!

Page 27: Laravel5.1 Release

$ php artisan make:model Models\\Message

Page 28: Laravel5.1 Release

指定したディレクトリに置かれるので心配無用です

Page 29: Laravel5.1 Release

laravel elixir

• gulpを使った開発支援タスクランナー

• less, sassコンパイルやphpunit自動実行など

• 最新バージョンからbabelタスク追加 ECMAScript2015がブラウザで!

• elixir.jsonでパス変更などができます (ソース読みましょう)

Page 30: Laravel5.1 Release

middleware

• ミドルウェアで引数が利用できるように 'middleware' => ‘role:editor'

• 邪魔なミドルウェアは中身を見て外しましょう CookieやSession管理や

メンテナンスモード判定のミドルウェアが 最初から全て有効になってます

Page 31: Laravel5.1 Release

Request

• validationはフォームリクエストを利用した方がスムーズです

• PSR-7対応で好きなライブラリを自由に(対応しているものであれば)

Page 32: Laravel5.1 Release

Broadcast

• Redis pubsub / pusher(海外サービス)を使って簡単にwebsocketが利用可能

• socket.io利用であればRedis(pubsub)の方が早いのでおすすめ

Page 33: Laravel5.1 Release

Faker factory

• Fakerを使って簡単にデータをつくれます

• テストがより簡単に

• Mockeryと一緒に使うと色々できます

Page 34: Laravel5.1 Release

functional test

• クローリングするテストがより分かりやすく簡単に(Controller)

• ファンクショナルテストがより簡単に

• ミドルウェアなどを無効にしたり、

テスト時に自動でmigrationをするtraitも(tearDownでロールバックしてくれます)

Page 35: Laravel5.1 Release

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

Page 36: Laravel5.1 Release

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