У меня есть следующий код:Как я могу отдать приоритет одному помощнику в Zend Framework?
public function _setHelpers() {
Zend_Controller_Action_HelperBroker::addPrefix('My_Controller_Action_Helpers');
Zend_Controller_Action_HelperBroker::addPath (APPLICATION_PATH . '/controllers/helpers');
}
С этим я могу добавить помощника Wether в My/Controller/Action/Помощники/helper.php или /application/controllers/helpers/Helper.php. Это нормально, однако мне нужно отдавать приоритет тому, который находится в/application /, то есть: если у меня есть оба помощника, загрузите один из них в/приложение, а не тот, который находится в My/Controller/...
РЕДАКТИРОВАНИЕ
я был в состоянии исправить это путем изменения кода на это:
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} } ' Первый мой/Controller/... и второй один в контроллерах/Помощники/ И это показывает 1 в представлении ... – Cito
В этом случае причина в том, что один из классы не называются правильно, поэтому они не будут загружены. В зависимости от вашего префикса приложения, я думаю, вы должны изменить его в 'Controllers/Helpers', который будет называться' Busca_Controller_Action_Helper_Noticia', и убедитесь, что это «приложение/контроллеры/действие/помощники/Noticia.php» – drew010
. Дело в том, что все было в порядке, проблема была другая, но я уже понял это. Спасибо за вашу помощь, вы даете мне ключ к ее исправлению (поскольку я печатал префикс, добавляемый в Zend_Controller_Action_HelperBroker :: getPluginLoader() -> getPaths(), и таким образом я увидел необходимость добавления также префикса в addPath) Большое спасибо! – Cito