У меня был большой проект на symfony3. В этом проекте у меня есть ProjectFrameworkBundle.Нет команд, определенных в пространстве имен «xxx»
Project/FrameworkBundle/Console/Command.php
abstract class Command extends ContainerAwareCommand
{
//...
protected function execute(InputInterface $input, OutputInterface $output)
{
// do some regular staff
$exitCode = $this->executeCommand($input, $output);
// do some regular staff
}
abstract protected function executeCommand(InputInterface $input, OutputInterface $output);
//...
}
Если я сделаю любую команду, простиралась от класса Command, он будет работать нормально (проверено).
Но, у меня есть еще один Bundle
Project/FrameworkQueue/Console/Command.php
use Project\FrameworkBundle\Console\Command as BaseCommand;
abstract class Command extends BaseCommand
{
// ...
protected function executeCommand(InputInterface $input, OutputInterface $output)
{
// do some regular staff
$exitCode = $this->executeJob($input, $output);
// do some regular staff
}
abstract protected function executeJob(InputInterface $input, OutputInterface $output);
// ...
}
Так что, когда я меняю Эми команды из extends Project\FrameworkBundle\Console\Command
в extends Project\QueueBundle\Console\Command
Скрывает из списка команд. Я попытался удалить всех сотрудников с executeCommand
в QueueBundle
, но это мне не помогло. Но если я ошибаюсь в php-коде в этой команде, я вижу исключения.
Что случилось? Где моя ошибка или это ошибка. Где я могу найти код symfony, который собирает и проверяет доступные команды?
Спасибо!
P.S. Проблема не в именах файлов или классов - я проверял их много раз. Конечно, когда я меняю родительский класс, я меняю имена функций.
Благодарим вас за потраченное время, чтобы ответить на мой вопрос, но я только что нашел причину. Я напишу ниже. –
Ах, хорошо. Добро пожаловать! – Rinat