En ZF2 los módulos presentan un enfoque distinto y muy poderoso con respecto a ZF1 (ahora es más modular que nunca), fue diseñado tomando como base tres grandes principios: simpleza, flexibilidad y re-utilización. Esto hace que los módulos sean prácticamente independientes y que puedan funcionar por sí solos, incluso fuera de una aplicación de Zend.

Los módulos pueden contener casi cualquier cosa: código PHP (incluyendo la funcionalidad MVC), librerías, scripts de vista, archivos públicos (JavaScript, css, imágenes, etc) entre muchas cosas más, las posibilidades son infinitas!.

Si lo prefieres, los módulos lo puedes empaquetar en un phar y sus variantes ( .phar, .phar.gz, .phar.bz2, .phar.tar, .phar.tar.gz, .phar.tar.bz2, .phar.zip, .tar, .tar.gz, .tar.bz2, and .zip) ZF2 no tendrá ningún problema de trabajar con ellos.

El sistema de módulos en ZF2 ha sido pensado para ser útil como fundamento genérico y potente para que los desarrolladores y otros proyectos pueden crear sus propios módulos o sistemas de plugins.

Una estructura recomendada para un módulo orientado al MVC sería lo siguiente:

MyModule/
    Module.php
    autoload_classmap.php
    autoload_function.php
    autoload_register.php
    config/
        module.config.php
    public/
        images/
        css/
        js/
    src/
        MyModule/
            code-files
    tests/
        phpunit.xml

MyModule

El nombre de nuestro módulo vendría a ser el NameSpace que se usará en los archivos contenidos y debería cumplir las mismas reglas de nomenclatura que un NameSpace (valga la redundancia).

Module.php

Es la puerta de entrada a nuestro módulo, ya que contendrá lo necesario para interactuar con el gestor de módulos, dentro de esta clase se pueden hacer cosas como: sobreescribir la configuración inicial y/o proporcionar una configuración adicional a la aplicación, realizar tareas de inicialización registrando autoloads, declarar dependencias, entre otras muchas cosas mas.

autoload_classmap.php
autoload_function.php
autoload_register.php

El motivo de estos tres archivos es proporcionar mecanismos predeterminados para la carga automática de las clases contenidas en el módulo y consumir el módulo sin necesidad de usar Zend\ModuleManager. Estos archivos le dan la autonomía suficiente como por ejemplo para poder usar el módulo fuera de una aplicación de ZF2.

Se puede prescindir de ellos, ya que si no lo usamos Zend\ModuleManager se encargará de hacer el trabajo por nosotros.

module.config.php

Contendrá la configuración de la aplicación, las rutas, las urls, configuración de los controladores, vistas, entre otros.

public

En este folder contendrá los archivos públicos

src

En en carpeta contendrá Controladores, vistas, modelos, formularios, etc, será el core de nuestro módulo

test

En esta carpeta estará lo necesario para poder hacer las pruebas unitarias a nuestro módulo, ya dependerá de uds extenderlo para poder hacer pruebas a todo lo contenido en el el módulo.

En el siguiente post ya veremos mas a fondo como crear módulos y como configurarlo, espero sus comentarios

benjamin

CTO at GNBIT
Me llamo Benjamín Gonzales B, soy desarrollador de software con más de 15 años de experiencia, socio funduador de la empresa GNBIT.
Me apasiona todo lo relacionado a las nuevas tecnologías, me gusta investigar , leer y aprender cada día algo nuevo.
Desarrollo en PHP7+, JAVA, C#, JavaScript, entre otros y actualmente  estoy experimentando con lenguajes funcionales como: Erlang, Clojure y Scala 

Latest posts by benjamin (see all)

benjamin

Me llamo Benjamín Gonzales B, soy desarrollador de software con más de 15 años de experiencia, socio funduador de la empresa GNBIT. Me apasiona todo lo relacionado a las nuevas tecnologías, me gusta investigar , leer y aprender cada día algo nuevo. Desarrollo en PHP7+, JAVA, C#, JavaScript, entre otros y actualmente  estoy experimentando con lenguajes funcionales como: Erlang, Clojure y Scala 

One Response to “ZF2 Introducción a los Módulos I”

Agregue un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.