php zend-framework zend-tool

php - ¿Cómo personalizar la salida de Zend_Tool?



zend-framework zend-tool (2)

Me gustaría usar Zend_Tool (ZF 1.9) con mi proyecto, pero me gustaría poder personalizar el resultado predeterminado de los nuevos archivos. Por ejemplo, todos los Controladores deberían tener un encabezado específico preincorporado al resultado con el marcado de phpdoc y la información de licencia para evitar tener que agregar esto como un paso adicional.

Además, para este proyecto en particular (pero no para todos los demás proyectos) , necesito que los controladores extiendan algo más que el controlador Zend predeterminado, ya que lo amplié para algunas funcionalidades específicas.

La documentación alude a la capacidad de hacer estas cosas, pero no lo deja muy claro.

Por lo que puedo decir, puedo configurar un directorio ~ / .zf (en sistemas basados ​​en *** nix) e incluir proveedores personalizados allí. Sin embargo, esto abarcará toda la máquina en lugar de limitarse a un solo alcance del proyecto. Además, si bien esto agregará nuevos proveedores, (aparentemente) no me permite personalizar la funcionalidad de los proveedores existentes .

¡Cualquier ayuda aquí sería muy apreciada!


Naturalmente, puede continuar sobrescribiendo cuando defina las clases específicas. Puede declarar que se basan en su clase, en lugar de la clase ZF.

Para proyectos específicos, puede modificar su classpath para que sea una versión personalizada de ZF o posiblemente tenga una carpeta de anulación personalizada. Con una carpeta personalizada, sus cambios no son para toda la máquina, pero tampoco lo es su Zend Framework. en sistemas basados ​​en *** nix, puede aprovechar enlaces simbólicos para mantenerse en una copia de ZF.

¿Estás tratando de modificar tu código fuente para incluir los encabezados de licencia y PHPdoc? Si es así, lo que hice en el pasado es tener un simple paso de compilación que agrega la información que necesita. Cada tipo de archivo puede tener la información de encabezado apropiada. Puede tener buenas etiquetas para decirle al sistema que ignore los archivos, o que solo ejecute los controladores.

Buena suerte, Jacob


Esencialmente a lo que Jacob se refería: lo que estás hablando parece una simple ampliación de clase. Hay una presentación de diapositivas realmente simple para extender Zend Framework aquí:

http://www.slideshare.net/PHPBelgium/extending-zend-framework-presentation

También hay muchos otros recursos disponibles en línea para ampliar Zend Framework. Puede crear árboles fuente separados para sus diferentes proyectos, y la funcionalidad común a varios proyectos se puede agregar a clases abstractas que se encuentran en carpetas comunes. Algo como esto no es común, pero he encontrado que funciona en ese tipo de situaciones:

class My_Component_HelloProvider extends My_Common_Component_HelloProvider { public function say() { echo ''Hello from my provider!''; } // public function do() is inherited } class My_Common_Component_HelloProvider implements Zend_Tool_Framework_Provider_Interface { public function do() { // do something } }

Avíseme si esto es diferente de lo que intenta hacer, pero no hay ninguna razón por la que no pueda compilar varias extensiones de aplicación desde una sola instancia de ZF.