2011-02-25 7 views
0

まず、いくつかのコンテキストモジュール間でアプリケーションリソースのリストを取得する最もクリーンな方法は何ですか?

私は現在Zend_Applicationを使用してモジュラーZend Frameworkのアプリケーションに取り組んでいます。私はカスタムリソースをModule Resource Autoloaderに挿入するカスタムモジュールブートストラップを書いています。例えば、 'ウィジェット'リソースです。

/application 
/application/modules/foo/widget/Bar.php 
/application/modules/baz/widget/Qux.php 

がどのように私は、好ましくは、私のディレクトリ構造全体を横断せずに、自分のアプリケーションに使用可能なすべてのウィジェットの一覧を取得することができるだろう:

さて、次のような構造を仮定して?

答えて

1

残念ながら、私は残念ながら、これには完璧な解決策はないと思います。私が思う最良の方法は、モジュール固有のビューヘルパーの仕組みと同様に、それぞれのモジュールブートストラップにウィジェットを登録する標準的な方法を持つことです。

あなたがメインのアプリケーションのブートストラップでインスタンス化ウィジェット管理するためのクラスを作成します。各モジュールで

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap 
{ 
    protected function _initWidgets() 
    { 
     return new Yourapp_Widgets(); 
    } 
} 

、その後を:

class Foo_Boostrap extends Zend_Application_Module_Bootstrap 
{ 
    protected function _initWidgets() 
    { 
     $widgetManager = $this->getApplication()->getResource('widgets'); 
     $widgetManager->registerWidget('Foo_Bar'); 
    } 
} 

あなたがウィジェットマネージャクラスにメソッドを持つことができます登録されたすべてのウィジェットを返す。

関連する問題