2011-05-14 82 views
2

有沒有辦法使用cakephp將自己的代碼放入命名空間中?以下非常簡單的控制器類正常工作。CakePHP和命名空間?

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

不過,如果我添加

namespace foo\bar; 

CakePHP中再也找不到控制器。有什麼方法可以告訴Cake應該在哪個命名空間查找控制器?

我使用cakephp 1.3和php 5.3。

+1

命名空間正在進入CakePHP 3. – cgTag 2013-01-22 15:17:09

+0

多個版本的PHP都有命名空間。 [tag:namespaces]標籤的存在足以對此問題進行分類。不需要調用版本標籤。尤其是那些不應該存在的東西。 [我認爲你剛剛在SO中發現了一個bug](http://meta.stackexchange.com/q/179510/135887)。 – Charles 2013-05-09 04:43:55

回答

1

我不認爲有。 CakePHP尋找類如PostsControllerBlogController,而不是foo\bar\PostsController。也許你可以告訴CakePHP在什麼文件夾中查找這些類(可能),但是它仍然在尋找unnamepsaced類名。

爲什麼要在不使用名稱空間的框架中使用它?

+4

爲什麼我會想要這個?這樣我的類名不會與框架的名稱衝突。 – 2011-05-15 11:40:16

+0

我認爲這是一個有效的觀點,但是由於整個框架都是建立在unnamespaced的基礎上的,所以您可以在框架樣式中爲我們的課程提供一個有趣的,不可計數的,無法註冊的(?)名稱。一切都沒有意義。對不起蛋糕不會允許它=)[幾](http://symfony.com/)[其他](http://lithify.me/)[很好](https://github.com/rudiedirkx/ Rudie-on-wheels)[frameworks](http://www.recessframework.org/)[that do](http://framework.zend.com/wiki/display/ZFDEV2/Zend+Framework+2.0+Requirements)儘管如此。 – Rudie 2011-05-15 13:04:42

0

爲什麼不放棄App::import()cakephp 1.3。將其替換爲include_once()

我有我的自定義供應商類定義下名稱空間工作正常。只是爲了防止自定義類名與官方類衝突。