我在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