在symfony中执行自定义控制台命令时出现致命错误

时间:2014-01-27 08:58:23

标签: php symfony console

我正在尝试为我的项目创建一个自定义控制台命令,所以我想我会首先尝试使用symfony网站中给出的示例,我已经提供了达到此目的所需的步骤,

Step 1: Added  "symfony/console": "2.3.*@dev", to composer.json.
Step 2: Updated composer.

为命令编写的代码如下所示

class Sendgcmfuctions extends ContainerAwareCommand {
protected function configure()
{
    $this
        ->setName('demo:greet')
        ->setDescription('Greet someone')
        ->addArgument('name', InputArgument::OPTIONAL, 'Who do you want to greet?')
        ->addOption('yell', null, InputOption::VALUE_NONE, 'If set, the task will yell in uppercase letters')
    ;
}

protected function execute(InputInterface $input, OutputInterface $output)
{
    $name = $input->getArgument('name');
    if ($name) {
        $text = 'Hello '.$name;
    } else {
        $text = 'Hello';
    }

    if ($input->getOption('yell')) {
        $text = strtoupper($text);
    }

    $output->writeln($text);
}
}

在运行“php app / console demo:greet”时会产生以下错误

PHP Fatal error:  Class 'Doctrine\ORM\Tools\Console\Command\ClearCache\QueryRegionCommand' not found in /var/www/MobpazAdmin/vendor/doctrine/doctrine-bundle/Doctrine/Bundle/DoctrineBundle/Command/Proxy/QueryRegionCacheDoctrineCommand.php on line 29

“Sendgcmfuctions”位于我的包内的Command文件夹中。请告诉我这样做时犯下的错误

3 个答案:

答案 0 :(得分:2)

这似乎是一个学说的最新捆绑问题。尝试使用另一个稳定版本。

“doctrine / doctrine-bundle”:“1.2.0”适用于我们

答案 1 :(得分:0)

尝试在composer.json中使用next require:

"symfony/console": "~2.3"

这可能是供应商错误。尝试使用以后的稳定版

答案 2 :(得分:0)

我做了Max建议并且安装顺利,例外

[InvalidArgumentException]
  “demo”命名空间中没有定义命令。

是由于命名问题必须为类名添加后缀命令