2010-03-12 75 views
0

什麼類(FrontController,Bootstrap,Dispacher ....)在ZF中設置默認結構路徑?Zend框架內部結構修改?

+1

無論你在想什麼,你絕對不應該修改框架! *(使用ZF,無論如何,幾乎每個路徑都可以通過Bootstrap或.ini配置文件進行配置)* - 稍後將會升級它。 – 2010-03-12 12:12:57

+0

完全沒有修改核心是讓我這樣做,通過插件來爲我的文件結構設置正確的路徑(因爲標準結構並不真正提供可重用的模塊化方法) – simple 2010-03-12 13:03:17

回答

2

沒有單個實例具有所有路徑。每個組件都有自己的默認設置,例如FrontController知道控制器目錄應該被命名爲controllers,但它不知道如何從它製作一個完整的路徑(Dispatcher做它)或在哪裏找到Action Helpers。這是在ActionHelper Broker中定義的。因此,Zend_View_Abstract包含視圖過濾器,幫助器和腳本等的路徑。

像@Pascal在他的評論中提到的,你不應該在它的核心修改ZF。無論如何,一旦您更新到新版本,您將會失去更改。改爲在引導程序中通過API配置路徑,或通過application.ini配置路徑。

+0

我在控制器插件中執行它,在實際中不修改核心是我的主要目標和約束,這就是爲什麼我使用插件,並從那裏指定如果後端?前端,以及在哪裏看它的模型等 – simple 2010-03-12 12:57:41

+1

只需要指定取決於哪個結束看在APPLICATION_PATH中。 '/ modules/modulename/Whichend /(controllers | view),幾乎可以做到這一點,但是在設置默認後端控制器時遇到了問題,很好地計劃讀取代碼並製作圖表來清楚地理解它 - 我得到了一些有趣的敵人週末=) – simple 2010-03-12 13:01:05

1

實際上,調度員的工作是找到請求的操作控制器。

因此,您必須擴展Zend_Controller_Dispatcher_AbstractZend_Controller_Dispatcher_Standard甚至根據Zend_Controller_Dispatcher_Interface創建一個全新的適合您的要求。

但請注意,您必須更改Zend_Controller_Action_Helper_ViewRenderer試圖找到所需的視圖文件的方式。