Aqui está uma maneira melhor do que se conectar ao sistema de teste: Use a interface de linha de comando do Magento 2.
Isso significa que você terá que integrar seu código de sandbox em um módulo real (ou criar um para o efeito), mas você deve fazer isso de qualquer maneira.
Depois de configurar seu módulo , adicionar um comando é bem fácil. Tudo que você precisa é da classe e do DI para registrá-la.
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>');
}
}
Exemplo derivado de https://github.com/magento/magento2-samples/tree/master/sample-module-command - veja aqui um módulo completo que incorpora essa funcionalidade. Existem exemplos menos triviais incluídos.
Por convenção, sua classe de comando deve sempre estar dentro {module}/Console/Command
e terminar com Command.php
.
Depois de adicionar esses dois pedaços de código (e cache do Magento corado, etc.), execute o seu comando pelo nome em SSH: php bin/magento example:greeting
.
Você pode usar a injeção de dependência nesse contexto, para executar qualquer código que desejar execute()
.
Essa interface é construída no componente Console do Symfony , para que você também tenha acesso total a toda essa ampla gama de funcionalidades, incluindo opções / argumentos , tabelas e barras de progresso muito fáceis .
Se você tiver algum problema ao configurar seu comando ou opções, geralmente poderá executar o comando 'list' para obter melhor visibilidade do que está errado: php bin/magento list
Desfrutar.