Tengo ZF 1.11 ejecutándose sin problemas y seguí las instrucciones en su guía de rendimiento para eliminar las instrucciones require_once. He agregado el autocargador a mi archivo de índice como dicen (en una nota lateral, no veo por qué esto no puede ir en la boostrap), pero ahora mis complementos no se están encontrando.Zend framework: rutas de complementos
Por ejemplo, una forma es el uso de decorador 'DijitElement', que devuelve el error:
Zend_Loader_PluginLoader_Exception: Plugin by name 'DijitElement' was not found in the registry; used paths: Zend_Form_Decorator_: Zend/Form/Decorator/ in C:\wamp\www\cms\library\Zend\Loader\PluginLoader.php on line 412
En esta forma constructor he añadido el siguiente para tratar y fijarlo con vano:
$this->addPrefixPath('Zend_Dojo_Form_Decorator', 'Zend/Dojo/Form/Decorator', 'DECORATOR');
Si cambio el nombre de la decoradora de utilizar 'Zend_Dojo_Form_Decorator_DijitElement' en lugar de sólo 'DijitElement' me sale:
Plugin by name 'Zend_Dojo_Form_Decorator_DijitElement' was not found in the registry; used paths: Zend_Dojo_Form_Decorator_: Zend/Dojo/Form/Decorator/ Zend_Form_Decorator_: Zend/Form/Decorator/
En mi bootstap estoy usando el caché de plugin, antes de eliminar el require_once no tenía rutas de prefijo en el constructor que funcionó bien, pero después de eliminar lo he intentado con y sin y tampoco funcionó.
protected function _initPluginCache() {
$path = '/cache/pluginLoaderCache.php';
if(file_exists($path)) include_once $path;
$loader = new Zend_Loader_PluginLoader(array(
'Zend_View_Helper'=>LIBRARY_PATH.'/Zend/View/Helper/',
'Zend_Dojo_View_Helper'=>LIBRARY_PATH.'/Zend/Dojo/View/Helper',
'Zend_Dojo_Form_Decorator'=>'Zend/Dojo/Form/Decorator',
'Zend_Dojo_Form_Element'=>LIBRARY_PATH.'/Zend/Dojo/Form/Element'
));
$loader = Zend_Loader_PluginLoader::setIncludeFileCache($path);
}
¿Cómo le digo a Zend dónde están los archivos? Estoy suponiendo que esto es algo que ver con mi cargador automático, pero la guía dice simplemente agregando esto va a hacer el truco:
require_once 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();
FYI, guía está aquí http://framework.zend.com/manual/en/performance.classloading.html
¿Por qué estás configurando estas rutas predeterminadas en Zend_Loader_PluginLoader en tu bootstrap _initPluginChache()? –
Eso fue solo un experimento, lo he intentado con y sin estos – Ashley