Zend Framework 1.12中的RegisterNamespace

时间:2014-11-13 13:21:49

标签: php zend-framework

我删除了文件夹“library / Zend”中的每个Zend Framework类,我使用的是1.7版本,并希望升级到1.12。删除后,我在“library / Zend”中上传了Zend Framework 1.12类。

我在加载课程时遇到了问题。在“public / index.php”中,我使用了registerAutoload()。这被删除了所以我改为:

require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();

然后,对于我在Controller中使用的每个类,我必须手动添加它:

$loader->registerNamespace('Paths');
$loader->registerNamespace('Certificate');
$loader->registerNamespace('Zim_Properties');
$loader->registerNamespace('Zim_Controller_Dispatcher');
$loader->registerNamespace('Controller_Plugin_ActionSetup');
$loader->registerNamespace('Controller_Plugin_History');
$loader->registerNamespace('Zim_Model');
$loader->registerNamespace('Zim_Controller_Action');
$loader->registerNamespace('Controller_ProposalInvoice');
$loader->registerNamespace('Stats');
$loader->registerNamespace('Controller_ArticleService');

如果删除此registerNamespace,我会得到Fatal error: Class 'Controller_ArticleService' not found in /home/juliaxd8/domains/jmediatechnology.eu/public_html/factuurtogo2/application/controllers/ArticleController.php on line 3

由于手动注册,我可能会忘记某些事情/写错字。我可以自动加载课程吗?

1 个答案:

答案 0 :(得分:0)

我在我的一个项目的Bootstrap.php文件中有一个类似这样的函数,我认为这样做:

    protected function _initAutoload()
    {

        $modelLoader = new Zend_Application_Module_Autoloader(
            array('namespace' => '',
                'basePath' => APPLICATION_PATH . '/modules/default'));
        return $modelLoader;
    }