3

我已Symfony2多次阅读本书中的服务容器章节,并阅读了有关该主题的 SO 答案和其他资源,但我似乎仍然不明白。

到目前为止,我读到的所有内容都在我脑海中钻了一个主要事实:容器本身(实际上)不应该直接注入到依赖项中。这似乎可以很好地为其他服务提供依赖关系,但是如果我的模型中的实体想要检查当前的安全上下文怎么办?

我知道在这种情况下我可以实现ContainerAwareInterface然后setContainer()从容器感知上下文中调用以获取对容器本身的访问权限,但这与从服务配置中注入容器不同,这是完全要避免的费用?

4

1 回答 1

3

你所描述的只是糟糕的设计。您的模型不应依赖于服务容器。如果您需要执行一些安全检查,那么您将创建一个注入了必要依赖项的服务,然后将您的模型对象传递给它。

通过您的示例,听起来您正在尝试进行此处描述的验证http://symfony.com/doc/master/book/validation.html并且就像我所说的那样工作。

于 2012-07-07T19:27:18.867 回答