0

皆さん、これはスタック オーバーフローに関する最初の質問です。このウェブサイトは私を大いに助けてくれると思ったので、私も試してみます.

私は現在、共通のモジュール ディレクトリからモジュールを継承する必要がある複数の Zend Framework アプリケーションに取り組んでいます。使用されるファイル構造は従来の方法です (アプリケーション構造を保護するために実際の名前と参照は省略されています)。

/application1
    /application
        /modules
            /module1
            /module2
            /module3
            /...

/application2
    /application

今のところ、次のように Application2 のブートストラップですべてのモジュールを手動でオートロードしようとしました:

$moduleLoader = new Zend_Application_Module_Autoloader(
    array('namespace' => 'Prefix', 'basePath' => path_to_application1_application_modules_modulename)
);
$autoloader->pushAutoloader($moduleLoader);

これは機能しますが、ご想像のとおり、これは非常に退屈な作業になります。今、私は FrontController の共通モジュールディレクトリを次のように設定しようとしました:

$frontController = Zend_Controller_Front::getInstance();
$frontController->addModuleDirectory(path_to_application1_application_modules);

しかし、これはどのモジュールもブートストラップしていないようです。私は何か重要なことを忘れていますか?あなたの助けは大歓迎です!

4

2 に答える 2

0

モジュールをブートストラップするときは、Zend_Application_Module_Bootstrap として実行しています。明らかですが、ファイルはルートモジュールフォルダーにもある必要があります。

于 2010-06-24T15:53:08.230 に答える
0

config.iniパスで構成を使用してから、オートローダーをresources.frontController.moduleDirectory = APPLICATION_PATH "/modules"使用することができます。

resources.frontController.moduleDirectoryconfig.iniのパスを変更して、別のアプリケーションのモジュールを使用しただけです。

あなたの設定で試してみるには、application2 config.ini にresources.frontController.moduleDirectory = APPLICATION_PATH "/../application1/application/modules"

LE: モジュールをブートストラップしたい場合は、config.ini resources.modules[] = ""の moduleDirectory の行の後に追加します。自分で試してみましたが、これがないと、ランダムモジュールに入ったときに他のモジュールがブートストラップされません。

于 2010-06-23T08:08:55.117 に答える