Por ahora la creación y configuración de los módulos en ZF2 se hace manualmente, se espera que muy pronto ZF2 implemente ZFTool u otro componente parecido que pueda generar fácilmente los módulos desde la linea de comando como en ZF1.

En los siguientes 5 pasos describiré como puedes poner en marcha un módulo.

PASO 1

Descargar ZendSkeletonModule, el cual nos provee una plantilla con todo lo mínimo necesario para que nuestro módulo funcione.

La urls de descarga son:

PASO 2

Desempaquetamos el archivo ZendSkeletonApplication.zip o ZendSkeletonApplication.tar.gz dentro de la carpeta modules/ y lo renombramos: ejemplo MyModule/

Nuestra carpeta debería parecerse a esto:

PASO 3

Ahora toca renombrar carpetas y reemplazar ZendSkeletonModule; por MyModule dentro de los siguientes archivos:

> Cambiar las siguientes lineas de código en el archivo MyModule/module.php

> Cambiar las siguientes lineas de código en el archivo MyModule/config/module.config.php

> Cambiar las siguientes lineas de código en el archivo MyModule/autoload_classmap.php

> Renombrar la carpeta MyModule/src/ZendSkeletonModule/ por MyModule/src/MyModule/

> Cambiar las siguientes lineas de código en el archivo MyModule/src/MyModule/Controller/SkeletonController.php

> Renombrar la carpeta MyModule/view/zend-skeleton-module por MyModule/view/my-module

En resuenen hemos renombrado las siguientes Carpetas:

  • MyModule/src/ZendSkeletonModule por MyModule/src/MyModule
  • MyModule/view/zend-skeleton-module por MyModule/view/my-module
  • MyModule/src/MyModule/ por MyModule/src/MyModule/

Y cambiado el contenido de los siguientes archivos :

  • MyModule/Module.php
  • MyModule/config/module.config.php
  • MyModule/autoload_classmap.php
  • MyModule/src/MyModule/Controller/SkeletonController.php
  • application.config.php

PASO 4

Le decimos a nuestra aplicación que tenemos un nuevo módulo y que ahora puede usarlo. para eso agregamos nuestro módulo al archivo application.config.php ubicado en zf2/config/application.config.php

PASO 5

Verificamos que nuestro módulo este funcionando correctamente, escribiendo en nuestro navegador la url http://zf2.gn/my-module/ y nos debería mostrar esto


Espero que te haya sido de ayuda, quedo a la espera de tus comentarios

Benjamín

Soy Benjamín Gonzales B, desarrollador de Software con más de 10 años de experiencia, me apasiona todo lo relacionado a las nuevas tecnologías y el software libre. Me gusta investigar , leer y aprender cada día algo nuevo. Desarrollo en LINUX,PHP, JAVA, C#, Javascript, MySql, SqlServer, entre otros y actualmente ando experimentando con lenguajes funcionales como: Erlang, Clojure y Scala. Y otros no funcionales como GO.

Latest posts by Benjamín (see all)

ZF2 Crear un nuevo módulo II
Compartir
Tweet about this on TwitterShare on Facebook1Share on Google+0Share on LinkedIn0Email this to someonePin on Pinterest0Share on Tumblr0Share on Reddit0Share on StumbleUpon0
Etiquetado en:            

16 thoughts on “ZF2 Crear un nuevo módulo II

  • Octubre 9, 2012 a las 8:55 pm
    Enlace permanente

    Gracias por los tutoriales, yo acabo de instalar ZF2 en windows xD todo bien 🙂 Y seguiré tus manuales están todos excelentes gracias 😀

    Espero que puedas tocar para configurar BD, layout y lo de sesion, porque en realidad ZF1 sabia lo básico, pero no se cuanto cambio ahora para poder hacer un sistema grande 🙂

    Eso gracias!!

    Responder
    • Octubre 9, 2012 a las 9:02 pm
      Enlace permanente

      Hola Albert
      Me alegro que te haya servido los tutoriales , en los próximos días tocare esos temas.
      Suscribe al RSS del blog para que estes pendiente de lo nuevo.
      Saludos!

      Responder
  • Octubre 16, 2013 a las 3:19 pm
    Enlace permanente

    Hola, muy bueno el tutorial. Hasta esta parte todo bien pero que sucedería si yo quisiera crear un modulo dentro de otro es decir:
    Yo tengo en mi aplicación un modulo llamado Herramientas y quiero que dentro del modulo Herramientas exista otro llamado Office2007.
    ¿Cómo quedaría la estructura de carpeta y la configuración de los ficheros Module.php y module.config.php?
    Espero su respuesta y gracias de antemano.

    Responder
    • Octubre 16, 2013 a las 11:12 pm
      Enlace permanente

      Simple
      La estructura de tu directorio seria

      module/Tumodulo/
      ├── config
      ├── src
      │   └── Tumodulo
      │   ├── Controller
      ├── submodules
      │   └── Otromodulo
      │   ├── config
      │   ├── src
      │   │   └── Otromodulo
      │   │   └── Controller
      │   └── view
      └── view

      Y modificas el archivo application.config.php y debe quedar así


      'module_listener_options' => array(
      'module_paths' => array(
      './module',
      './vendor',
      './module/Tumodulo/submodules'
      ),
      'config_glob_paths' => array('config/autoload/{,*.}{global,local}.php')
      ),

      Responder
  • Octubre 17, 2013 a las 3:48 pm
    Enlace permanente

    basándome en mi ejemplo tendrías que llamarlo así

    http://zf2/otromodulo/index/index

    Si deseas que la ruta sea

    http://zf2/mimodulo/otromodulo/index/index

    Tienes que modificar la ruta (router) en el archivo module.config.php

    Responder
  • Octubre 17, 2013 a las 6:29 pm
    Enlace permanente

    Benjamín muchas gracias me fue de mucha ayuda lo hice modificando el fichero de configuracion global y me funciono a traves de la URL http://zf2/otromodulo/index/index porque lo trate de hacer para acceder de la la otra forma y nada pero bueno ya voy trabajando asi…
    Gracias

    Responder
    • Octubre 17, 2013 a las 7:18 pm
      Enlace permanente

      Lo ideal sería que no metas un modulo dentro de otro modulo, lo que puedes hacer para que te quede mas limpio y organizado es ponerlo dentro de una carpeta contenedora, mas o menos así:

      module/herramientas/
      ├── Office2007
      ├── Office2003
      ├── Office98


      'module_paths' => array(
      './module',
      './vendor',
      './module/herramientas/'
      ),

      y dentro de module.config.php donde defines las rutas pondrías esto

      'options' => array(
      'route' => '/herramientas/office2008',
      'defaults' => array(
      '__NAMESPACE__' => 'Office2008\Controller',
      'controller' => 'Index',
      'action' => 'index',
      ),
      ),

      No lo he probado, pero en teoría debería funcionar

      Responder
      • Octubre 18, 2013 a las 12:47 pm
        Enlace permanente

        Benjamin nuevamente gracias lo hice de esa manera y me funcionó al 100%. Me parece la manera mas óptima y organizada.

        Responder
  • Pingback: ZF2 Instalación | phpqt

  • Pingback: ZF2 primer modulo | phpqt

  • Junio 13, 2014 a las 6:23 pm
    Enlace permanente

    Holam Benjamin, tengo un problema implemente este tutorial :
    http://www.jprumeau.com/2012/11/07/zf2-authentication/

    donde lo uso en un modulo admin, tengo dos modulos pero lo que sucede esque quiero q funcione la autentificacion solo en el modulo admin, pero no es asi esta apareciendo la pantalla de logeo en todos los modulos.

    Lo curioso esque ya lo habia resuelto, anteriormente habia declarado en el archivo global.php , luego lo puse en el archivo module.config.php del modulo admin y funciono pero luego cuando intente subir a produccion volvio a fallar en mi local.

    Estoy pensando q es un virus en mi pc, no estoy seguro.

    Responder
    • Junio 16, 2014 a las 12:01 am
      Enlace permanente

      Hola
      Te recomendaría usar ZfcUser es mucho mejor, trabaja en un módulo aparte y lo puedes activar para toda la aplicación o solo para un módulo en particular.

      Sobre lo otro, no he probado su código, así que no se donde puede estar tu error

      Responder
  • Marzo 7, 2015 a las 6:33 pm
    Enlace permanente

    Estimado, se que es un poco tarde para comentar pero, quería preguntarte que diferencia existe entre crear un modulo, usando el ZendSkeletonModule que copiando y modificando el modulo por defecto que nos trae el zend framework? osea copiar y renombrar y modificar el modulo llamado Application? existe diferencia?? Gracias de antemano por su respuesta 😀

    Responder
    • Marzo 8, 2015 a las 2:37 am
      Enlace permanente

      Hola Miguel
      Básicamente ninguna, es casi lo mismo, pero creo que a estas alturas, sería mucho mejor crear un módulo usando ZFTool, ya que te creará un módulo vació, el cual puedes acomodarlo a tu gusto

      Saludos!

      Responder

Deja un comentario

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