zend framework 3 と zend expressive の話
TRANSCRIPT
Zend Framework 3 とZend Expressive の話
2015-11-22@第6回闇 PHP 勉強会
By @strysd
Agenda
•自己紹介
• ZendCon 2015 で話されたこと
• Zend Framework 1 と2の振り返りと反省
• Zend Framework 3 で目指すもの
• Zend Expressive で目指すもの
(注意書き)
この発表は、ZendCon 2015 の発表を聞いて個人的にまとめたものです。
Zend Technologies とか Rogue Wave Software とか勤務先の見解を代表するものではないですよ。
Cのコードも PHPのコードもありませんがごめんなさい。
Who are You?
• 吉田 悟 (Satoru Yoshida)
• Twitter : @strysd
• おしごと:ソフトウェア流通業(BtoB) のイグアスでプリセールスとテクニカルサポートを担当してます。VMware vSphere とか Zend Server とか Zend Studio とか Atlassian JIRA とか。
• おしごと以外:
• Eclipse.org の言語パック作成プロジェクト babel のコミッター翻訳投稿受付ページ babel.eclipse.org の改善が主な仕事
• ごくたまに PHP マニュアルの翻訳もします。最近だと uopz 関数とか posix_setrlimit 関数とか
ZendCon 2015 では何が話されたか 1
x
ZendCon 2015 では何が話されたか 2
• X
Zend Framework 3 と Zend Expressive も
上記は、Matthew Weier O’Phinney 氏担当のZend Framework 3 セッション開始の15分くらい前に撮影。
下記は、Marco Pivetta 氏担当のZend Expressive セッションから
Zend Framework 1 と 2 の振り返り
•Ver 1 で追加された機能Form , Layout, Application
Dojo, jQuery への対応など
•Ver 2 で追加された機能Event Driven Architecture
Dependency Injection など
その結果何が起きたか
• Ver 1 と 2 で互換性が無くなってしまった。Zend Framework 1 から 2 に移行しようとすると大変!
•覚えなければいけないことがたくさんあるので、あまり人が来なくなってしまった。
公式マニュアルを読んだことのある人はよくわかっていただけるはず。
では Zend Framework 3 では?
•コンポーネント化と再利用
•パフォーマンス改善
•使い勝手 (Usability)
コンポーネント化と再利用
•コンポーネントそれぞれごとにバージョン付けする
•必要なコンポーネントだけ Composer でインストール
• ドキュメント、ソース、テストをパッケージごとに構造化
パフォーマンス改善
• イベント・マネージャーを4~15倍高速化
trigger 関数を変更するので、後方互換性が無くなることに注意。
•サービス・マネージャーを4倍高速化
こちらは、ほぼ互換性を保つとのこと。
Usability
•基本に立ち返り、MVCにとって必要なものだけになるように依存関係を簡素化
たとえば Zend_Navigation 廃止!
エッセンシャルな部分はそのまま残す。
• ドキュメントが使いにくい
公式マニュアルを読んだことのある人は(以下略
Zend Expressive
• リクエストを受け取ってレスポンスを返すことに特化したマイクロフレームワーク
•各種フレームワーク間の HTTP メッセージングを標準することを意図した PSR-7 準拠。
Why Zend Expressive ?
• (ここから先はMarco Pivetta 氏の発表からのまとめ)
• プログラムにプラガブルにログやセキュリティー機能を追加したい。
• ベースに Zend Framework を使えばできる。でもコントローラーのロジックが複雑怪奇! (Marco 氏は too magic と表現してました)
• できればプログラムを小さなままにしておきたい。• Zend Framework 3 ですら、この目的は満たせない。
Zend Expressive の効果
• コントローラーがスリムになり、リクエストとレスポンスの関係がわかりやすくなる。
•全体的に共通な Validation ロジックや設定値を各メソッドの中にそれぞれ書く代わりに、外にくくりだして書ける。
Any Question?
• X