Zend Framework は、Zend Company によって開発された PHP5 に完全に基づいたオープン ソースの PHP 開発フレームワークであり、MVC (Model-View-Controller) アーキテクチャ パターンを使用してアプリケーションのさまざまな部分を分離します。プログラムの開発と保守を容易にします。
ZF2 は他のフレームワークのような単なるパッチ更新ではなく、ZF1 のすべてのコードを完全に書き換えます。主なスローガンは「高パフォーマンス」です。
ZF2 がもたらした新機能を見てみましょう。
1. モジュール化(ModuleManager)
ZF1 と比較して、ZF2 はモジュールの概念をネイティブにサポートしており、Zend のコーディング標準とコード構造に従っている限り、サードパーティの PHP プログラムを Zend モジュールに変換できます。現在、実験用モジュールのバッチがリリースされています (ZF2 モジュールを参照)。 Doctrine ORM のような優れたプロジェクトは数多くあります。
ZF2 が徐々に成熟するにつれて、さらに多くのオプション モジュールが登場することが予測されます。ZF2 に基づく将来のプロジェクト開発は、ビルディング ブロックと同じくらい簡単かつシンプルになる可能性があります。
2. イベント駆動型 (EventManager)
従来のプログラムでは、コードは線形シーケンスで実行されるため、開発中に一部の機能をコンポーネントまたはモジュールに分離することが困難なことがよくあります。
イベントドリブン(フック)は、通常のプログラムの実行方法を効率的に変更します。イベントドリブンを適用すると、プログラムは「登録されたイベント」→「トリガーされたイベント」というジャンプのような方法で実行されます。オリジナルのプログラムコードを使用すれば、どこにでも簡単に新しいビジネスロジックを追加できるため、プロジェクト開発が非常に柔軟になります。
3.サービスマネージャー
サービス マネージャーの概念は、「サービス ロケーター パターン」というプログラミングの考え方から来ています。この考え方は、プログラム内のそれぞれの独立した機能を「サービス」として抽出することを提唱しており、各サービスは、そのサービスが呼び出されたときにのみ独立して起動可能になります。
これが ZF2 のパフォーマンス向上の秘密であり、ZF2 の MVC 起動プロセスには随所に ServiceLocator の考え方が反映されており、これまで問題を抱えていた開発者にとっては大きな驚きとなるでしょう。 Zendのパフォーマンスとともに。
4. 依存性の注入
依存関係の注入は主流の Java フレームワークで広く使用されており、大規模なアプリケーションを効果的に分離できます。 ZF2 への Di の導入には、検討とトレードオフが繰り返されてきました。ベータ段階に入った後も、Di は ZF2 の基本的な実装ソリューションとして使用され、Mvc 構成全体は Di に基づいていました。結局、Di が引き起こすメタデータ プログラミングの泥沼 (Metaprogramming) に陥ることを避けるため、Di は ZF2 の最下位実装としてのみ使用され、上位層に ServiceManager が追加されます。一般の開発者は、ZF2 を使用するときに Di レベルにさらされる必要はありません。ただし、これは DI が存在し、優れた PHP コンポーネントとして機能することを妨げるものではありません。
5. ソーシャルプログラミング
ZF2 のコードは完全に Github でホストされており、Github の優れた設計により、誰でもフォークを通じて ZF2 プロジェクトの構築に簡単に参加でき、新しいモジュール関数を提出することもできます。著者の AlloVince は、Zend チームがいくつかのバグを修正するのにも協力しましたが、Zend チームは非常に迅速に対応し (24 時間を超えることはありませんでした)、時間をかけてフィードバックに真剣に答えてくれました。したがって、ZF2 プロジェクトに参加することは、PHP オープンソース プロジェクトに参加するための良い選択です。