15

Click here to load reader

zend-expressiveを触ってみよう

Embed Size (px)

Citation preview

Page 1: zend-expressiveを触ってみよう

zend-expressiveを触ってみようytake

Page 2: zend-expressiveを触ってみよう

zend-expressive の前に

Page 3: zend-expressiveを触ってみよう

PSR-6 が可決!

Page 4: zend-expressiveを触ってみよう

PSR-6

• キャッシュインターフェース

• 現在のキャッシュライブラリたちはほとんどバラバラ

• 再利用性が高まる+さらにコンポーネント

• PSR-11に期待

• オレオレキャッシュライブラリはつらい

Page 5: zend-expressiveを触ってみよう

そんなPSR-7を利用した zend-expressive

Page 6: zend-expressiveを触ってみよう

zend-expressive

• リクエスト、レスポンスに特化したもの

• API利用や、expressiveをコアにフレームワーク作りにも

• PSR-7だけではなくコンテナも入れ替え可能(container-interop/container-interop)

• ミドルウェア活用

Page 7: zend-expressiveを触ってみよう

よりコンポーネント志向

• インストール時にルータライブラリが選択可

• コンテナも選択可

• テンプレートエンジンももちろん選択可

• アダプターなどが用意されているものを選択できるようになっている

• 用意されていないものも簡単に入れ替え可

Page 8: zend-expressiveを触ってみよう

Router

• Aura.Router

• FastRoute

• ZF2's MVC router

• symfony/routingや他のものでも利用できる?(試していない)

Page 9: zend-expressiveを触ってみよう

Container

• zend-servicemanager

• pimple-container-interop

• Aura.Di

• container-interopを実装しているものであればほとんど利用できる筈 (league/containerには実際に差し替えて利用済)

Page 10: zend-expressiveを触ってみよう

ミドルウェア

• zend-stratigilityを継承してアプリケーションを構築

• Routerも各Actionも、ミドルウェアを通じて実行される

• まさにPSR-7尽くし

Page 11: zend-expressiveを触ってみよう

zend-expressive middlewareRequest

middleware/Application

build Container

execute middleware & action

Page 12: zend-expressiveを触ってみよう

global middleware

Laravel middlewareRequest

Container/Application

router dispatch

route middlewareController

Page 13: zend-expressiveを触ってみよう

Architecture

• 公式では特に述べられていないが、Action-Domain-Responder?

• リクエスト、レスポンス以外は自分で作る

• ファクトリをつかうとやはり綺麗

• MVCパターンの改良であると言える?

Page 14: zend-expressiveを触ってみよう

あれこれ

• 開発者が選ぶため、初心者が慣れるのは難しい

• ドキュメントよりもソースを読むのが吉

• いろんな改良が見られて、学ぶ点が多い

• フルスタックか、特化したものか要件に合わせて選択しましょう

• 当然ながらPHP7で動く

Page 15: zend-expressiveを触ってみよう

コンテナ差し替えについてQiitaにて書きました

http://qiita.com/ytake/items/

21dd036bce5838a511f0