有没有从模型层访问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 2:从命令中访问更新的配置
- 3. 如何从symfony任务的配置方法访问数据库
- 4. 在Symfony 2中创建一个胖模型 - 组合或继承以及如何配置我的模型层
- 5. 如何获得访问视图模型 - Symfony的2
- 6. Zend框架2访问模型类中的全局配置
- 7. 在symfony 2中如何在php中访问树枝模板基础url参数?
- 8. symfony数据库访问配置问题
- 9. 从其他模块访问symfony模块配置
- 10. 如何在symfony的配置文件中访问数组?
- 11. 从Symfony应用程序外部访问和使用Symfony模型图层
- 12. 从模型配置邮件参数 - Yii2
- 13. 如何从模型/控制器访问CodeIgniter配置变量?
- 14. 如何Symfony的从模型
- 15. 如何在Symfony 2中访问控制器外的路径和配置?
- 16. Symfony 2:构建自己的数据库访问层
- 17. 如何从parameters.yml注入Symfony参数到Behat 3配置中?
- 18. 在symfony 2实体中访问配置值
- 19. Symfony 2配置参数 - 参数必须定义
- 20. 访问服务中的Symfony参数
- 21. 访问FeatureContext中的symfony参数
- 22. 访问symfony中的setter 2 2
- 23. 如何从云代码访问ParseServer配置参数?
- 24. symfony配置中的子参数
- 25. Symfony 2造型/参考位置
- 26. 如何访问模型中的数据?
- 27. Symfony 2配置文件类型
- 28. 访问配置里面的Symfony库
- 29. CakePHP的3 - 模型 - 从阵列的第三层访问数据
- 30. Symfony推进模型图层
谢谢你,这是一个干净的解决方案 – Georg
如果这是您正在寻求请标明它是这样(为他人注意为好)答案。 – Adrian
手动给出参数是最佳解决方案。在DIC中拥有一个实体是错误的,因为Doctrine2不会使用DIC来创建新实体,但会像任何POPO那样实例化它们。 – futurecat