我在symfony3上有很大的项目。在这个项目中我有ProjectFrameworkBundle。在“xxx”命名空间中没有定义命令
项目/ FrameworkBundle /控制台/ 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);
//...
}
如果我会做任何命令,从命令类扩展,它工作正常(测试)。
不过,我还有一个包
项目/ FrameworkQueue /控制台/ 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