Symfony2 DIC>为什么服务类没有被代理?

时间:2012-08-10 11:22:40

标签: dependency-injection symfony-2.1

我非常喜欢Symfony2 DIC的东西,服务XML配置器很容易使用。但是,当我宣布一项新服务时,例如:

<service id="form.csrf_provider" class="Symfony\Component\Form\Extension\Csrf\CsrfProvider\SessionCsrfProvider">
  <argument type="service" id="session"/>
  <argument>ThisTokenIsNotSoSecretChangeIt</argument>
</service>

如果我致电

,会自动创建会话
$container->get('form.csrf_provider')

即使我根本不使用它(即使你不使用它,Twig也会使用Form ...),并且作为级联效果,很多服务类都被创建并且从未使用过!多数民众赞成花了很多钱。

我知道主义使用代理模式实体,实体未加载少于你调用

$entity->getTitle() // etc....

他们真的应该为服务类做同样的事情(当然只在生产环境中),这将大大改善Symfony2。我目前的解决方案是将容器本身作为参数传递,但它打破了DIC目标; - (

有人有其他解决方案吗?感谢

0 个答案:

没有答案
相关问题