如何在 Symfony 4 中调用服务?
How to call a service in Symfony 4?
我想在 Symfony 4 中生成 XML 提要,我认为 FeedBundle 对我来说已经足够了。我安装并配置它没有任何问题,当我想从 Controller 调用服务时,我的问题就来了,他的文档告诉我执行以下操作:
$feed = $this->get('eko_feed.feed.manager')->get('article');
但据我所知,在 Symfony 4 中这不是正确的做法。有人可以让我知道正确的方法吗?我只需要知道如何从控制器调用服务,仅此而已。
谢谢大家
您可以尝试在控制器中注入服务。
尝试添加 services.yaml:
services:
Eko\FeedBundle\Feed\FeedManager: '@eko_feed.feed.manager'
在控制器中:
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
public function index(Request $request, \Eko\FeedBundle\Feed\FeedManager $feedmanager)
{
$articles = $this->getDoctrine()->getRepository('App:YourEntity')->findAll();
$feed = $feedmanager->get('article');
$feed->addFromArray($articles);
return new Response($feed->render('rss'));
}
见here
我想在 Symfony 4 中生成 XML 提要,我认为 FeedBundle 对我来说已经足够了。我安装并配置它没有任何问题,当我想从 Controller 调用服务时,我的问题就来了,他的文档告诉我执行以下操作:
$feed = $this->get('eko_feed.feed.manager')->get('article');
但据我所知,在 Symfony 4 中这不是正确的做法。有人可以让我知道正确的方法吗?我只需要知道如何从控制器调用服务,仅此而已。
谢谢大家
您可以尝试在控制器中注入服务。
尝试添加 services.yaml:
services:
Eko\FeedBundle\Feed\FeedManager: '@eko_feed.feed.manager'
在控制器中:
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
public function index(Request $request, \Eko\FeedBundle\Feed\FeedManager $feedmanager)
{
$articles = $this->getDoctrine()->getRepository('App:YourEntity')->findAll();
$feed = $feedmanager->get('article');
$feed->addFromArray($articles);
return new Response($feed->render('rss'));
}
见here