服务容器因为多种原因需要被编译。比如解析参数和去掉不用的服务
它通过运行$container->compile()进行编译,如果不编译
比如无法解析参数 在config下创建config.yaml增加该一些参数配置
如果不编辑会提示There is no extension able to load the configuration for "mash"
创建参数配置文件
1 | # src/config/config.yaml |
创建扩展
1 | # src/MashExtension.php |
index.php 只有在编译容器时才处理其中的值
1 | <?php |
虽然您可以手动管理合并不同的文件,但使用Config组件合并和验证配置值要好得多。使用配置处理,您可以通过以下方式访问配置值:
创建configuration类
1 | # src/Configuration.php |
配置config.yaml
1 | # src/config/config.yaml |
MashExtension.php内容变化
1 | # src/MashExtension.php |
在实现以下load() 方法之前,Extension可以在调用方法 之前添加任何Bundle的配置PrependExtensionInterface:
1 | use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface; |