我想在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);
}
但在我的控制台中,我的命令不存在
答案 0 :(得分:1)
简而言之,将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