Aquí hay una mejor manera que conectarse al sistema de prueba: use la interfaz de línea de comandos de Magento 2.
Esto significa que tendrá que integrar su código de sandbox en un módulo real (o crear uno para el propósito), pero debería hacerlo de todos modos.
Una vez que haya configurado su módulo , agregar un comando es bastante fácil. Todo lo que necesita es la clase y DI para registrarla.
1. {module} /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="greeting_command" xsi:type="object">Magento\CommandExample\Console\Command\GreetingCommand</item>
</argument>
</arguments>
</type>
</config>
2. {module} /Console/Command/GreetingCommand.php
<?php
namespace Magento\CommandExample\Console\Command;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
/**
* Class GreetingCommand
*/
class GreetingCommand extends Command
{
/**
* {@inheritdoc}
*/
protected function configure()
{
$this->setName('example:greeting')
->setDescription('Greeting command');
parent::configure();
}
/**
* {@inheritdoc}
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
$output->writeln('<info>Hello world!</info>');
}
}
Ejemplo derivado de https://github.com/magento/magento2-samples/tree/master/sample-module-command ; consulte allí un módulo completo que incorpora esta funcionalidad. Hay ejemplos menos triviales incluidos.
Por convención, su clase de comando siempre debe estar en {module}/Console/Command
y terminar con Command.php
.
Una vez añadidos los dos trozos de código (y la memoria caché Magento enrojecida, etc.), ejecute el comando por su nombre en SSH: php bin/magento example:greeting
.
Puede usar la inyección de dependencia en este contexto, por lo que puede ejecutar cualquier código que desee dentro execute()
.
Esta interfaz se basa en el componente Consola de Symfony , por lo que también tiene acceso completo a toda esa amplia gama de funcionalidades, incluidas opciones / argumentos , tablas y barras de progreso muy fáciles .
Si tiene algún problema al configurar su comando u opciones, generalmente puede ejecutar el comando 'lista' para obtener una mejor visibilidad de lo que está mal: php bin/magento list
Disfrutar.