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.
2 mayo, 2015
hola he seguido este tutorial pero al intentarlo implementar en ubuntu no me reconoce el modelo ni la vista pero si lo hago por windows me sale bien que podria para arreglarlo gracias
2 mayo, 2015
Linux es Case Sensitive. Cambia los directorios que es «modulo» en minúsculas por «Modulo». En este tipo de cosas siempre hay que tener cuidado. Un saludo.
30 mayo, 2015
Siempre se cargara el modulo «Application» a pesar de agregar modulos? es por defecto? como puedo hacer que otro modulo sea el que se muestre por defecto
3 junio, 2015
El módulo «Application» es el que viene por defecto, lo puedes quitar, le puedes cambiar el nombre o hacer lo que quieras con el. Se muestra por defecto porque tiene las rutas configuradas para el, puedes modificar las rutas para que se cargue otro controlador de otro módulo sin problema.