1
我有一個Phalcon項目建立,我有一個多個控制器目錄的工作實現。我的當前目錄結構簡單,看起來像這樣:在Phalcon中嵌入控制器目錄與共同的基本控制器
/controllers
/admin
ControllerBase.php
IndexController.php
AuthController.php
ControllerBase.php
IndexController.php
得到這個工作,我註冊了兩個命名空間:
$loader->registerNamespaces(
array(
'App\Controllers' => APP_PATH .'/controllers/',
'App\Controllers\Admin' => APP_PATH .'/controllers/admin/',
...
));
在這個作品中,以下兩個問題創造了大量的應用程序時,應當出示自己與多個目錄:
- 我需要爲/控制器內的每個子目錄註冊一個單獨的命名空間。這會對10個以上的命名空間造成任何性能問題嗎?
- 對於所有名稱空間控制器,我不能擁有1個通用ControllerBase。不管子目錄/名稱空間是否從一個主控制器繼承,是否有任何方法可用於我的所有控制器?
我遇到的主要問題是#2,似乎不管我嘗試了什麼,我不能讓/admin/IndexController.php繼承自/ControllerBase.php。它只會允許我從/admin/ControllerBase.php繼承。
#2問題不應該發生。我有多個命名空間(多路徑)和許多從一個ControllerBase(沒有命名空間)繼承的控制器(有或沒有命名空間)。所以這是可行的。至於PHP能夠加載你的類,你應該只能有一個ControllerBase – jodator
謝謝jodator。如果你想提交這個答案,我可以接受它。這裏的解決方案是從'ControllerBase.php'中刪除命名空間並調用'$ loader-> registerClasses('ControllerBase'=> PATH);' –
當然,爲什麼不呢?我很高興它幫助你。 – jodator