【问题标题】:how can I configure default namespace and Model location for the AutoLoader in application.ini?如何在 application.ini 中为 AutoLoader 配置默认命名空间和模型位置?
【发布时间】:2011-06-13 22:34:38
【问题描述】:

使用 PHP 5.3 和 Zend Framework 1.11.7 我一直在尝试将 AutoLoader 配置为自动加载驻留在默认目录 application/models 中的模型类(用于 Zend_Db)。

我找到了以下解决方案:

我可以在 Bootstrap.php 中添加以下函数:

protected function _initLoader() 
{
    $loader = new Zend_Loader_Autoloader_Resource (array (
    'basePath' => APPLICATION_PATH,
    'namespace' => 'Default'));
    $loader -> addResourceType ( 'model', 'models', 'Model'); 
}  

这似乎是一个应该在 application.ini 中轻松设置的选项。所以我的问题是,是否有任何相关指令可以添加到 application.ini 来执行我的函数执行的相同任务?

更新

设置appnamespace指令后,我还需要添加如下函数:

protected function _initLoader() 
{    
    $loader = new Zend_Loader_Autoloader_Resource (array (
    'basePath' => APPLICATION_PATH));
    $loader -> addResourceType ( 'model', 'models', 'Model'); 
}

否则它将找不到我的模型类。

唯一的区别是我删除了属性“命名空间”。

我可以添加任何其他属性以完全删除此功能吗?

谢谢! :)

冷杉

【问题讨论】:

    标签: php zend-framework zend-db zend-autoloader


    【解决方案1】:

    你应该在 application.ini 中设置

    appnamespace = "Application"
    resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
    

    appnamespace 是您用于模型的前缀,因此如果您的模型是“Default_Model_User”,那么 appnamespace 将为“Default”,如果您的模型是“Application_Model_User”,那么 appnamespace 将为“application”

    这两个指令应该解决默认应用程序的自动加载

    您也可以在引导程序中设置它,您需要使用 Zend_Application_Module_AutoLoader:

    protected function _initDefaultModuleAutoloader()
    {
        $this->_resourceLoader = new Zend_Application_Module_Autoloader(array(
            'namespace' => 'Application',
            'basePath'  => APPLICATION_PATH,
        ));
    }
    

    【讨论】:

    【解决方案2】:

    将以下内容放入您的 application.ini 中

    appnamespace = "MyNamespace"
    

    然后它将在您的 application/models 目录中加载一个文件,其中包含一个名为 MyNamespace_Model_MyModel 的类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-13
      • 2012-03-13
      • 2011-02-21
      • 1970-01-01
      • 2021-05-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多