简体   繁体   中英

Fatal error on executing custom console command in symfony

I'm trying to create a custom console command for my project so i thought I'll first try it out with the example given in the symfony site, I have provided the steps it took to reach this far,

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

The code written for the command is given below

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);
}
}

On running "php app/console demo:greet" the following error is produced

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

The "Sendgcmfuctions" is inside a Command folder inside my bundle. Please tell me the mistake commited while doing this

it seems to be an issue of doctrine's latest bundle. try use another stable version.

"doctrine/doctrine-bundle": "1.2.0" works for us

Try to use next require in composer.json:

"symfony/console": "~2.3"

It's probably an vendor error. Try to use later stable version

I did as Max suggested and the installation went smoothly, the exception

[InvalidArgumentException]
There are no commands defined in the "demo" namespace.

was due to a naming problem had to add a suffix of to the class name as Command

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM