
En este post voy a hacer una pequeña introducción a Zend Framework Version 1.10.3, si es que existe una versión nueva y quieren utilizar el esqueleto que en este post proporcionamos, lo que les recomiendo es bajar ZF desde la pagina oficial y reemplazar solamente la carpeta Zend dentro librery por la que descarguen de la pagina oficial.
Para bajar el esqueleto Zend Framework – AgeValed:
Para bajar Zend Framework desde la pagina oficial (la estructura de Directorios es distinta, obviamente contiene las carpetas mas importantes):
Lo primero que vamos a ver es como esta compuesto la estructura de directorios que proporcionamos.

El nombre principal de la carpeta, sera el nombre de nuestro proyecto, en este caso AgeValed, en esta carpeta se encuentran 5 carpetas principales application, constant, html, language y library.
La carpeta constant, acá tendremos un archivo constant.php, el cual contiene todas las constantes que usaremos en el proyecto.
La carpeta language, en esta carpeta se guardaran los archivos de lenguaje, si es que nuestro proyecto va a contar con la posibilidad de ser multi-lenguaje, caso contrario no seria necesario tenerla en la estructura de directorios. Dentro de la carpeta existirán tantas carpetas como idiomas pretendamos tener, y en cada una el archivo translate.csv, la cual contendrá la información de traducciones.
La carpeta library, acá tendremos varias carpetas que corresponden a las librerías, por defecto se encuentra solamente la carpeta Zend, que contienen todas las librerías necesarias tanto Zend_DB, Zend_ACL, Zend_Form, entre muchos mas, ademas, si queremos crear una librería nosotros, deberían estar acá.
La carpeta html, acá encontraremos 2 archivos importantes, el .htaccess (es el archivo de Apache para la configuración módulo mod-rewrite) y el handler.php (este es el archivo bootstrap, archivo PHP de entrada a nuestra aplicación), ademas contiene carpetas con: las imágenes, los archivos CSS (estilos), los archivos FONTS (tipografías) y archivos JS (funciones javascript.).
La carpeta application,es la encargada de manejar el modelo MVC de Zend Framework, acá contiene las 3 carpetas esenciales, controllers, models y views (Nota: también se podría agregar la carpeta forms).

La Carpeta models, Modelos de los objetos. Esta es la representación específica de la información con la cual el sistema opera. En resumen, el modelo se limita a lo relativo de la vista y su controlador facilitando las presentaciones visuales complejas. El sistema también puede operar con más datos no relativos a la presentación, haciendo uso integrado de otras lógicas de negocio y de datos afines con el sistema modelado. Wiki
La Carpeta controllers, Este responde a eventos, usualmente acciones del usuario, e invoca peticiones al modelo y, probablemente, a la vista. Wiki
La Carpeta views, Páginas HTML que se generarán a partir de los controladores, las cuales tendrán extensiones PHTML. Este presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario. Wiki. View esta separada en varias carpetas helpers, layouts y scripts.
- Layouts: Acá se encontrara el archivo layout.phtml, esta pagina nos permite definir la estructura del sitio, es decir su distribución topográfica, como ser si dispone de un encabezado, pie de pagina, barra lateral izquierda, barra lateral derecha y donde residirá el contenido de la acción que se esta ejecutando actualmente.
- Helpers: Acá se encuentra el archivo BaseUrl.php que nos permite determinar en forma absoluta la url base de la aplicación.
- Scripts: Acá encontraremos todas las paginas que hacen referencias a los Controladores y a los Modelos, cada una de las carpetas que se encuentran acá hace referencia a cada uno de los controladores (deben empezar en minúscula) y cada archivo que se encuentra adentro (todos con extensión phtml) hacen referencia a cada una de las acciones del controlador. El controlador Index y acción index se encontrara en /index/index.phtml.
Supongamos que tenemos el proyecto con el dominio www.agevaled.com, si vamos a esa dirección estamos invocando al controlador Index y a la acción index, Si en cambio vamos a www.agevaled.com/personas/add/www.agevaled.com/personas/ estamos invocando el controlador personas y la acción index, y si vamos a o www.agevaled.com/personas/index estamos invocando el controlador personas y la acción index en ambos casos
En la carpeta Include, podemos guardar cualquier sección de una pagina, común para varias, como por ejemplo, menues, footers, headers, o lo que sea necesario.
Espero que se haya entendido bien a que corresponde cada una de las carpetas y puedan empezar a dar sus primeros pasos en Zend Framework.
Cualquier comentario, critica estan mas que aceptadas!


Muy buen articulo para los que recién empiezan con zf y se encuentran con el quilombo de archivos que hay adentro.
Tu idea es hacer de estos artículos una serie de tutoriales tipo “Día 1, la estructura de zend”, “Día 2, configuración”, etc ? porque si no es así, bueno, te tiré la idea
salute
Buenas primero que nada gracias por leerlo y comentar
Segundo, si, mi idea es hacer una serie de tutoriales, pero no por día sino cuando pueda, y los temas depende de lo que me pidan, de lo que les gustaría que escriba y lo que tenga ganas jeje, en ese orden capas!
Alguna sugerencia!?
Pues a mi me gustaría que hicieras uno de AMF…
RT @agevaled: Zend Framework – Estructura de Directorios, Esqueleto & Modelo MVC! http://bit.ly/9Q4DrW
La carpeta html, acá encontraremos 2 archivos importantes, el .htaccess (es el archivo de Apache para la configuración módulo mod-rewrite) y el handler.php (este es el archivo bootstrap, archivo PHP de entrada a nuestra aplicación), ademas contiene carpetas con: las imágenes, los archivos CSS (estilos), los archivos FONTS (tipografías) y archivos JS (funciones javascript.).
en esta parte del texto mencionas que se incluyen dos archivos: .htaccess y el handler.php y solo está este último. Además no dejas claro como rayos ponerlo aprueba desde un servidor http://www.midominio.com/AgeValed
Me gustaría que nos ampliaras esa info.
Saludos.
DevCH, acabo de bajar el zip y estan amos archivos, lo borre al que estaba y lo subi de nuevo, aclaro que es para este file http://www.agevaled.com/files/AgeValed.rar para el otro NO. y justo ahora estoy armando un tutorial de como hacerlo funcionar en windows! (si ahora en la notebook solo tengo windows, es nueva)! pero si sabes usar bien linux y viendo el tutorial de windows, lo haces funcionar en 2 patadas!
Ole, ole!!!
Buen trabajo!
Aunque yo no me aclaro con Zend,
yo a lo mío que me es más fácil ;D
Saludos.
Toda iniciativa de divulgar ZF me parece bien, a si que aplausos.
No obstante, pienso que usas un modelo antiguo, a mi parecer el modelo Oficicial actual basado en Modulos es el mejor, no ya por gustos, ni por a-mi-me-parece.., sino que un modelo Oficial hace que cualquiera que se una al proyecto ya sabe por donde esta todo, respetando estructura y nombres.
Un Saludo.!!
nohumans, si en eso tenes razón, pero es un poco mas engoroso la forma que utiliza zend, de esta forma, nadie debería tener problemas porque, es muy intuitivo y creo que nadie tendria problemas para agarrar un proyecto con esta estructurade directorio, excepto que sea alguien que recién este empezando y sepa muy poco del tema, pero le llevaría poco tiempo entender como seria la estructura.
Pero tenes razón en el hecho que si el 100% de la gente utiliza la misma estructura de directorio, seria muy fácil todo, pero no creo que pase eso ni siquiera en la estructura de directorios que propone zend por defecto, todos tienen (tenemos) nuestras mañas y preferencias!
[...] Zend Framework – Estructura de Directorios, Esqueleto & Modelo MVC! [...]
hola men como estas como hago andar el zend en windows la aplicacion no me anda y para mi suerte no se como hacerlo por favor ayudame graacias saludos
[...] 2.- http://www.agevaled.com/2010/04/22/zend-framework-estructura-de-directorios-esqueleto-modelo-mvc/ [...]
AgeValed, sos un groso, tu blog es otro nivel, hace un año estoy desarrollando con PHP sin usar MVC, estoy iniciando y tu ejemplo es muy claro. me ayudo mucho, te agradezco por tremendo aporte. Slds!.