我正在尝试为我的项目创建一个自定义控制台命令,所以我想我会首先尝试使用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文件夹中。请告诉我这样做时犯下的错误
答案 0 :(得分:2)
这似乎是一个学说的最新捆绑问题。尝试使用另一个稳定版本。
“doctrine / doctrine-bundle”:“1.2.0”适用于我们
答案 1 :(得分:0)
尝试在composer.json中使用next require:
"symfony/console": "~2.3"
这可能是供应商错误。尝试使用以后的稳定版
答案 2 :(得分:0)
我做了Max建议并且安装顺利,例外
[InvalidArgumentException]
“demo”命名空间中没有定义命令。
是由于命名问题必须为类名添加后缀命令