miércoles, 11 de abril de 2012

Crear proyecto Zend Framework con módulos

Hola,

Hace una semana me preguntaron como se crear proyectos en Zend totalmente modular, sabía que es posible así que le pase este pequeño tuto que lo hice una tarde libre en la chamba.

Antes de empezar supongo que debemos tener las librerias de Zend en nuestro server e  incluso como es mi caso tengo configurado con mi IDE Netbeans que será mi asistente en el camino como por ejemplo generar módulos, controladores, modelos, tables, forms, etc xD

Debo agradecer a aun amigo Jared  que me ayudo con algunas consultas sobre esto.

Ok, ahora creamos un proyecto Zend:





A continuación veremos el la estructura del proyecto que se generará automáticamente


Abrimos un navegador y ejecutamos el proyecto, en mi caso he creado una virtual, pero también podría ser http://localhost/testingzf/public y debería mostrar la siguiente imagen.



Hasta aquí ya tenemos un proyecto simple generado. Ahora vamos hacer que esto sea modular, iniciaré creando el modulo "default". Quiero hacer una aclaración al crear el modulo "default" y modificar el archivo ini con esto haremos que el framework cargue el modulo "default" en primera instancia.


Al ejecutar este comando nuestra estructura del proyecto debería quedar así:


Lo que sucedió fue que al ejecutar el comando para generar el modulo "default" se generó una carpeta llamada modules que tiene dentro la carpeta controllers, models y views vacíos todos. Ahora se movió los controllers de la carpeta Controllers que estaba en el mismo nivel de configs, modules. Así mismo también se movieron las carpetas error y index dentro de VIEWS a la carpeta script del modulo "default".

a continuación modificamos el archivo Application.ini que esta ubicada dentro de la carpeta configs que quedaría de la siguiente manera:



A continuación editamos el archivo Bootstrap.php que se encuentra dentro de la carpeta Application y debería quedar así:



Ahora editamos el IndexController y debería quedar de la siguiente manera


También  editamos la vista el archivo index.phtml


Nos vamos al navegador y debemos ver lo siguiente



Continuando generamos las clases para el modelo


En la imagen indico que deseo crear una clase user de mi tabla seg_user en el modulo "default", Esta generara una estructura que a continuación muestro



Le agregamos un método que retorne una cadena de texto, obviamente aquí podemos retornar elementos de la Base de Datos pero ese no es el tema.


Continuando, vamos a la carpeta Controllers de nuestro módulo "default" y editamos el IndexController  de a siguiente forma:



Imprimimos esa variable $this->modelo en nuestro index.phtnl de modulo y obtenemos en el navegador




Y así podemos seguir creando todos los módulos que nuestro proyecto llegue a tener, quizás alguien tiene otra forma de hacerlo, pero en primera instancia esta me parece más fácil.


saludos y espero sus aportes




11 comentarios:

  1. Hola loko
    esta bien xvr el post de zf en modulos
    :D
    Salu2
    -----------------------------------kicke77

    ResponderEliminar
  2. si funciona, buena chochera, soy nuevo en zend y gracias a tu blog voy camino a ser experto. Mi email es: firstjon26@gmail.com para resolver problemas de zend, Thanks!

    ResponderEliminar
  3. Lo único que me ha funcionado de todo lo que he visto por Internet. Te agradezco que compartas tus conocimientos y te felicito por el blog.

    ResponderEliminar
  4. Excelente tu post!. Tengo un problema que no puedo agregar un nuevo modulo, es decir, lo genero correctamente pero no puedo accederlo desde el browser. ¿Tengo que cambiar algo en el application.ini

    ResponderEliminar
    Respuestas
    1. Hola, si estás empezando a entrar a Zend y me parece que lo vas a intentar modularmente, te recomiendo que lo hagas con su nueva versión 2.1 con composer los instalas y verás que es super fácil y esta nueva versión está orientado a trabajar modularmente.

      Eliminar
    2. Aquí está como crear proyectos con Zend Framework 2.1 que ahora es modular, te enseña como crear proyectos con composer y generar módulos más fácil.
      http://johnny1402.blogspot.com/2013/02/crear-un-proyecto-zend-framework-21.html

      Eliminar
  5. Este comentario ha sido eliminado por el autor.

    ResponderEliminar