Recurring scripts en Magento2

Recurring scripts

Otra de las novedades en Magento2 son los recurring scripts.

Ya no sólo tenemos los instaladores y actualizadores de esquema, o los instaladores y actulizadores de datos; ahora tenemos un tercer tipo de script que a diferencia de los anteriores, no dependerá de la versión del módulo, sino que se ejecutará siempre, al final, que se corra el comando:

bin/magento setup:upgrade

¿Cómo nos puede ayudar esta nueva funcionalidad? Un caso claro es el del indexer, que luego de hacer un upgrade de base de datos, revisa el estado de cada índice.

Nosotros podríamos usarlo para validar y ajustar datos cada vez que se modifica algo en la base de datos.

Para implementarlo, creamos dentro del directorio Setup de nuestro módulo, la clase Recurring.php y, como ejemplo, podría contener algo como esto:

use Magento\Framework\Setup\InstallSchemaInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;

class Recurring implements InstallSchemaInterface
{
 
    public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
    {
        $setup->startSetup();
        //$setup->getConnection()->query(""); //Execute a custom query
        $setup->endSetup();
    }
}

Intencionalmente he dejado comentada la línea en donde se ejecutaría un query.

Aquí, cada uno deberá ver qué acción necesita realizar. Que en el ejemplo haya un query no significa que sea la única opción.

La actualización del módulo con el código comentado está disponible en el tag 2.12.0 en GitHub.