如果我没有遵循模型名称的命名结构(例如模型文件夹中的Users.php中的Application_Model_DbTable_Users),我在控制器上出现错误。而不是将其写为 Application_Model_DbTable_Users ,我想在模型文件夹的Users.php中将其简单地写为用户。我知道这在zend中是可以实现的,但是如何?我不知道。请帮忙解决这个问题。我想必须在bootstrap.php或index.php中完成配置autoloader ....无论什么是确切的解决方案.....但请帮我解决这个问题。 提前谢谢
答案 0 :(得分:1)
你怎么知道这是可能的? Zend Framework具有严格的命名语法,可以自动加载所有文件。自动装带器使用前缀(如Application_Model_
)来确定文件的位置。没有前缀,这是不可能的。
有时在解释ZF的行为时,要始终键入Application_Model_User
进行过多的工作,而不是使用它来更清楚地使用User
之类的内容。这并不意味着您可以在应用程序中使用此名称。
最后一种可能性是命名空间,但在稳定的ZF中它尚未使用。
答案 1 :(得分:1)
ZF遵循PEAR命名约定,因为文件夹层次结构对应于类的命名,例如Foo_Bar_Baz将位于文件夹Foo / Bar / Baz.php中。自动装带器将尝试相对于配置的包含路径找到此路径。
这意味着,您可以将所有类放入Autoloader已知的单个顶级目录中,或者添加一个额外的包含路径或 - 这是更好的选择 - 将另一个自动加载器添加到知道如何的默认自动加载器中将类名映射到文件。
有关详细信息,请参阅ZF Reference Guide on Autoloading。
答案 2 :(得分:0)
您可以实现一个自定义自动加载器,它只是使用模型路径预先添加类名。 in the documentation of the Zend_Loader有一个关于如何构建自己的自动加载器插件的示例。 基本上只是一个搜索&替换任务。
但是,强烈建议不要使用此方法,因为您的全局命名空间会受到很多污染。 至少使用一个简单的前缀(如Model _)。