Gran parte de las búsqueda relacionadas con Magento, son acerca de sus módulos. Y, de hecho, recientemente publiqué un artículo sobre 5 módulos imprescindibles de Magento que debes tener en tu tienda online, y otro sobre la instalación de temas y extensiones en esta plataforma.
Pero, como desarrolladores, también es importante tener conocimiento de causa. Puede que ahora no estés interesado en saber exactamente qué es un módulo de Magento, cuál es su estructura interna o cómo funciona. Sin embargo, en un futuro este conocimiento te será útil, porque es muy probable que tengas que desarrollar tus propios módulos de Magento.
Por esto, dedicaré este post a explicar lo más básico sobre el tema. Así que, si tienes dudas sobre lo que es un módulo en Magento o simplemente has usado alguno pero no tienes claro cómo funciona, te recomiendo seguir leyendo.
¿Qué es un módulo de Magento?
Los módulos de Magento son la principal unidad de organización de esta plataforma de comercio electrónico. Estructuralmente, no son diferentes de las extensiones o plugins de otros gestores de contenido como Wordpress, Drupal o Prestashop. En efecto, un módulo de Magento no es otra cosa que un directorio que contiene archivos PHP y XML relacionados entre sí y organizados de manera jerárquica. Más específicamente, se puede decir que está compuesto por temas, librerías y paquetes de lenguaje.
Los módulos de Magento, que funcionan como un todo, brindan a la plataforma una sola característica, y tienen un mínimo de dependencia a otros módulos. De modo que, al instalarlos, difícilmente tendrás que chequear dependencias a menos que sea necesario.
Pero lo anterior también significa que varios módulos no pueden responsabilizarse por una sola característica, así como un solo módulo no puede responsabilizarse por más de una característica. Y las dependencias con otros módulos tienes que ser declaradas explícitamente. Todo esto con el objetivo de que, al eliminar o desactivar un módulo, no afecte a los demás módulos ni interfiera con el funcionamiento de la tienda.
¿Dónde se ubican los módulos de Magento?
Por convención, los módulos de Magento pueden estar en diferentes directorios del proyecto según su tipo:
Módulo estándar instalado | /vendor/<Vendor>/<Module><Module> |
Código base de un módulo personalizado | /app/code/<Vendor>/<Module> |
Archivos de tema personalizado (storefront) | /app/design/frontend/<Vendor>/<theme> |
Archivos de tema personalizado (modules) | <Module>/<theme> |
Si quieres utilizar una biblioteca | /lib/<Vendor_Library> |
Por ejemplo, el módulo Customer Import/Export se encuentra en:
vendor/magento/module-customer-import-export
En cambio, si creas un módulo personalizado, lo tendrías que colocar en el directorio /app/code/<Vendor>/<Module>, en cuyo interior estarían todos los archivos necesarios para su funcionamiento. Por ejemplo, un módulo llamado MiPrimerModulo lo podrías ubicar como sigue:
app/code/Aprendiendo/MiPrimerModulo
Hasta aquí, lo principal sobre los módulos en Magento. Como has podido ver, es bastante simple entenderlos, pero con una explicación a vista de pájaro no es suficiente. Por ello, en una próxima entrada publicaré un breve tutorial sobre cómo crear un módulo de Magento, de modo que puedas aprender cuáles son los principales ficheros y qué código contienen.
Si te gustó el post, no dudes en compartirlo con tus amigos de tus redes sociales favoritas, o dejarme un comentario con tu opinión justo aquí abajo.