<project name>/
application/
configs/
application.ini
controllers/
helpers/
forms/
layouts/
filters/
helpers/
scripts/
models/
modules/
services/
views/
filters/
helpers/
scripts/
Bootstrap.php
data/
cache/
indexes/
locales/
logs/
sessions/
uploads/
docs/
library/
public/
css/
images/
js/
.htaccess
index.php
scripts/
jobs/
build/
temp/
tests/
A continuación se describen los casos de uso de cada directorio listado.
-
application/: Este directorio contiene su aplicación. Alojará el sistema MVC, así como las configuraciones, los servicios utilizados y su archivo de arranque.configs/: El directorio de configuración de toda la aplicación.controllers/,models/yviews/: Estos directorios sirven como los directorios predeterminados de controladores, modelos o vistas. Tener estos tres directorios dentro del directorio de aplicación proporciona el mejor diseño tanto para iniciar un proyecto sencillo como para iniciar un proyecto modular que tengacontrollers/models/viewsglobales.controllers/helpers/: Estos directorios contendrán los helpers de acción. Los helpers de acción se asignarán al espacio de nombres "Controller_Helper_" para el módulo predeterminado o "<Module>_Controller_Helper" en otros módulos.layouts/: Este directorio de layouts es para diseños basados en MVC. Dado queZend_Layoutes capaz de gestionar diseños basados y no basados en MVC, la ubicación de este directorio refleja que los layouts no tienen una relación de 1 a 1 con los controladores y son independientes de las plantillas dentro deviews/.modules/: Los módulos permiten a un desarrollador agrupar un conjunto de controladores relacionados en un grupo organizado lógicamente. La estructura bajo el directorio de módulos se asemejaría a la estructura bajo el directorio de aplicación.services/: Este directorio es para los archivos de servicios web específicos de su aplicación que son proporcionados por su aplicación, o para implementar una capa de servicio para sus modelos.Bootstrap.php: Este archivo es el punto de entrada de su aplicación, y debería implementarZend_Application_Bootstrap_Bootstrapper. El propósito de este archivo es arrancar la aplicación y poner los componentes a disposición de la aplicación inicializándolos.
data/: Este directorio proporciona un lugar para almacenar datos de la aplicación que son volátiles y posiblemente temporales. La alteración de los datos en este directorio podría provocar que la aplicación falle. Además, la información de este directorio puede o no ser confirmada en un repositorio de subversion. Ejemplos de cosas en este directorio son archivos de sesión, archivos de caché, bases de datos sqlite, registros e índices.docs/: Este directorio contiene documentación, ya sea generada o redactada directamente.library/: Este directorio es para las bibliotecas comunes de las que depende la aplicación, y debería estar en el include_path de PHP. Los desarrolladores deberían colocar el código de biblioteca de su aplicación bajo este directorio en un espacio de nombres único, siguiendo las directrices establecidas en la Guía de nomenclatura de espacio de usuario del manual de PHP, así como las establecidas por Zend mismo. Este directorio también puede incluir Zend Framework en sí; en ese caso, lo alojaría enlibrary/Zend/.public/: Este directorio contiene todos los archivos públicos de su aplicación.index.phpconfigura e invocaZend_Application, que a su vez invoca el archivoapplication/Bootstrap.php, lo que resulta en el despacho del controlador frontal. La raíz web de su servidor web normalmente se configuraría a este directorio.scripts/: Este directorio contiene scripts de mantenimiento y/o compilación. Dichos scripts podrían incluir scripts de línea de comandos, cron, o de compilación de phing que no se ejecutan en tiempo de ejecución pero son parte del correcto funcionamiento de la aplicación.temp/: La carpetatemp/está reservada para datos transitorios de la aplicación. Esta información normalmente no se confirmaría en el repositorio svn de la aplicación. Si los datos bajo el directoriotemp/se eliminaran, la aplicación debería poder seguir funcionando con una posible disminución del rendimiento hasta que los datos se restauren o se vuelvan a cachear.tests/: Este directorio contiene las pruebas de la aplicación. Estas podrían estar escritas a mano, ser pruebas PHPUnit, pruebas basadas en Selenium-RC o basadas en algún otro framework de pruebas. Por defecto, el código de biblioteca puede probarse imitando la estructura de directorios de su directoriolibrary/. Adicionalmente, las pruebas funcionales de su aplicación podrían escribirse imitando la estructura del directorioapplication/(incluyendo el subdirectorio de aplicación).