Symfony Command在生产环境中具有空名称

时间:2015-04-02 17:01:02

标签: symfony dependency-injection command

我正在研究Symfony2 Command,当我尝试在prod环境中运行命令时出错,但它在dev中完美运行:

如果我跑的话,一切都很好:

php app/console mycommand:start

当我跑步时

php app/console mycommand:start --env=prod

我收到此错误:

[LogicException]                                                                               
The command defined in "NameSpace\Of\MyClassCommand" cannot have an empty name.

命令定义:

services:
  my_service.command:
      class: NameSpace\Of\MyClassCommand
      arguments:
        name: mycommand:start
      tags:
        - { name: console.command }

命令:

class MyClassCommand extends Command
{

    /**
    * @param InputInterface $input
    * @param OutputInterface $output
    */
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        // logic
    }

    ...
}

您可能会注意到,我没有重载__constructconfigure方法。我试过但它没有改变任何东西。如果我清理缓存也一样。

有没有人知道proddev环境之间可能存在什么区别,导致此问题?

谢谢

2 个答案:

答案 0 :(得分:1)

我终于找到了解决方案,Ruslan你是对的:清除缓存。 但我不得不手动核对缓存文件夹,echo [850860.000000000000000]命令还不够。

答案 1 :(得分:1)

清除缓存对我不起作用。我需要将基类声明为if(checkRememberMe){ SharedPreferenceUtils.createSP(LoginActivity.this,etLogin.getText().toString(),fullnamedb,branchdb,sectiondb,true); } 以暗示Symfony不将其注册为命令。

abstract class