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.
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.
Dentro del directorio del modulo, tenemos que crear tres directorios (config, view y src)
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;
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.
Ya podemos acceder al controlador de nuestro módulo desde el navegador.
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.