Создание пользовательских команд консоли в Magento 2 - PullRequest
0 голосов
/ 13 марта 2020

Я новичок в Magento 2, я создаю собственную команду CLI, которая печатает привет мир, но когда я вижу список php bin/magento list, он не показывает мои добавленные команды, а выдает следующую ошибку:

 [Symfony\Component\Console\Exception\CommandNotFoundException]  
  There are no commands defined in the "training" namespace.  

Вот то, что я сделал, чтобы заставить CLI Command Work работать, я не думаю, что что-то упустил:

app / code / SimplifiedMagento / FirstModule / Console / Command / HelloWorld. php

<?php


namespace SimplifiedMagento\FirstModule\Console\Command;

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



class HelloWorld extends Command
{
    public function  configure()
    {
        $this->setName("training:hello_world");
        $this->setDescription("the command prints out hello world");
        parent::configure();

    }

    public function execute(InputInterface $input, OutputInterface $output)
    {
        $output->writeln('Hello World');
    }
}

app / code / SimplifiedMagento / FirstModule / etc / frontend / di. xml

<type name="Magento\Framework\Console\CommandList">
                <arguments>
                        <argument name="commands" xsi:type="array">
                                <item name="hello_world" xsi:type="object">
                                        SimplifiedMagento\FirstModule\Console\Command\HelloWorld</item>
                        </argument>
                </arguments>
        </type>

Я не уверен, где я иду не так, Кто-нибудь может мне помочь?

Моя команда в основном говорит: training:hello_world

1 Ответ

0 голосов
/ 13 марта 2020

После небольшого исследования я обнаружил, что мне нужно создать отдельный файл di. xml внутри моей папки et c вместо etc / frontend / di. xml

Я вырезал код файла di. xml команды и создал новый файл di. xml file внутри папки et c, сохранил его и все заработало.

<type name="Magento\Framework\Console\CommandList">
                <arguments>
                        <argument name="commands" xsi:type="array">
                                <item name="hello_world" xsi:type="object">
                                        SimplifiedMagento\FirstModule\Console\Command\HelloWorld</item>
                        </argument>
                </arguments>
        </type>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...