Crear módulos en Zend Framework 2

Veamos como crear módulos en Zend Framework 2.

Lo primero es ir al fichero config/application.config.php y añadir el nombre del nuevo modulo.
crear modulos en zend framework 2

En el directorio module se guardan los módulos, por defecto nos viene el modulo Application, en module crearemos una nueva carpeta con el nombre de nuestro modulo.
crear modulos en zend framework 2 modulo

Dentro del directorio del modulo, tenemos que crear tres directorios (config, view y src)
crear modulos en zend framework 2 config src view

Dentro de config tenemos que tener un fichero llamado module.config.php el cual podemos copiar del modulo Application y modificarlo ahora.
Lo configuramos de la siguiente forma:

<?php

return array(
    'controllers'=>array(
        'invokables'=>array(
            'Modulo\Controller\Pruebas'=>'Modulo\Controller\PruebasController'
         ),
     ),
     
     'router'=>array(
        'routes'=>array(
            'modulo'=>array(
                 'type'=>'Segment',
                    'options'=>array(
                        
                        'route' => '/modulo[/[:action]]',
                        'constraints' => array(
                                'action'  =>  '[a-zA-Z][a-zA-Z0-9_-]*',
                        ),
                        
                        'defaults'  =>  array(
                                'controller' => 'Modulo\Controller\Pruebas',
                                'action'     => 'index'
                         
                        ),
                    ),
           ),
       ),
    ),
    
   //Cargamos el view manager
   'view_manager' => array(
        'display_not_found_reason' => true,
        'display_exceptions'       => true,
        'doctype'                  => 'HTML5',
        'not_found_template'       => 'error/404',
        'exception_template'       => 'error/index',
        'template_map' => array(
            'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',
            'modulo/index/index' => __DIR__ . '/../view/pruebas/index/index.phtml',
            'error/404'               => __DIR__ . '/../view/error/404.phtml',
            'error/index'             => __DIR__ . '/../view/error/index.phtml',
        ),
        'template_path_stack' => array(
          'modulo' =>  __DIR__ . '/../view',
        ),
    ), 
 );  

En el directorio src tenemos que crear un directorio con el nombre del módulo y dentro de este un directorio Controller en el que dentro irán nuestros controladores.
En el controlador tenemos que definir el namespace correcto namespace Modulo\Controller;
crear modulos en zend framework 2 controller

En el directorio view tenemos que tener un directorio error y layout que podemos copiar del modulo Application y también tenemos que tener un directorio con el nombre del módulo, dentro de este un directorio con el nombre del controlador donde irán las vistas de sus métodos.

Por ultimo hay que copiar el fichero module.php del módulo application y cambiarle el namespace.
crear modulos en zend framework 2 arbol modulo

Ya podemos acceder al controlador de nuestro módulo desde el navegador.
crear modulos en zend framework 2 viendo controlador

La otra opción para crear un módulo es descargar https://github.com/zendframework/ZendSkeletonModule o copiar el módulo que viene por defecto y modificar los namespaces y configuraciones que trae, esta seria la mejor opción si queremos subir un módulo a la comunidad.

Víctor Robles WEB

Autor: Victor

Desarrollador web - Formador online - Blogger

Compartir este post