Curso de Magento 2 - CLI Command

19

Mar

Curso de Magento 2 – CLI Command

Magento 2 es una de las plataformas de comercio electrónico más populares y potentes disponibles en la actualidad. Su flexibilidad y extensibilidad son algunas de las razones clave por las que los desarrolladores eligen trabajar con esta plataforma. Una de las características más útiles de Magento 2 es la capacidad de crear comandos de consola personalizados para automatizar tareas repetitivas o para realizar acciones específicas que no están disponibles a través de la interfaz de usuario estándar. En este artículo, exploraremos cómo crear un comando de consola personalizado en Magento 2.

¿Qué es un Comando de Consola en Magento 2?

Un comando de consola en Magento 2 es un script PHP que se ejecuta desde la línea de comandos del sistema operativo. Estos comandos están diseñados para realizar tareas específicas dentro de un entorno Magento 2, como la instalación de extensiones, la limpieza de la caché, la importación/exportación de datos, entre otros. La creación de un comando de consola personalizado proporciona a los desarrolladores la capacidad de extender las capacidades de Magento 2 según sus necesidades específicas.

Pasos para Crear un Comando de Consola en Magento 2

Paso 1: Crear la Estructura del Módulo
Te comparto el siguiente enlace con un tutorial para la creación de un módulo personalizado en Magento 2. Una vez lo tengas creado puedes continuar con los siguientes pasos.

Paso 2: Crear el Archivo de Comando
Una vez que la estructura del módulo está en su lugar, se debe crear el archivo de comando en el directorio Console/Command. Este archivo contendrá la lógica del comando de consola, como la configuración de opciones, la ejecución de tareas y la salida de resultados.

mkdir -p app/code/MyCompany/MyModule/Console/Command
touch app/code/MyCompany/MyModule/Console/Command/Message.php
<?php
/**
 * Copyright © Gerson Hernández All rights reserved.
 */
declare(strict_types=1);

namespace MyCompany\MyModule\Console\Command;

use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;

class Message extends Command
{

    const NAME_ARGUMENT = "name";
    const NAME_OPTION = "option";

    /**
     * {@inheritdoc}
     */
    protected function execute(
        InputInterface $input,
        OutputInterface $output
    ) {
        $name = $input->getArgument(self::NAME_ARGUMENT);
        $option = $input->getOption(self::NAME_OPTION);
        $output->writeln("Hola " . $name);
        return 0;
    }

    /**
     * {@inheritdoc}
     */
    protected function configure()
    {
        $this->setName("mycompany_mymodule:message");
        $this->setDescription("Imprimiendo un Hola Mundo");
        $this->setDefinition([
            new InputArgument(self::NAME_ARGUMENT, InputArgument::OPTIONAL, "Name"),
            new InputOption(self::NAME_OPTION, "-a", InputOption::VALUE_NONE, "Option functionality")
        ]);
        parent::configure();
    }
}

Paso 3: Definir las Opciones del Comando
Es posible que desee que su comando de consola acepte ciertos parámetros o opciones. Estos pueden incluir opciones como --help para mostrar información de ayuda, o parámetros específicos requeridos para la tarea que realiza el comando. Estas opciones se definen en el archivo de comando y se procesan durante la ejecución del comando.

Paso 4: Registrar el Comando
Una vez que se ha creado el archivo de comando, debe registrarse en Magento 2 para que esté disponible para su ejecución. Esto se hace mediante la configuración en el archivo etc/di.xml del módulo, donde se especifica la clase del comando y su nombre.

touch app/code/MyCompany/MyModule/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="Magento\Framework\Console\CommandList">
		<arguments>
			<argument name="commands" xsi:type="array">
				<item name="Message" xsi:type="object">MyCompany\MyModule\Console\Command\Message</item>
			</argument>
		</arguments>
	</type>
</config>

Paso 5: Probar y Depurar
Una vez que se ha creado y registrado el comando de consola, es importante probarlo exhaustivamente para asegurarse de que funcione según lo esperado. Esto implica ejecutar el comando con diferentes opciones y parámetros, así como manejar cualquier error o excepción que pueda surgir durante la ejecución.

php bin/magento mycompany_mymodule:message -n Mundo

Conclusión

Crear un comando de consola en Magento 2 es una forma poderosa de extender las capacidades de la plataforma y automatizar tareas específicas. Siguiendo los pasos mencionados anteriormente y utilizando las herramientas y APIs proporcionadas por Magento 2, los desarrolladores pueden crear comandos de consola personalizados para satisfacer las necesidades específicas de sus proyectos. Estos comandos no solo pueden mejorar la eficiencia del desarrollo, sino también la gestión y el mantenimiento de las tiendas en línea basadas en Magento 2.

¡Eso es todo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

RELATED

Posts