我已经开始记录自己有关 Zend Framework 的内容,因为我很快就会开始在生产中使用它。一切正常,直到我开始使用和使用模型:)。
根据 Zend 的建议,模型的默认位置是application/models/DbTable
,所有模型都将被放入其中。这个位置迫使我将模型命名为Application_Model_DbTable_Actors
. 对我来说,这是一个很长的模型名称,而且不是一个易于使用的名称。
我想要获取的目录结构如下所示:
application/
models/
actors/
ActorsMapper.php
Actor.php
books/
BooksMapper.php
Book.php
等等
所以我所有的模型都将驻留在models
目录下,但分组在他们自己的目录中。
每个类的命名应该是ActorsMapper
or Actor
(它们都将扩展Zend_Db_Table
or Zend_Db_Row
)。
我知道在我的控制器中,如果我使用类似的东西实例化一个模型,$actors = new ActorsMapper()
我会得到一个Fatal error: Class not found
,这就是为什么我要寻求你的帮助。
为了解决这个问题,我尝试将我的models
目录添加到 include_path:
第一次尝试
添加
includePaths.models = APPLICATION_PATH "/models"
到 application.ini
但是这个甚至没有将它添加到包含路径中
第二次尝试:
使用明确添加路径
set_include_path(implode(PATH_SEPARATOR, array( realpath(APPLICATION_PATH . '/../library'), realpath(APPLICATION_PATH . '/models'), get_include_path(), )));
但即使这在包含的路径中添加了该路径,错误仍然存在。
我在 的官方文档中看到了这种模型命名Zend_Db_Table
,但我找不到与自动加载它们相关的任何内容。
谢谢大家的任何解决方案。
ps zend 框架版本是 1.11.1