Подтвердить что ты не робот

Собственная консольная команда Symfony2 отображается как "не определен" при выполнении

Я создал новый класс в src/CollaboratorsBundle/Command, названный им GenerateFormRemindersCommand.php и введя в него следующий код:

<?php
namespace Myproject\CollaboratorsBundle\Command;

use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;

class GenerateFormRemindersCommand extends ContainerAwareCommand{

    protected function configure() {
        $this->setName("generate:formReminders")
             ->setDescription('Send reminders by email to all collaborators with unanswered forms');
    }

    protected function execute(InputInterface $input, OutputInterface $output) {
        //some code
    }
}

После выполнения, я получаю следующее сообщение:

$ php app/console generate:formReminders
[InvalidArgumentException]
Command "generate:formReminders" is not defined.

Я проверил в своем файле AppKernel.php, что мой пакет был зарегистрирован в нем, и это было.

Я попытался добавить parent: configure(); к методу configure, но без каких-либо результатов.

Я создал несколько других настраиваемых команд, которые работают правильно. В этом случае я не понимаю, что я делаю неправильно. Вы?

Заранее спасибо

4b9b3361

Ответ 1

У меня была такая же проблема, потому что я назвал файл без суффикса "Command". Вы должны назвать свой файл "GenerateFormRemindersCommand.php".

Ответ 2

У меня была такая же ошибка. Проблема была в том, что я реализовал конструктор для инициализации поля репозитория вместо метода initialize().

Ответ 3

Вы не разместили файл в нужном месте.

Просмотрев свой код и используемое пространство имен, как вы уже упоминали, вы разместили файл внутри src/CollaboratorsBundle/Command. Хотя он должен быть размещен внутри src/Myproject/CollaboratorsBundle/Command.