而不是擴展標準控制器,我想將Twig注入到我的一個類中。在Symfony2中注入Twig作爲服務
控制器:
namespace Project\SomeBundle\Controller;
use Twig_Environment as Environment;
class SomeController
{
private $twig;
public function __construct(Environment $twig)
{
$this->twig = $twig;
}
public function indexAction()
{
return $this->twig->render(
'SomeBundle::template.html.twig', array()
);
}
}
,然後在services.yml
我有以下幾點:
project.controller.some:
class: Project\SomeBundle\Controller\SomeController
arguments: [ @twig ]
我得到的錯誤是:
SomeController :: __結構( )必須是Twig_Environment的一個實例,沒有給出
但我通過config
傳遞@twig
。我看不到我做錯了什麼。
編輯:
添加在正確的代碼 - 這就是解決了這一問題:
// in `routing.yml` refer to the service you defined in `services.yml`
project.controller.some
project_website_home:
pattern:/
defaults: { _controller: project.controller.some:index }
這看起來很老,但我想知道你是如何能夠註冊所有枝條擴展,在由SF2生成的代碼具有 - > addExtension來動態添加這些代碼。 – 2015-05-26 02:26:42