Introducción
Magento es una de las plataformas de comercio electrónico más populares del mundo, conocida por su flexibilidad y escalabilidad. Los plugins en Magento permiten a los desarrolladores extender y personalizar la funcionalidad de la plataforma sin modificar el código base. En este artículo, aprenderás cómo crear un plugin en Magento paso a paso.
Requisitos Previos
Antes de comenzar, asegúrate de tener lo siguiente:
- Un entorno de desarrollo de Magento configurado.
- Conocimientos básicos de PHP y de la arquitectura de Magento.
- Acceso a la línea de comandos.
Paso 1: Configurar el Entorno
Estructura del Módulo
En Magento 2, los módulos se colocan en el directorio app/code
. La estructura básica de un módulo es la siguiente:
app/code/VendorName/ModuleName
├── etc
│ ├── module.xml
│ └── di.xml
├── Plugin
│ └── ClassName.php
├── registration.php
└── composer.json
Crear la Carpeta del Módulo
- Navega al directorio
app/code
:
cd path_to_magento/app/code
- Crea las carpetas para tu módulo:
mkdir -p VendorName/ModuleName
cd VendorName/ModuleName
Paso 2: Configurar los Archivos Básicos
Archivo registration.php
Este archivo registra el módulo con Magento.
- Crear
registration.php
:
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'VendorName_ModuleName',
__DIR__
);
Archivo module.xml
Este archivo define la configuración básica del módulo.
- Crear
etc/module.xml
:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="VendorName_ModuleName" setup_version="1.0.0"/>
</config>
Archivo composer.json
Este archivo define las dependencias del módulo.
- Crear
composer.json
:
{
"name": "vendorname/modulename",
"description": "Descripción de tu módulo",
"require": {
"php": "~7.3.0||~7.4.0||~8.0.0",
"magento/framework": "103.0.*"
},
"type": "magento2-module",
"version": "1.0.0",
"autoload": {
"files": [
"registration.php"
],
"psr-4": {
"VendorName\\ModuleName\\": ""
}
}
}
Paso 3: Crear el Plugin
Configurar el Archivo di.xml
El archivo di.xml
define las dependencias de inyección para el módulo y registra el plugin.
- Crear
etc/di.xml
:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Clase\Objetivo">
<plugin name="vendorname_modulename_plugin" type="VendorName\ModuleName\Plugin\ClassName"/>
</type>
</config>
Crear la Clase del Plugin
- Crear el directorio
Plugin
y el archivoClassName.php
:
mkdir Plugin
touch Plugin/ClassName.php
- Editar
ClassName.php
:
<?php
namespace VendorName\ModuleName\Plugin;
class ClassName
{
public function beforeMetodoOriginal($subject, $arg1, $arg2)
{
// Lógica antes de la ejecución del método original
return [$arg1, $arg2];
}
public function aroundMetodoOriginal($subject, callable $proceed, $arg1, $arg2)
{
// Lógica alrededor del método original
$result = $proceed($arg1, $arg2);
// Lógica después de la ejecución del método original
return $result;
}
public function afterMetodoOriginal($subject, $result)
{
// Lógica después de la ejecución del método original
return $result;
}
}
Paso 4: Habilitar y Probar el Módulo
Habilitar el Módulo
- Ejecutar el Comando de Habilitación:
bin/magento module:enable VendorName_ModuleName
- Ejecutar el Comando de Actualización del Esquema:
bin/magento setup:upgrade
Limpiar la Caché
- Limpiar la Caché:
bin/magento cache:clean
Conclusión
Hemos cubierto los pasos necesarios para crear un plugin en Magento. Los plugins son una forma poderosa de extender y personalizar la funcionalidad de Magento sin modificar el código base. Siguiendo esta guía, puedes desarrollar plugins que se integren perfectamente con el ecosistema de Magento, proporcionando funcionalidades personalizadas y mejorando la experiencia del usuario.