Click here to load reader
Upload
yuuki-takezawa
View
2.161
Download
0
Embed Size (px)
Citation preview
zend-expressiveを触ってみようytake
zend-expressive の前に
PSR-6 が可決!
PSR-6
• キャッシュインターフェース
• 現在のキャッシュライブラリたちはほとんどバラバラ
• 再利用性が高まる+さらにコンポーネント
• PSR-11に期待
• オレオレキャッシュライブラリはつらい
そんなPSR-7を利用した zend-expressive
zend-expressive
• リクエスト、レスポンスに特化したもの
• API利用や、expressiveをコアにフレームワーク作りにも
• PSR-7だけではなくコンテナも入れ替え可能(container-interop/container-interop)
• ミドルウェア活用
よりコンポーネント志向
• インストール時にルータライブラリが選択可
• コンテナも選択可
• テンプレートエンジンももちろん選択可
• アダプターなどが用意されているものを選択できるようになっている
• 用意されていないものも簡単に入れ替え可
Router
• Aura.Router
• FastRoute
• ZF2's MVC router
• symfony/routingや他のものでも利用できる?(試していない)
Container
• zend-servicemanager
• pimple-container-interop
• Aura.Di
• container-interopを実装しているものであればほとんど利用できる筈 (league/containerには実際に差し替えて利用済)
ミドルウェア
• zend-stratigilityを継承してアプリケーションを構築
• Routerも各Actionも、ミドルウェアを通じて実行される
• まさにPSR-7尽くし
zend-expressive middlewareRequest
middleware/Application
build Container
execute middleware & action
global middleware
Laravel middlewareRequest
Container/Application
router dispatch
route middlewareController
Architecture
• 公式では特に述べられていないが、Action-Domain-Responder?
• リクエスト、レスポンス以外は自分で作る
• ファクトリをつかうとやはり綺麗
• MVCパターンの改良であると言える?
あれこれ
• 開発者が選ぶため、初心者が慣れるのは難しい
• ドキュメントよりもソースを読むのが吉
• いろんな改良が見られて、学ぶ点が多い
• フルスタックか、特化したものか要件に合わせて選択しましょう
• 当然ながらPHP7で動く
コンテナ差し替えについてQiitaにて書きました
http://qiita.com/ytake/items/
21dd036bce5838a511f0