2013-10-05 94 views
1

我使用自定义库中的Zend Framework命名空间我,我的bootstrap.php文件中注册它(应用/ 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(); 
    } 
} 

这是确定的,但是当我改变name run()to _initRegisterNamespace()

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

这是不行,有很多错误。因为Bootstrap将以启动“_init”运行每个函数。为什么我不使用_init函数来注册名称空间。感谢回答!

回答

1

如果你想注册“我的”命名空间试试这个:

protected function _initNamespace() 
{ 

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

    return $autoloader; 
} 

调度是没有必要的。

0

这是所有你需要:

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

,如果还是不行,请提供关于你得到错误的一些信息。