1

Zend Framework で名前空間 MY のカスタム ライブラリを使用し、Bootstrap.php ファイル (Application/Bootstrap.php) に登録します。

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
    public function run()
    {
        $frontController = Zend_Controller_Front::getInstance();
        Zend_Loader_Autoloader::getInstance()->registerNamespace('My');
        $frontController->dispatch();
    }
}

それは問題ありませんが、名前を run() から _initRegisterNamespace() に変更すると

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
        public function _initRegisterNamespace()
        {
            $frontController = Zend_Controller_Front::getInstance();
            Zend_Loader_Autoloader::getInstance()->registerNamespace('My');
            $frontController->dispatch();
        }
    }

OKではない、エラーが多い。Bootstrap は "_init" ですべての関数を実行するためです。_init 関数を使用して名前空間を登録しないのはなぜですか。答えてくれてありがとう!

4

2 に答える 2

1

「My」名前空間を登録したい場合は、これを試してください:

protected function _initNamespace()
{

    $autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => 'My',
            'basePath'  => dirname(__FILE__),
    ));

    return $autoloader;
}

発送は不要です。

于 2013-10-05T09:05:26.447 に答える
0

必要なものはこれだけです:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
    public function _initRegisterNamespace()
    {
        Zend_Loader_Autoloader::getInstance()->registerNamespace('My');
    }
}

それでもうまくいかない場合は、発生しているエラーに関する情報を提供してください。

于 2013-10-07T10:58:30.407 に答える