【发布时间】:2018-10-18 01:36:07
【问题描述】:
我需要在dev环境中通过容器访问一些私有服务。
我认为这很简单 - 我会专门为 dev 公开它们,如下所示:
app/config/services.yml:
services:
_defaults:
autowire: true
autoconfigure: true
public: false
MyBundle\:
resource: '../../*'
exclude: '../../{Entity,Repository,DoctrineMigrations,DependencyInjection,Tests,Util}'
app/config/services_dev.yml:
imports:
- { resource: services.yml }
services:
_defaults:
autowire: true
autoconfigure: true
public: true
app/config/config_dev.yml
imports:
- { resource: config.yml }
- { resource: services_dev.yml }
然而这并没有产生预期的结果:服务表现得好像是私有的,配置根本没有合并(例如,当你有参数注入时,sy 喊我必须明确定义它们,即使父配置已经这样做了)。
有很多示例,在 Sy 的默认配置中,特定参数会被各种环境覆盖,但由于某种原因,服务似乎并非如此。服务配置是否以某种特殊方式处理?我误解了什么吗?这是怎么回事?
附:我知道依赖注入,我知道访问容器被认为是不好的做法,这不是问题的重点。请不要这样建议。
【问题讨论】:
标签: php symfony symfony-3.4