Zamiast rozszerzać standardowy kontroler, chciałbym wstrzyknąć Twig w jedną z moich klas.Wstrzykiwanie gałązki jako usługi w Symfony2
Kontroler:
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()
);
}
}
a następnie w services.yml
mam następujące:
project.controller.some:
class: Project\SomeBundle\Controller\SomeController
arguments: [ @twig ]
Błąd Dostaję jest:
SomeController :: __ konstrukt () musi być instancją Twig_Environment, żadna podana
Ale przechodzę w @twig
przez config
. Nie widzę, co robię źle.
Edit:
Dodawanie prawidłowy kod - to co rozwiązaniu problemu:
// 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 }
To wydaje się dość stary, ale zastanawiałem się, w jaki sposób udało ci się zarejestrować wszystkie gałązka modyfikacji, wygenerowany kod przez SF2 ma -> addExtension, aby dodać je dynamicznie. –