【问题标题】:CakePHP and namespaces?CakePHP 和命名空间?
【发布时间】:2011-08-25 10:51:27
【问题描述】:

有没有办法使用 cakephp 将您自己的代码放入命名空间?以下非常简单的控制器类可以正常工作。

class Customer extends \AppModel {
    var $name = 'Customer';
}

但是,如果我添加

namespace foo\bar;

cakephp 找不到控制器了。有没有办法告诉 cake 它应该在哪个命名空间中寻找控制器?

我正在使用 cakephp 1.3 和 php 5.3。

【问题讨论】:

  • 命名空间即将进入 CakePHP 3。
  • 不止一个版本的 PHP 有命名空间。 namespaces 标签的存在足以对这个问题进行分类。无需调用版本标签。尤其是那些不应该再存在的。 I think you just found a bug in SO.

标签: php cakephp namespaces


【解决方案1】:

我认为没有。 CakePHP 寻找像PostsControllerBlogController 这样的类,而不是foo\bar\PostsController。也许你可以告诉 CakePHP 在哪个文件夹中寻找这些类(可能),但它仍然会寻找未命名的类名。

为什么要在不使用命名空间的框架中使用它?

【讨论】:

  • 我为什么要这个?这样我的类名就不会与框架的类名冲突。
  • 我想这是一个正确的观点,但由于整个框架是无命名空间构建的,你也可以(更好地)给我们的类一个有趣的、难以发音的、难以记住的 (?) 名称以框架的风格。都没有实际意义。抱歉 Cake 不允许 =) Several other very good frameworks that do 允许它。
【解决方案2】:

为什么不放弃 cakephp 1.3 中的App::import()。将其替换为include_once()

我在命名空间下定义了我的自定义供应商类工作正常。只是为了防止自定义的类名和官方的冲突。

【讨论】:

    猜你喜欢
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-31
    相关资源
    最近更新 更多