En este artículo queremos enseñarte de forma práctica y rápida cómo crear un módulo en Magento 2. Es muy fácil que si has estado durante algún tiempo trabajando con Magento 1, tras la aparición de Magento 2 puedes estar sintiéndote un poco confundido ante las diferencias que hay para crear módulos en esta nueva plataforma.

Operativamente, para crear un módulo en Magento 2, la programación es prácticamente la misma, tendremos nuestras carpetas de Blocks (clases usadas en la vista), Models (Manejo de datos), Helpers (pues eso, helpers de toda la vida) y por supuesto los controllers (controladores, que tendrán las clases con las Actions que recibirán la llamada de las URL). La carpeta etc contendrá como siempre los archivos de configuración, que en Magento 1 prácticamente se limitaban a un único archivo config.xml, pero en esta nueva versión, con muy buen criterio, se ha decidido que sean varios estos archivos, facilitando así la lectura y comprensión del código.

Índice

Diferencias entre Magento 1 y Magento 2

Lo primero que tenemos que tener en cuenta es que en la nueva plataforma, ya no sólo vamos a hablar de módulos, si no, de componentes. En Magento 2 ahora hablamos de 3 tipos de componentes:

  • Módulos (Modules). El concepto de módulo es el mismo que en Magento 1.
  • Temas (Themes). Esto es una importante novedad, mientras que en la vieja versión, un tema simplemente era una colección de archivos estructurados de determinada manera, que luego configurábamos desde el administrador. En esta nueva versión además, hay que ‘registrar’ el componente como tal. Una vez registrado, Magento reconoce el tema y podemos asignarlo o desasignarlo a las tiendas de nuestro dominio desde el administrador, facilitando entre otras cosas al personal no-técnico el cambio de temas.
  • Paquetes de idiomas (Language packages). Aunque en sí no son más que una colección ordenada de archivos CSV, que se usan de forma prácticamente igual que en Magento 1, también deben definirse, registrarse y utilizarse como un componente.

Existe un cuarto componente, al que se ha llamado Metapaquete (Metapackage), pero no es un componente como tal en sí mismo, un Metapackage consiste en un conjunto de componentes, algo que nos encontraremos habitualmente cuando adquiramos un template para nuestro Magento.

Pasos previos para crear un módulo en Magento 2

Una vez conocido esto vamos con los pasos previos necesarios para la creación del módulo:

  1. Creamos las carpetas que contendrán el código de nuestro módulo.
  2. Dentro de la carpeta app/code/Comonline/Mimodulo/etc creamos el archivo module.xml. Nótese que ya no usamos las carpetas app/code/local ni app/code/community, ahora los módulos se situarán dentro de la carpeta app/code indistintamente. Este paso es equivalente a la creación del primer archivo config.xml que creábamos al comenzar nuestro módulo en la versión 1 de Magento.
  3. Registramos el módulo, este sencillo paso es diferente a lo que hacíamos antes. En Magento 1, creábamos un archivo sencillo en la carpeta /app/etc/modules, con el nombre Comonline_Mimodulo.xml. Este paso sigue siendo muy sencillo, pero se hace de otra forma.
    Ahora creamos el archivo registration.php dentro de la carpeta app/code/Comonline/Mimodulo que habíamos creado antes. Este archivo contendrá el siguiente código:

[cc lang=»php» width=»70%»]


[/cc]

  •  Hacemos que magento reconozca e instale nuestro módulo, este paso en la versión anterior se hacía simplemente refrescando la caché de Magento, al hacerlo, Magento volvía a leer el contenido de la carpeta app/etc/modules, reconociendo los módulos que estaban en estado active=true. En Magento 2 esto cambia y hay que acudir al shell para ejecutar un comando y que reconozca los módulos.
    Acceder a línea de comandos es algo que ha fastidiado a muchos programadores de magento, que no tenían acceso al shell de su sistema, al tener servidores administrados, pero bueno, así ha sido decidido por el equipo de magento.com y poco podemos hacer al respecto.
    El comando a ejecutar es dentro de la carpeta de la instalación de nuestro magento es el siguiente:

  • [cc lang=»php» width=»70%»]

    php bin/magento setup:upgrade [/cc]

    A partir de aquí el proceso de creación del módulo es mucho más parecido al trabajo que se hace en un Magento 1: Definir las rutas, crear los controladores, bloques, vistas y archivos .phtml para el renderizado de la página. En un próximo artículo detallaré estos pasos haciendo hincapié en las diferencias con Magento 1.

    Si te interesa y quieres saber los siguientes pasos, no dejes de leer «Crear un módulo en Magento 2 – Parte 2».

    CONTACTA CON NOSOTROS


      Todos los datos personales recopilados en este formulario serán tratados por Diego Mestre Proyectos en Internet S.L. como responsable de esta web. Los datos serán tratados para gestionar tu solicitud de información. Si además lo has aceptado, también podrán ser tratados para el envío de nuestras publicaciones, noticias, cursos, eventos, recursos exclusivos y resto de información relacionada con las actividades propias de la empresa. La base legal para el tratamiento de tus datos es el consentimiento del interesado.
      Podrás ejercer los derechos de acceso, rectificación, limitación y suprimir tus datos a través de info@globalbrand.es. Para información más detallada consulta nuestros Aviso legal.