Bueno, con prácticamente tres meses de retraso y una nueva versión del Framework de Zend (que todavía ni he podido revisar) comento la segunda parte del artículo “Estructura de archivos en Zend para varios proyectos”
En este caso enseñaré los tres archivos básicos en la estructura que os enseñé. Comentar, que aunque actualmente no estoy usando ZF en ningún proyecto (los personales están en parados ahora mismo a falta de tener tiempo para arreglar mi equipo), sigo usando la estructura de htacces + Index + Bootstrap para realizar toda la configuración de cualquiera de mis proyectos.
Lo primero es el htaccess. Este es muy sencillo, ya que lo único que hace es redirigir todo el tráfico al index.php
Código:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php
Se podría complicar la cosa bastante más, pero creo que no es necesario y con estas pocas líneas de código funciona a la perfección.
Como ya he dicho, lo único que hace es redirigir todo el tráfico que no indique un archivo válido a index.php, que es el único ((Decir único a veces es muy exagerado. Siempre puede que haya algún otro, como por ejemplo un manejador para Ajax)) archivo php accesible desde la web.
El código del index.php tampoco es muy complicado, lo único que hace es definir el nombre del proyecto, aumentar los “include_path” de php con los del proyecto, y lanzar el Bootstrap, que es realmente el que configura todo el Framework de Zend.
<?php
// root + public_html + afm + index.php
$root = dirname(dirname(dirname(__FILE__)));
define ("APP", "afm");
define ("ROOT", $root);
// We're assuming the Zend Framework is already on the include_path
set_include_path(
ROOT . DIRECTORY_SEPARATOR. 'private'.DIRECTORY_SEPARATOR. APP . PATH_SEPARATOR
. ROOT . DIRECTORY_SEPARATOR. 'private'.DIRECTORY_SEPARATOR. APP .DIRECTORY_SEPARATOR."models".PATH_SEPARATOR
. ROOT . DIRECTORY_SEPARATOR. 'library' . PATH_SEPARATOR
. get_include_path()
);
require_once 'Bootstrap.php';
Bootstrap::run();
?>
Como se ve, lo único que hace es definir el nombre del site “APP”, el “ROOT” ((Si tenéis claro donde va a estar el proyecto, os recomendaría que pusieseis directamente la dirección completa desde la raíz. En el caso de que el proyecto vaya a estar en dos o más sitios distintos con dirección usar la forma que viene indicada aquí.)). Después incluye en el path de php los directorios donde reside toda la aplicación. El directorio “afm” en private, los directorios de modelos de la aplicación “private/afm/models/” y el directorio de librerías externas “library”.
Como véis para incluirlo uso la variable de sistema DIRECTORY_SEPARATOR, la razón de esto es que no en todos los sistemas es el mismo símbolo, y para aquellos que desarrollen en W$$, puede que se encuentren con sorpresas al subir el desarrollo a un servidor UNIX. A parte de esto, recordar el get_include_path(). Que no queremos perder los path que PHP necesita para trabajar.
Bueno, ahora solo faltaría el Bootstrap. El cual, como ya comenté está sacado prácticamente de la versión de Pádraic Brady para el desarrollo de su Blog con Zend Framework. Web que recomiendo encarecidamente! ((Aunque en el momento de escribir esto, parece que está caida.))
Y como tenéis un claro ejemplo en su blog, y ahora mismo se me hace muy tarde, creo que el bootstrap lo tendré que dejar para más adelante.
Ahora, eso si. En los últimos minutos antes de meterme en la cama, voy a ver si consigo descargarme la guía de usuario de la nueva versión del framework de Zend. A ver si vuelvo a tener algo de tiempo para ponerme con mis proyectos propios