gpt4 book ai didi

php - zend 框架模型定位和自动加载

转载 作者:行者123 更新时间:2023-12-02 05:12:15 25 4
gpt4 key购买 nike

我已经开始记录自己关于 Zend Framework 的情况,因为我很快就会开始在生产中使用它。一切正常,直到我开始使用和处理模型 :)。

根据 Zend 的建议,模型的默认位置是 application/models/DbTable,所有模型都将放入其中。这个位置迫使我将模型命名为 Application_Model_DbTable_Actors 。对我来说,这是一个很长的模型名称,而且不好用。

我想要获取的目录结构如下所示:

application/
models/
actors/
ActorsMapper.php
Actor.php
books/
BooksMapper.php
Book.php

等等

所以我所有的模型都将驻留在 models 目录下,但分组在它们自己的目录中。

每个类的命名应该是ActorsMapperActor(它们都将扩展Zend_Db_TableZend_Db_Row)。

我知道在我的 Controller 中,如果我使用类似 $actors = new ActorsMapper() 的东西实例化一个模型,我会得到一个 fatal error :找不到类 这就是为什么我要寻求你的帮助。

为了解决这个问题,我尝试将我的 models 目录添加到 include_path 中:

  • 第一次尝试

    添加 includePaths.models = APPLICATION_PATH "/models" 到 application.ini

但是这个甚至没有将它添加到包含路径

  • 第二次尝试:

    使用 set_include_path(implode(PATH_SEPARATOR, array(
    真实路径(APPLICATION_PATH。'/../library'),
    真实路径(APPLICATION_PATH。'/模型'),
    get_include_path(),
    )));

但即使在包含的路径中添加该路径,错误仍然存​​在。

我在 official documentation 中看到过这种模型命名方式Zend_Db_Table,但我找不到与自动加载它们相关的任何内容。

感谢大家提供任何解决方案。

附注zend框架版本为1.11.1

最佳答案

Zend Framework 有一个内置的自动加载器。它通过将类名映射到目录树来工作,因此 Application_Model_Actors_Actor 将映射到

Application\
Models\
Actors\
Actor.php

很遗憾,您无法更改此设置。您要查找的功能是 namespacing但它仅受仍在开发中的 Zend Framework 2 的支持(并且实际上是主要功能之一)。

关于php - zend 框架模型定位和自动加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4440187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com