Thay vì mở rộng bộ điều khiển chuẩn, tôi muốn tiêm Twig vào một trong các lớp học của tôi.Tiêm Twig làm dịch vụ trong Symfony2
Bộ điều khiển:
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()
);
}
}
và sau đó trong services.yml
tôi có như sau:
project.controller.some:
class: Project\SomeBundle\Controller\SomeController
arguments: [ @twig ]
Các lỗi tôi nhận được là:
SomeController :: __ construct () phải là một ví dụ của Twig_Environment, không có trường hợp nào được hiển thị
Nhưng tôi đang chuyển qua số @twig
qua config
. Tôi không thể nhìn thấy những gì tôi đang làm sai.
Edit:
Thêm vào mã đúng - đây là những gì cố định vấn đề:
// 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 }
Điều này có vẻ khá cũ, nhưng tôi đã tự hỏi như thế nào là bạn có thể đăng ký tất cả Extensions cành, các mã được tạo bởi SF2 có -> addExtension để thêm mã động đó. –