Эти декораторы зарегистрированы через: < /p>
Код: Выделить всё
elementPrefixPath.decorator.prefix = "My_Form_Decorator"
elementPrefixPath.decorator.path = "My/Form/Decorator/"
< /code>
Они существуют в этой папке, их можно найти большую часть времени. < /p>
Но теперь я сталкиваюсь с проблемой, что иногда путь префикса не установлен при рендеринге формы. Код>, но не может сказать Сейчас.)Plugin by name 'MyExistingAndWorkingDecorator' was not found in the registry;
used paths: Zend_Form_Decorator_: Zend/Form/Decorator/
< /code>
Ошибка дает понять, что декоратор будет искать только в: < /p>
Zend/Form/Decorator/Код: Выделить всё
Zend/Form/Element.php/**
* Instantiate a decorator based on class name or class name fragment
*
* @param string $name
* @param null|array $options
* @return Zend_Form_Decorator_Interface
*/
protected function _getDecorator($name, $options)
{
$loader = $this->getPluginLoader(self::DECORATOR);
$loader->addPrefixPath('My_Form_Decorator', '/var/www/project/library/My/Form/Decorator/'); // I added this line, this should be set via config, yet somehow it is lost.
$class = $loader->load($name);
if (null === $options) {
$decorator = new $class;
} else {
$decorator = new $class($options);
}
return $decorator;
}
< /code>
И все же я не хочу изменять файл поставщика, конечно. < /p>
Мое предположение состоит Почему это не применяется / не потеряно. < / p>
Подробнее здесь: https://stackoverflow.com/questions/794 ... decorators
Мобильная версия