TigerZF
🌐Español

Capítulo 71. Zend_Tool

71.1. Uso de Zend_Tool en la línea de comandos

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.

71.1.1. Instalación

71.1.1.1. Descargar y listo

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.

71.1.1.2. Instalación mediante Pear

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

71.1.1.3. Instalación manual

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.

71.1.2. Comandos de propósito general

71.1.2.1. Versión

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

71.1.2.2. Ayuda incorporada

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)

71.1.2.3. Manifiesto

Esto mostrará qué información hay en el manifiesto del sistema de herramientas. Esto es más importante para los desarrolladores de proveedores que para los usuarios ocasionales del sistema de herramientas.

zf show manifest

71.1.3. Comandos específicos del proyecto

71.1.3.1. Proyecto

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.

71.1.3.2. Módulo

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á.

71.1.3.3. Controlador

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".

71.1.3.4. Acción

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

71.1.3.5. Vista

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.

71.1.3.6. Modelo

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'.

71.1.3.7. Formulario

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'.

71.1.3.8. DbAdapter

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

71.1.3.9. DbTable

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

71.1.3.10. Layout

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

71.1.4. Personalización del entorno

71.1.4.1. El directorio de almacenamiento

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

71.1.4.2. El archivo de configuración

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

71.1.4.3. Ubicaciones del entorno

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