Có cơ hội nào để làm cho bộ điều khiển phụ thuộc vào dịch vụ của họ không thông qua việc sử dụng thùng chứa dịch vụ bên trong chúng hay không.Symfony 2: Dependency injection (DI) của bộ điều khiển
Tôi muốn viết điều khiển theo cách này:
<?php
class ArticleController extends \Symfony\Bundle\FrameworkBundle\Controller\Controller
{
private $articleFacade;
private $articleRepository;
public function __construct(ArticleFacade $articleFacade, ArticleRepository $articleRepository)
{
$this->articleFacade = $articleFacade;
$this->articleRepository = $articleRepository;
}
public function indexAction()
{
...
}
}
Unfortunatelly như tôi có thể nhìn thấy Symfony ControllerResolver làm trường mới Kiểm soát không qua ServiceContainer nhưng qua đơn giản return new $controller
gọi.
Cảm ơn câu trả lời của bạn. –
Hãy xem [AbstractControllerBundle] của tôi (https://github.com/elnur/ElnurAbstractControllerBundle). Nó có nghĩa là cung cấp cho bạn một [dịch vụ phụ huynh] (http://symfony.com/doc/current/cookbook/service_container/parentservices.html) để đơn giản hóa việc sử dụng các bộ điều khiển như các dịch vụ. –
Nó không giống với tôi như FOSUser thực hiện điều này? Tôi có thiếu điểm không? Câu hỏi của Václav là về việc tiêm chúng thông qua phương thức khởi tạo, trong khi FOSUser thực hiện $ this-> container-> get ('service'); https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Controller/RegistrationController.php – Steve