【问题标题】:Zend Framework: disable autoloading of base model tablesZend Framework:禁用基本模型表的自动加载
【发布时间】:2010-03-23 22:13:39
【问题描述】:

我使用 Module Autoloader 来自动加载资源(表单、Doctrine 模型等)。 我根本不使用 Zend_Db_Table。

当我加载任何 Doctrine 模型时, 例如MyModule_Model_Test, 它也尝试加载MyModule_Model_TestTable,所以我收到MyModule_Model_TestTable.php 丢失的错误。

为了解决这个问题,我可以创建空类 MyModule_Model_TestTable 类和 一切正常。
但我不需要这个文件。

奇怪的是,当我将 MyModule_Model_TestTable 移动到 /anyDirDeeper/MyModule_Model_TestTable 而不更改其名称或内容时,该类也正确加载了……

如何配置模块自动加载器使其不需要这个 ...Table 类?

我的 application.ini 中有:

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = 

和模块引导:

class MyModule_Bootstrap extends Zend_Application_Module_Bootstrap {}

我的应用结构是这样的:

/application/
    /modules/
        /mymodule/
            /models/
                /Db/
                   *Mymodule_Model_Db_Test*
            *Mymodule_Model_Test*

【问题讨论】:

  • 我知道没有用模块加载 Doctrine 模型的好方法,但是在阅读了您尝试加载 Doctrine 模型后,您启发了我将 Doctrine Bootstrap 代码移动到模块中,老实说我不知道'不是如何回答你的问题 :( 我还没有测试它,但听起来很有趣
  • 当我在 bootstrap 中自动加载模型时它可以工作,但在控制器操作中不起作用......

标签: php zend-framework


【解决方案1】:

我认为产生这个问题是因为我使用了相同的模块名称和资源类型名称(默认注册)。

模型已命名:Acl_Model_Modelname 和 Acl_ 命名空间已注册到自动加载器。将模型命名空间更改为其他名称,它可以工作。

【讨论】:

    猜你喜欢
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多