有没有从模型层访问config.yml的配置参数的方法吗?从控制器我可以使用$this->container->getParameter('xyz')
。但是如何从模型层的类中完成呢?如何从Symfony 2中的模型层访问配置参数?
3
A
回答
6
在Symfony2的实体被设计为POPOs,这意味着他们真的不应该有自己的范围之外获得任何东西。
如果您需要在实体中的一个部分配置选项,考虑将它作为一个参数从控制器就像这样:
$entityName->methodName($param1, $this->container->getParameter('xyz'));
-5
可以使用依赖注入和模型添加到您的services.yml文件,和其他服务一样,您可以提供其他服务作为构造函数参数。唯一的缺点是您拨打而不是$derp = new Derp();
。
例如:
# src/Derp/LolBundle/Resources/config/services.yml services: derp: class: \Derp\LolBundle\Entity\Message arguments: [@service_container]
@service_container
是使用php app/console container:debug
发现的服务。它的功能与您的控制器中的$this->container
功能相同,并提供给您班级的构造函数。有关如何使用服务容器的更多信息,请参阅here。
如前所述,它们是POPO(Plain Old PHP Objects),之前的依赖注入方法是糟糕的选择,因为每次使用它时都必须记住为模型实体提供相同的对象(这是一个麻烦)和Symfony2服务是一种缓解这种痛苦的方法。
0
这可能(会)打破DIC的模式,但你可以使用一个单独的类,以“全球化”你需要什么。
为了养活你的全局变量,使用来自捆绑类boot
方法(在这里您可以访问DIC的东西,因此配置)。
或者更简单的,静态字段添加到您的实体。
快速&肮脏的解决方案,不要滥用它;-)
相关问题
- 1. 如何从Symfony 2中的任何类访问配置参数?
- 2. 如何从symfony任务的配置方法访问数据库
- 3. Zend框架2访问模型类中的全局配置
- 4. symfony数据库访问配置问题
- 5. 如何在symfony的配置文件中访问数组?
- 6. 从Symfony应用程序外部访问和使用Symfony模型图层
- 7. 如何Symfony的从模型
- 8. 如何从parameters.yml注入Symfony参数到Behat 3配置中?
- 9. 如何在Symfony 2中访问控制器外的路径和配置?
- 10. Symfony 2配置参数 - 参数必须定义
- 11. 访问FeatureContext中的symfony参数
- 12. 访问服务中的Symfony参数
- 13. 如何访问模型中的数据?
- 14. CakePHP的3 - 模型 - 从阵列的第三层访问数据
- 15. 访问配置里面的Symfony库
- 16. 如何从模型中访问属性
- 17. Symfony推进模型图层
- 18. 访问模板中函数模板参数的结果类型?
- 19. Symfony/Doctrine 2 - 在实体中使用配置参数
- 20. 的Symfony 2错误配置
- 21. 如何高效地填充数据访问层模型?
- 22. 如何在symfony 1.4的actions.class.php中访问POST参数?
- 23. Symfony的2学说2 EntityManager的配置
- 24. 如何访问模型图层中的对象到视图图层
- 25. 如何从模板中的树枝FormView访问底层对象?
- 26. 从模型表中访问数据yii
- 27. 从模型中访问app_controller函数
- 28. 如何从模板中的扩展用户配置文件访问数据?
- 29. 如何访问模板参数的成员? “成员访问不完整类型”
- 30. 如何从repoze.who authenticator访问pylons配置
谢谢你,这是一个干净的解决方案 – Georg
如果这是您正在寻求请标明它是这样(为他人注意为好)答案。 – Adrian
手动给出参数是最佳解决方案。在DIC中拥有一个实体是错误的,因为Doctrine2不会使用DIC来创建新实体,但会像任何POPO那样实例化它们。 – futurecat