Zend framework doctrine2 zend框架名称空间控制器

Zend framework doctrine2 zend框架名称空间控制器,zend-framework,namespaces,controllers,doctrine-orm,Zend Framework,Namespaces,Controllers,Doctrine Orm,我正在尝试将doctrine2沙盒与默认的Zend Framework应用程序集成。当我尝试在控制器中使用名称空间时,会出现“无效控制器类(“IndexController”)”错误 这项工作: use Entities\User, Entities\Address; class IndexController extends Zend_Controller_Action { ... } 这不(但应该?)是: 在阅读了其中的一些内容之后,在PHP中,当您想要围绕名称空间进行声明和构造时,您

我正在尝试将doctrine2沙盒与默认的Zend Framework应用程序集成。当我尝试在控制器中使用名称空间时,会出现“无效控制器类(“IndexController”)”错误

这项工作:

use Entities\User, Entities\Address;


class IndexController extends Zend_Controller_Action
{
...
}
这不(但应该?)是:

在阅读了其中的一些内容之后,在PHP中,当您想要围绕名称空间进行声明和构造时,您会使用第二种语法。这样就可以创建像这样的对象

Entities\IndexController 
所以Zend再也找不到了

根据这些站点,您必须使用导入命名空间并使用它

这就是为什么它在第一个示例中有效,而在第二个示例中无效

希望我是对的,这有帮助

在浏览并阅读了其中的一些内容之后,在PHP中,当您想要围绕名称空间声明和构造名称空间时,您会使用第二种语法。这样就可以创建像这样的对象

Entities\IndexController 
所以Zend再也找不到了

根据这些站点,您必须使用导入命名空间并使用它

这就是为什么它在第一个示例中有效,而在第二个示例中无效


希望我是对的,这有帮助

在第一个示例中,您将名称空间导入控制器。在第二个示例中,将控制器分配给命名空间

导入名称空间允许您引用类,而无需使用它们的完全限定类名

new \Entities\User() // without import
new User() // with import
将命名空间分配给控制器实际上会更改类的完全限定名

new \IndexController() // without namespace
new \Entities\IndexController() // with namespace
(命名空间中的类总是可以引用同一命名空间中的其他类,而不必“使用”它。我怀疑这是您尝试使用选项2的主要原因)

Zend Framework 1.10仍然不知道名称空间。解析URL并尝试加载控制器时,它将只在默认全局命名空间中查找
\IndexController
,而不知道它已分配给用户定义的命名空间(
\Entities\IndexController


我的建议是,在ZF中使用控制器时,不要给它们分配名称空间。导入很好。我们必须等到ZF 2.0才能获得完整的命名空间支持。

在第一个示例中,您正在将命名空间导入控制器。在第二个示例中,将控制器分配给命名空间

导入名称空间允许您引用类,而无需使用它们的完全限定类名

new \Entities\User() // without import
new User() // with import
将命名空间分配给控制器实际上会更改类的完全限定名

new \IndexController() // without namespace
new \Entities\IndexController() // with namespace
(命名空间中的类总是可以引用同一命名空间中的其他类,而不必“使用”它。我怀疑这是您尝试使用选项2的主要原因)

Zend Framework 1.10仍然不知道名称空间。解析URL并尝试加载控制器时,它将只在默认全局命名空间中查找
\IndexController
,而不知道它已分配给用户定义的命名空间(
\Entities\IndexController


我的建议是,在ZF中使用控制器时,不要给它们分配名称空间。导入很好。我们必须等到ZF 2.0才能获得完整的命名空间支持。

Entities\IndexController返回以下错误:语法错误、意外的T\u n\u分隔符、预期的'{'我也有类似的想法,并在前面尝试了\IndexController-但我也遇到了同样的错误,但为什么要使用第二个版本^它不是这样工作的。如果要导入类,请键入myobject。那么您想在控制器中使用的东西是它吗?Entities\IndexController返回以下错误:语法错误,un应为T\n\u分隔符,应为'{'我也有类似的想法,并在前面尝试了\IndexController-但我也遇到了同样的错误,但为什么要使用第二个版本^它不是这样工作的。如果要导入类,请键入myobject。那么你想在控制器中使用什么东西吗?谢谢你的分析。我不明白的是,为什么要在在控制器名称前面倒斜杠会产生语法错误。\IndexController和\Entities\IndexController都会产生以下错误:语法错误、意外的T\u NS\u分隔符、期望T\u字符串无论如何,我会接受您的建议,现在只导入名称空间。我要补充的是,Zend Framework不完全是名称空间Ignorant。很简单,MVC控制器当前无法命名。其余的库代码、帮助程序、表单等都可以命名。感谢您的分解。我不明白的是,为什么在控制器名称前放置一个前导反斜杠会产生语法错误。\IndexController和\Entities\IndexController produce以下错误:语法错误,意外的T\u NS\u分隔符,期望T\u字符串无论如何,我会接受您的建议,现在只导入名称空间。我要补充的是,Zend Framework并不是完全不知道名称空间。只是MVC控制器目前无法使用名称空间。其余的库代码、帮助程序、表单等可以是na梅斯派德。