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 middleware
Request
middleware/Application
build Container
execute middleware & action
global middleware
Laravel middleware
Request
Container/Application
router dispatch
route middlewareController
Architecture
• 公式では特に述べられていないが、

Action-Domain-Responder?
• リクエスト、レスポンス以外は自分で作る
• ファクトリをつかうとやはり綺麗
• MVCパターンの改良であると言える?
あれこれ
• 開発者が選ぶため、初心者が慣れるのは難しい
• ドキュメントよりもソースを読むのが吉
• いろんな改良が見られて、学ぶ点が多い
• フルスタックか、特化したものか

要件に合わせて選択しましょう
• 当然ながらPHP7で動く
コンテナ差し替えについて

Qiitaにて書きました
http://qiita.com/ytake/
items/
21dd036bce5838a511f0

zend-expressiveを触ってみよう