zend udemy mac how framework desde curso composer cero aprender zend-framework bootstrapping

zend-framework - udemy - zend framework 2018



Cómo indicar el marco zend donde están mis clases personalizadas (4)

Eche un vistazo a este tutorial anterior de Zend Framework de Rob Allen , específicamente en la página 4, donde habla sobre el "bootstrapper". Sus nuevos tutoriales, por excelentes que sean, parecen contar con Zend Tool para hacer la creación de aplicaciones y pasar por alto esto.

Una cosa que me alarmó, sin embargo, fue que mencionó que la carpeta que está tratando de incluir es public / library. A menos que intencionalmente quiera compartir su código con el mundo, le sugiero encarecidamente que lo ubique en otro lugar ... a menos que tenga una carpeta "pública" diferente que no se haya compartido con el público (en cuyo caso, puede considerar cambiarle el nombre) para evitar confusiones futuras).

Tengo una carpeta con clases personalizadas en una aplicación ZF 1.10. La carpeta está ubicada en / library. ¿Cómo puedo decirle a ZF dónde están? Tanto application.ini como index.php establecen la ruta a la biblioteca pero luego ZF no puede encontrar los archivos.

Gracias


A menudo nos encontramos con el problema de escribir nuestras propias funciones o clases personalizadas y dónde ubicarlas.

Entonces, para agregar una clase personalizada (o una biblioteca personalizada) uno puede usar los espacios de nombres del autocargador de zend framework.

Agregue la siguiente línea en el archivo application.ini

autoloaderNamespaces.custom = "Custom_"

O

autoloaderNamespaces[] = "Custom_"

Todas las clases personalizadas se mantendrán en el directorio de la biblioteca. Cree un nombre de carpeta ''Personalizado'' (que se define en application.ini) en el directorio de la biblioteca.

Las clases tendrán el prefijo ''Custom_'' en la declaración en el archivo (por ejemplo, Custom_Test)

Ahora podemos usar esta clase como $test = new Custom_Test() , en nuestra aplicación.


Hay muchas soluciones posibles. El más común, al usar Zend Application, es registrar el espacio de nombres en application.ini agregando:

autoloaderNamespaces[] = "Example_"

Otras soluciones

  • Agregue su dir a include_path usando set_include_path() (solución ad hoc)
  • Siga las convenciones de nomenclatura PEAR (para que la resolución de la ruta sea posible)

Configure el autocargador en Bootstrap.php :

protected function _initAutoloader() { $autoloader = Zend_Loader_Autoloader::getInstance(); $autoloader->registerNamespace("Example"); // or Example_ }

Finalmente, configure el módulo o el autocargador de recursos , p. Ej.

$resourceLoader->addResourceTypes(array( ''acl'' => array( ''path'' => ''acls/'', ''namespace'' => ''Acl'', ), ''example'' => array( ''path'' => ''examples/'', ''namespace'' => ''Example'', ), ));


Agregue su biblioteca personalizada a composer.json:

"autoload": { "psr-0": {"Your": "vendor/My/library"} },

y ejecuta la actualización del compositor