コア機能ここではZend_Applicationのコアコンポーネントの すべてについて、APIのようにドキュメントをご覧いただけます。 Zend_ApplicationZend_Application provides the base functionality of the component, and the entry point to your Zend Framework application. It's purpose is two-fold: to setup the PHP environment (including autoloading), and to execute your application bootstrap. Typically, you will pass all configuration to the Zend_Application constructor, but you can also configure the object entirely using its own methods. This reference is intended to illustrate both use cases.
Zend_Application_Bootstrap_Bootstrapper(日本語)Zend_Application_Bootstrap_Bootstrapperは、 ブートストラップ・クラス全てで実装しなければならない基底インターフェースです。 基本的な機能として、構成、リソースの確認、起動(個々のリソースかまたはアプリケーション全て)、 及びアプリケーションのディスパッチを意図しています。 以下のメソッドで、インターフェースの定義が用意されています。
Zend_Application_Bootstrap_ResourceBootstrapper(日本語)Zend_Application_Bootstrap_ResourceBootstrapperは、 ブートストラップ・クラスが外部リソースをロードしようとするとき、 使用するインタフェースです。 すなわち、一つ以上のリソースがクラスで直接定められず、むしろプラグインによって定められます。 それはZend_Application_Bootstrap_Bootstrapper とともに使われなければなりません、 そして、Zend_Application_Bootstrap_BootstrapAbstract がこの機能を実装します。 以下のメソッドで、インターフェースの定義が用意されています。
Zend_Application_Bootstrap_BootstrapAbstractZend_Application_Bootstrap_BootstrapAbstract is an abstract class which provides the base functionality of a common bootstrap. It implements both Zend_Application_Bootstrap_Bootstrapper and Zend_Application_Bootstrap_ResourceBootstrapper.
Zend_Application_Bootstrap_Bootstrap(日本語)Zend_Application_Bootstrap_Bootstrapは Zend_Application_Bootstrap_BootstrapAbstract を具体的に実装したものです。 これは フロントコントローラリソース を登録し、デフォルトのモジュールが定義されていることと、 それからフロントコントローラをディスパッチすることを最初にチェックする run()メソッドという主要なフィーチャーです。 多くの場合、ブートストラップする必要性に応じて拡張するか、 このクラスを単純に使って、利用するリソースプラグインのリストを与えたいことでしょう。 アプリケーションのオートローディングを有効にするさらに、このブートストラップ実装により、 そのツリーに位置するリソースに対する "namespace" またはクラス接頭辞を指定できるようになります。 それにより、様々なアプリケーション・リソースをオートローディングできるようになります。 基本的に、それは Zend_Application_Module_Autoloader オブジェクトのインスタンスを生成します。 そして引数として、要求された名前空間およびブートストラップのディレクトリを提示します。 "appnamespace" 構成オプションに名前空間を提示することにより、この機能を使用可能にできるでしょう。 INI 例としては、
または XMLで、
デフォルトでは、Zend_Tool は、 "Application" 変数でこのオプションを有効にします。 あるいは、ブートストラップ・クラスの $_appNamespace プロパティを適切な値で簡単に定義できます。
Zend_Application_Resource_Resource(日本語)Zend_Application_Resource_Resourceは、 Zend_Application_Bootstrap_ResourceBootstrapperを実装する ブートストラップ・クラスで使われるプラグイン・リソースのためのインターフェースです。 プラグイン・リソースでは、構成を可能にし、ブートストラップを認識し、 そして、リソースを初期化するためのストラテジー・パターンを実装するよう、 期待されます。
Zend_Application_Resource_ResourceAbstract(日本語)Zend_Application_Resource_ResourceAbstractは Zend_Application_Resource_Resourceを 実装する抽象クラスで、 独自のカスタム・プラグイン・リソースを作成し始めるために適しています。 注意: この抽象クラスは、 init()メソッドを実装しません; クラスを具体的に拡張する定義のために残されます。
リソース名プラグイン・リソースを登録するときに起きる問題の一つは、 どのように親ブートストラップ・クラスからそれらを参照すべきかということです。 利用されるかもしれない3通りの異なる手法があります。 そして、ブートストラップとそのプラグイン・リソースを構成した方法によって決まります。 最初に、プラグインが定義済みのプレフィックス・パスの中で定義されるなら、 それらの「短い名前」 ― すなわち、クラス・プレフィックスの後のクラス名の部分 ― によって単純にそれらを参照するかもしれません。 例えば、プレフィックス・パス "Zend_Application_Resource" がすでに登録されていたら、 クラス "Zend_Application_Resource_View" は単純に "View" として参照されるかもしれません。 完全なクラス名または短い名前を用いてそれらを登録するかもしれません:
それならどの場合もリソースを起動できて、 後で短い名前を使って、それを取得できます:
第2には、マッチするプラグイン・パスが定義されないならば、 完全なクラス名によってリソースを今まで通り渡すかもしれません:
明らかに、リソースの参照がもっと冗長になります:
これは、第3の選択肢です。 与えられたリソースクラスが登録する、明示的な名前を指定できます。 これは public $_explicitTypeプロパティを リソース・プラグイン・クラスに文字列値で加えることによって実現されます; その場合、ブートストラップを通してプラグイン・リソースを参照したいときはいつでも、その値が使われます。 例えば、独自のビュー・クラスを定義しましょう:
その場合、そのリソースを起動するか、または名前 "My_View" によって 取得できます:
これらのいろいろな命名方法を使用して、既存のリソースをオーバーライドできます。 そして、複雑な初期化を成し遂げるために、 独自のものを追加したり、複数のリソースを混ぜたりすることなどができます。
|