1
我有以下代碼:如何優先考慮Zend Framework中的一個助手?
public function _setHelpers() {
Zend_Controller_Action_HelperBroker::addPrefix('My_Controller_Action_Helpers');
Zend_Controller_Action_HelperBroker::addPath (APPLICATION_PATH . '/controllers/helpers');
}
有了這個,我可以在我的/控制器/動作/助手/ Helper.php或/application/controllers/helpers/Helper.php添加輔助閹。這是好的,但我需要優先考慮/ application /中的一個,即:如果我有兩個helpers加載/ in應用程序中的一個,而不是在My/Controller /中的一個...
EDITING
我通過代碼更改爲此解決這個問題:
public function _setHelpers() {
$prefix = 'My_Controller_Action_Helpers';
Zend_Controller_Action_HelperBroker::addPrefix ($prefix);
Zend_Controller_Action_HelperBroker::addPath (APPLICATION_PATH . '/controllers/helpers', 'My_Controller_Action_Helper');
return $this;
}
正如你可能會注意到,它幾乎是相同的,與添加路徑時,我還加了前綴的差異。感謝大家的幫助。
實際上不,我有這樣兩個代碼: '類My_Controller_Action_Helpers_Noticia延伸My_Controller_Action_Helper_Abstract { \t保護的函數_direct(){ \t \t回聲1; \t} } 類My_Controller_Action_Helper_Noticia延伸Busca_Controller_Action_Helpers_Noticia { \t保護的函數_direct(){ \t \t回聲2; \t} }' 第一個是我/控制器/ ...,第二個在控制器/助手/ 它顯示1中的視圖... – Cito 2012-04-26 16:01:29
在這種情況下的原因是因爲之一類沒有正確命名,所以它不會被加載。根據您的應用前綴,我認爲您必須更改'Controllers/Helpers'中的一個名爲'Busca_Controller_Action_Helper_Noticia'並確保位置是'application/controllers/action/helpers/Noticia.php' – drew010 2012-04-26 17:13:20
事情是這樣的它是好的,問題是其他的,但我已經知道了。感謝您的幫助,您給我提供瞭解決此問題的線索(因爲我打印的前綴被添加到Zend_Controller_Action_HelperBroker :: getPluginLoader() - > getPaths()中,並且以這種方式我看到了需要添加addPath的前綴) 非常感謝! – Cito 2012-04-26 17:25:39