我是symfony2的新手。
我有一个名为CURLController的服务控制器,
另一个我调用myController的控制器使用curl控制器作为服务来创建curl请求。
我使用$this->getContainer()->get('cont.my')
来调用它。
现在我想添加一个symfony命令,从命令行获取一些变量并将其传递给myController,所以我也将myController写为服务(cont.my),然后我使用{{1命令从命令中调用它}}
它从命令开始工作,我确实进入myController函数,但问题是它内部的服务不再起作用。
我做错了什么?
我收到的错误是:
$this->container->get('cont.my')
service.yml:
PHP Fatal error: Call to a member function get() on a non-object
myCommand:
services:
utils.curl:
class: project\CommonBundle\Controller\UtilsCurlController
cont.my:
class: project\ServerBundle\Controller\MyController
}
myController的:
class myCommand extends ContainerAwareCommand{
protected function configure(){
$this->setName('mycommand:execute')
->setDescription('create a pull request');
}
/**
* {@inheritdoc}
*/
protected function execute(InputInterface $input, OutputInterface $output){
$serverResponse = $this->getContainer()->get('cont.my');
$output->writeln(sprintf('<comment>'.$serverResponse->printHello().'</comment>'));
}
}
编辑:
如果通过添加:
来修复它class MyController extends Controller{
public function printHello(){
$serverResponse = $this->container->get('utils.curl')
->setUrl('example.com')
->createCurl();
return $serverResponse;
}
到services.yml。 但是为什么它做了我不明白的技巧。