gpt4 book ai didi

zend-framework - 原则2 Zend框架命名空间 Controller

转载 作者:行者123 更新时间:2023-12-04 16:59:33 24 4
gpt4 key购买 nike

我正在尝试将 Doctic2 沙箱与默认的 Zend 框架应用程序集成。当我尝试在 Controller 中使用命名空间时,出现“无效的 Controller 类(“IndexController”)”错误

这个作品:

use Entities\User, Entities\Address;


class IndexController extends Zend_Controller_Action
{
...
}

这不(但应该?):
namespace Entities;


class IndexController extends \Zend_Controller_Action
{
...
}

最佳答案

在您的第一个示例中,您将命名空间导入 Controller 。在第二个示例中,您将 Controller 分配给命名空间。

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

new \Entities\User() // without import
new User() // with import

为您的 Controller 分配命名空间实际上会更改您的类的完全限定名称。
new \IndexController() // without namespace
new \Entities\IndexController() // with namespace

(命名空间内的类始终可以引用同一命名空间中的其他类,而不必“使用”它。我怀疑这是您尝试使用选项 2 的主要原因)。

Zend Framework 1.10 仍然对命名空间一无所知。在解析 URL 并尝试加载 Controller 时,它只会在 \IndexController 的默认全局命名空间中查找。 ,并且不知道它已分配给用户定义的命名空间( \Entities\IndexController )。

我的建议是,在 ZF 中使用 Controller 时,不要为它们分配 namespace 。导入工作正常。我们必须等到 ZF 2.0 才能获得完整的命名空间支持。

关于zend-framework - 原则2 Zend框架命名空间 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3632623/

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