Programación

22/04/2010

Zend Framework – Estructura de Directorios, Esqueleto & Modelo MVC!

Zend Framework

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:

Zend Framework

Para bajar Zend Framework desde la pagina oficial (la estructura de Directorios es distinta, obviamente contiene las carpetas mas importantes):

Zend Framework

Lo primero que vamos a ver es como esta compuesto la estructura de directorios que proporcionamos.

Estructura Zend Framework

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

Modelo MVC Zend Framework

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!



About the Author

AgeValed

Pablo Ignacio de la Vega Ibañez, también conocido en algunos lugares como AgeValed, el creador de este blog. Actualmente estoy trabajando como Líder Técnico y Supervisor de Equipo en el área de desarrollo PHP.






 
 

 
PHP

Zend Framework – Almacenamiento de sesión en base de datos

En este mini tutorial voy a mostrarles como guardar la sesión en base de datos con ZF 1, esto es muy util para manejo de sesiones en un entorno con múltiples servidores. Material Relacionado Zend_Session_SaveHandler_DbTable Z...
by AgeValed
0

 
 
PHP

Zend Framework – Zend_Translate + Zend_Route

Les quiero compartir algo que estaba necesitando para un sitio web que estoy creando, y estuve peleando bastante para que funcione todo perfecto. Primero que nada quiero agradecer a Jon Lebensold con la Introducción a Zend...
by AgeValed
12

 
 
PHP

Zend Framework – Mail Templates usando Zend_Mail & Zend_View

Me pareció útil compartir esta función con el resto de los programadores, esta función no es de mi autoría, el creador es Jonathan Street, yo solamente la arregle un poco ya que tenia un par de errores, le agregue una fu...
by AgeValed
2

 

 

ZendCon 2010 Podcast – Introducción Zend Framework 2.0

Acá les dejo una introducción sobre Zend Framework 2.0, una charla en ZendCom 2010 Podcast, los oradores de la charla fueron Ralph Schindler (Penn) y Matthew Weier O’Phinney (Teller). Presentación: Audio: Las sesiones ...
by AgeValed
0

 
 
 

Links recomendados AVLog 2

Siguiendo con el post anterior Link Recomendados AVLog hoy voy a postear un par mas son muy útiles de diferentes cosas. Empecemos con los Links Recomendados del día! HTML5 & CSS3 Support, Web Design Tools Idioma: Ingles....
by AgeValed
0

 




13 Comentarios


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


  2. 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!? 🙂


  3. DevCH

    Pues a mi me gustaría que hicieras uno de AMF…


  4. RT @agevaled: Zend Framework – Estructura de Directorios, Esqueleto & Modelo MVC! http://bit.ly/9Q4DrW


  5. DevCH

    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.


  6. 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!


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


  8. 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.!!


  9. 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!


  10. […] Zend Framework – Estructura de Directorios, Esqueleto & Modelo MVC! […]


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


  12. Oscar

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



Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*