在Symfony2中创建ContainerAwareCommand以获取打印数据

时间:2015-05-25 18:11:32

标签: php symfony

我想在Symfony2中创建ContainerAwareCommand以从我的数据库中打印电子邮件。我有另一个类,它包含我的数据。我只是开始,但接下来我做了什么?

protected function configure()
{
    $this
        ->setName('demo:email:get')
        ->setDescription('Print all emails form db');
}

protected function execute(InputInterface $input, OutputInterface $output)
{
    $service = $this->getContainer()->get('fos_elastica.finder.site.user.email');
    $output->writeln('<p>%s</p>', $service);
}

但在我的控制台中,我的命令不存在

2 个答案:

答案 0 :(得分:1)

关注documentation

简而言之,将execute()方法添加到类中,从容器中获取服务,然后显示数据。

   protected function execute(InputInterface $input, OutputInterface $output)
    {
        $service = $this->getContainer()->get('your_service.database_connection');

        $email = // work with $service

        $output->writeln(/*here you render the data*/);
    }

答案 1 :(得分:1)

可能是你做错了什么,检查班级名称,目录名称等。来自doc

  

使用Symfony自动使用控制台命令,   在bundle中创建一个 Command 目录并创建一个PHP文件   对于要提供的每个命令,以 Command.php 为后缀。   例如,如果你想扩展AppBundle来迎接你   命令行,创建 GreetCommand.php