Tabla de contenidos
- 71.1. Uso de Zend_Tool en la línea de comandos
- 71.2. Extendiendo Zend_Tool
La CLI, o herramienta de línea de comandos (conocida internamente como la herramienta de consola),
es actualmente la interfaz principal para realizar solicitudes de Zend_Tool.
Con la herramienta CLI, los desarrolladores pueden emitir solicitudes de herramientas
dentro de la "ventana de línea de comandos", también conocida comúnmente como ventana de "terminal". Este
entorno es predominante en entornos *nix, pero también tiene una implementación común
en windows con cmd.exe, console2 y también con el proyecto Cygwin.
Primero descargue Zend Framework. Esto se puede hacer yendo a framework.zend.com y descargando la última versión. Después de haber descargado el paquete y colocarlo en su sistema. El siguiente paso es hacer que el comando zf esté disponible en su sistema. La forma más fácil de hacer esto es copiar los archivos apropiados del directorio bin/ de la descarga, y colocar estos archivos dentro del mismo directorio que la ubicación del binario cli de PHP.
Para instalar mediante PEAR, debe usar el sitio de terceros zfcampus.org para obtener el último paquete PEAR de Zend Framework. Estos paquetes normalmente se compilan dentro del día siguiente a una versión oficial de Zend Framework. La ventaja de instalar mediante el gestor de paquetes PEAR es que, durante el proceso de instalación, la biblioteca de ZF terminará en el include_path, y los scripts zf.php y zf terminarán en un lugar de su sistema que le permitirá ejecutarlos sin necesidad de configuración adicional.
pear channel-discover pear.zfcampus.org pear install zfcampus/zf
Eso es todo. Después de la instalación inicial, debería poder continuar ejecutando el comando zf. Una buena forma de comprobar si está ahí es ejecutar zf --help
La instalación manual se refiere al proceso de forzar a que zf.php y la biblioteca de Zend Framework trabajen juntos cuando se colocan en lugares no convencionales, o al menos, en un lugar desde el cual su sistema no pueda ejecutarlos fácilmente (típico de programas en el PATH de su sistema).
Si está en un sistema *nix o mac, también puede crear un enlace desde algún lugar en su path hacia el archivo zf.sh. Si hace esto, no necesita preocuparse por tener la biblioteca de Zend Framework en su include_path, ya que los archivos zf.php y zf.sh podrán acceder a la biblioteca de forma relativa a donde se encuentran (es decir, los archivos ./bin/ son ../library/ en relación con la biblioteca de Zend Framework).
Existen otras opciones disponibles para configurar zf.php y la biblioteca en su sistema. Estas opciones giran en torno a establecer variables de entorno específicas. Estas se describen en la sección posterior sobre "personalización del entorno CLI". Las variables de entorno para establecer el include_path de zf.php, ZEND_TOOL_INCLUDE_PATH y ZF_TOOL_INCLUDE_PATH_PREPEND, son las de mayor interés.
Esto mostrará el número de versión actual de la copia de Zend Framework que está usando la herramienta zf.php.
zf show version
El sistema de ayuda incorporado es el lugar principal donde puede obtener información actualizada sobre lo que su sistema es capaz de hacer. El sistema de ayuda es dinámico en el sentido de que, a medida que se agregan proveedores a su sistema, se vuelven automáticamente ejecutables, y como tal, los parámetros necesarios para ejecutarlos estarán en la pantalla de ayuda. La forma más fácil de obtener la pantalla de ayuda es la siguiente:
zf --help
Esto le dará una visión general de las diversas capacidades del sistema. A veces, hay comandos más específicos de los que se pueden ejecutar, y para obtener más información sobre estos, es posible que deba ejecutar un comando de ayuda más especializado. Para obtener ayuda especializada, simplemente reemplace cualquiera de los elementos del comando con un "?". Esto le indicará al sistema de ayuda que desea más información sobre qué comandos pueden colocarse en lugar del signo de interrogación. Por ejemplo:
zf ? controller
Lo anterior significa "muéstrame todas las 'acciones' para el proveedor 'controller'"; mientras que lo siguiente:
zf show ?
significa "muéstrame todos los proveedores que soportan la acción 'show'". Esto funciona para profundizar en las opciones también, como puede ver en los siguientes ejemplos:
zf show version.? (show any specialties) zf show version ? (show any options)
El proveedor de proyecto es el primer comando que quizás desee ejecutar. Esto configurará la estructura básica de su aplicación. Esto es necesario antes de que cualquiera de los otros proveedores pueda ejecutarse.
zf create project MyProjectName
Esto creará un proyecto en un directorio llamado ./MyProjectName. A partir de este punto, es importante tener en cuenta que cualquier comando posterior en la línea de comandos debe ejecutarse desde dentro del directorio del proyecto que acaba de crear. Por lo tanto, después de la creación, es necesario cambiar a ese directorio.
El proveedor de módulos permite la fácil creación de un módulo de Zend Framework. Un módulo sigue el patrón hMVC de forma libre. Al crear módulos, se tomará la misma estructura usada en el nivel de application/, y se duplicará dentro del nombre elegido para su módulo, dentro del directorio "modules" del directorio application/, sin duplicar el directorio modules en sí mismo. Por ejemplo:
zf create module Blog
Esto creará un módulo llamado Blog en application/modules/Blog, y todos los artefactos que un módulo necesitará.
El proveedor de controladores es responsable de crear controladores (en su mayoría) vacíos, así como sus directorios y archivos de scripts de vista correspondientes. Para utilizarlo para crear un controlador 'Auth', por ejemplo, ejecute:
zf create controller Auth
Esto creará un controlador llamado Auth; específicamente, creará un archivo en application/controllers/AuthController.php con el AuthController dentro. Si desea crear un controlador para un módulo, use cualquiera de los siguientes:
zf create controller Post 1 Blog zf create controller Post -m Blog zf create controller Post --module=Blog
Nota: En el primer comando, 1 es el valor del indicador "includeIndexAction".
Para crear una acción dentro de un controlador existente:
zf create action login Auth zf create action login -c Auth zf create action login --controller-name=Auth
Para crear una vista fuera de la creación normal de controlador/acción, usaría una de las siguientes opciones:
zf create view Auth my-script-name
zf create view -c Auth -a my-script-name
Esto creará un script de vista en la carpeta del controlador de Auth.
El proveedor de modelos solo es responsable de crear los archivos de modelo apropiados, con el nombre apropiado dentro de la carpeta de la aplicación. Por ejemplo
zf create model User
Si desea crear un modelo dentro de un módulo específico:
zf create model Post -m Blog
Lo anterior creará un modelo 'Post' dentro del módulo 'Blog'.
El proveedor de formularios solo es responsable de crear el archivo de formulario apropiado y el método init(), con el nombre apropiado dentro de la carpeta de la aplicación. Por ejemplo:
zf create form Auth
Si desea crear un modelo dentro de un módulo específico:
zf create form Comment -m Blog
Lo anterior creará un formulario 'Comment' dentro del módulo 'Blog'.
Para configurar un DbAdapter, deberá proporcionar la información como una cadena codificada en formato url. Esta cadena debe ir entre comillas en la línea de comandos.
Por ejemplo, para introducir la siguiente información:
adapter: Pdo_Mysql
username: test
password: test
dbname: test
Se deberá ejecutar lo siguiente en la línea de comandos:
zf configure dbadapter "adapter=Pdo_Mysql&username=test&password=test&dbname=test"
Esto asume que desea almacenar esta información dentro del espacio 'production' del archivo de configuración de la aplicación. Lo siguiente mostrará una configuración de sqlite, en la sección 'development' del archivo de configuración de la aplicación.
zf configure dbadapter "adapter=Pdo_Sqlite&dbname=../data/test.db" development zf configure dbadapter "adapter=Pdo_Sqlite&dbname=../data/test.db" -s development
El proveedor DbTable es responsable de crear los archivos de modelo/acceso a datos de
Zend_Db_Table para que su aplicación los use, con el nombre de clase
apropiado, y en la ubicación correcta dentro de la aplicación.
Las dos piezas de información importantes son el nombre de DbTable,
y el nombre real de la tabla de la base de datos. Por ejemplo:
zf create dbtable User user zf create dbtable User -a user // also accepts a force option to overwrite existing files zf create dbtable User user -f zf create dbtable User user --force-overwrite
El proveedor DbTable también es capaz de crear los archivos apropiados escaneando la base de datos configurada con el proveedor DbAdapter anterior.
zf create dbtable.from-database
Al ejecutar lo anterior, podría tener sentido usar primero la opción pretend / "-p" para que pueda ver qué se haría, y qué tablas se pueden encontrar en la base de datos.
zf -p create dbtable.from-database
Actualmente, la única acción soportada para los layouts es simplemente habilitarlos, lo cual configurará las claves apropiadas en el archivo application.ini para que el recurso de la aplicación funcione, y creará los directorios apropiados y el archivo layout.phtml.
zf enable layout
El directorio de almacenamiento es importante para que los proveedores tengan un lugar donde encontrar lógica personalizada generada por el usuario que pueda cambiar la forma en que se comportan. Un ejemplo se puede encontrar a continuación en la colocación de un archivo de perfil de proyecto personalizado.
zf --setup storage-directory
Esto creará el archivo zf.ini apropiado. Esto debería ejecutarse después de zf --setup storage-directory. Si no se hace así, se ubicará dentro del directorio home del usuario. Si se hace, se ubicará dentro del directorio de almacenamiento del usuario.
zf --setup config-file
Estas deben establecerse si desea anular los lugares predeterminados donde zf intentará leer sus valores.
-
ZF_HOME
el directorio en el que esta herramienta buscará un directorio home
el directorio debe existir
-
orden de búsqueda:
variable de entorno ZF_HOME
variable de entorno HOME
luego la variable de entorno HOMEPATH
-
ZF_STORAGE_DIRECTORY
dónde buscará esta herramienta un directorio de almacenamiento
el directorio debe existir
-
orden de búsqueda:
variable de entorno ZF_STORAGE_DIRECTORY
directorio $homeDirectory/.zf/
-
ZF_CONFIG_FILE
dónde buscará esta herramienta un archivo de configuración
-
orden de búsqueda:
variable de entorno ZF_CONFIG_FILE
archivo $homeDirectory/.zf.ini si existe
archivo $storageDirectory/zf.ini si existe
-
ZEND_TOOL_INCLUDE_PATH
establece el include_path para que esta herramienta use este valor
-
comportamiento original:
usar el include_path de PHP para encontrar ZF
usar la variable de entorno ZEND_TOOL_INCLUDE_PATH
usar la ruta ../library (relativa a zf.php) para encontrar ZF
-
ZF_TOOL_INCLUDE_PATH_PREPEND
anteponer al include_path actual del php.ini este valor