我讀過一些地方,使用一個基本控制器是壞的,並有更多的側面比側面。那個人說你應該使用插件。Zend中底層控制器的下側是什麼?
我需要的是每個動作從請求中獲得「lang」變量並將其傳遞給當前動作。我現在所做的就是用preDispatch製作一個基本控制器,它可以從請求中獲取並通過$this
(任何其他控制器從基礎擴展)傳遞它。
如果我使用插件,應該如何實現它?我應該嗎?
編輯: 找到我已經讀過的地方控制器是邪惡的地方:Sending variables to the layout in Zend Framework評論最後回答。注意我的問題並不相似(我需要傳遞給一個動作,而不是佈局)。
EDIT2: 有關如何實現的答案,您是否還可以解釋爲什麼使用基本控制器不好?編號3: 似乎無法使其工作。我已經完成了:在控制器文件夾中創建了一個助手目錄,添加到初始化程序中Zend_Controller_Action_HelperBroker::addPath('../application/default/controllers/helpers/', 'Controller_Helper');
在該文件夾中創建了一個名爲LangHelper.php的文件,並創建了一個類Controller_Helper_Lang extends Zend_Controller_Action_Helper_Abstract
。爲什麼它還沒有工作? (也許我需要添加一個需要一次或某事?)
EDIT4: 我得到的是:
Zend_Loader_PluginLoader_Exception:按名稱插件「郎」在註冊表中沒有發現 ;使用路徑:Controller_Helper_: ../application/default/controllers/helpers/;../application/admin/controllers/helpers/ Zend_Controller_Action_Helper_:Zend/Controller/Action/Helper/in C:\ wamp \ www \ EfCom \ library \ Zend \ Loader \ PluginLoader.php on line 412
你能寫出如何在我的情況下使用這個? – Vadiklk
@Vladiklk我更新了我的答案,你明白我的意思了嗎? –
你對基本控制器的想法有什麼看法? – Vadiklk