Создание команды как службы в symfony 5 - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь зарегистрировать командный класс как службу в Symfony. Когда я запускаю bin / console, я получаю следующую ошибку:

In App_KernelDevDebugContainer.php line 644:

Attempted to load class "Runner" from namespace "App\Command\Circuit".  
Did you forget a "use" statement for another namespace?

Вот так я регистрирую службу:

services:
    App\Command\Circuit\Runner:
        tags:
            - { name: 'console.command', command: 'run' } 

И вот как выглядит класс команды:

namespace App\Command\Circuit;

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

class Runner extends Command
{
    protected function configure()
    {
        $this
            ->setName('run');
    }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $time = time();
        file_put_contents("{$time}.txt", 'test');
    }
}   

Я следовал symfony учебник , но я уверен, что кое-что я забыл, проводя эту услугу.

1 Ответ

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

Все команды должны заканчиваться суффиксом команды.

Вам просто нужно изменить свой класс с class Runner extends Command на class RunnerCommand extends Command

Редактировать: После замечания Керада суффикс больше не является обязательным начиная с Symfony 4 (суффикс все еще обязателен в версии 3.4, do c: https://symfony.com/doc/3.4/console.html#creating -a-command )

...