Saya baru mengenal Magento 2, saya membuat Perintah CLI khusus yang mencetak hello world tetapi ketika saya melihat daftar php bin/magento list itu tidak menunjukkan kepada saya perintah tambahan saya alih-alih membuat saya kesalahan ini:

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

Berikut adalah hal-hal yang saya lakukan untuk membuat Perintah CLI Bekerja, saya rasa saya tidak melewatkan sesuatu:

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>

Saya tidak yakin di mana saya salah, adakah yang bisa membantu saya?

Perintah saya pada dasarnya akan mengatakan training:hello_world

0
Jaymin 13 Maret 2020, 12:43

1 menjawab

Jawaban Terbaik

Setelah sedikit riset saya menemukan bahwa saya harus membuat file di.xml terpisah di dalam folder etc saya alih-alih etc/frontend/di.xml

Saya telah memotong kode file perintah di.xml dan membuat file di.xml file baru di dalam folder etc dan menyimpannya dan berhasil.

<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>
0
Jaymin 13 Maret 2020, 10:16