0

CMSモジュールとユーザーモジュールを持つZendアプリケーションがあります。Userモジュールの下のサービスを含むCMSモジュールのブートストラップで何かをする必要があります。

サービスクラスをインスタンス化しようとすると、「クラスが見つかりません」というエラーが表示されます。これは、Usersモジュールのリソースがまだ自動ロードされていないことを示しています。

ブートストラップ後ではなく、ブートストラップ中に実行する必要があることを強調したいと思います。

Adminモジュールのブートストラップ内からUsersモジュールからリソースをロードするにはどうすればよいですか?

4

1 に答える 1

0

グローバル ブートストラップで (モジュール固有のブートストラップではなく)、必要なすべてのアプリ クラスと名前空間の自動ロードを実行できます。

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
    protected function _initAutoloaders()
    {

        // require / require_once for libs/modules with specific autoloaders

        // Load HTML purifier autoloader
        require_once 'HTMLPurifier' . DS . 'HTMLPurifier.auto.php';

        // Load WideImage
        require_once 'WideImage' . DS . 'WideImage.php';

        // ...

        // Use Zend autoloader for other stuff

        $zendAutoloader = Zend_Loader_Autoloader::getInstance();

        // Register stuff.
        $autoloader = array(new SomeClassLoader('SomeLib', LIB_PATH), 'loadClass');
        $zendAutoloader->pushAutoloader($autoloader, 'LibName\\');

        // ...


    }

    // ... Other initializers
}
于 2013-08-05T17:42:52.707 に答える