Download the PHP package tourze/symfony-dependency-service-loader without Composer
On this page you can find all versions of the php package tourze/symfony-dependency-service-loader. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Please rate this library. Is it a good library?
Informations about the package symfony-dependency-service-loader
Symfony Dependency Service Loader
简体中文
这个包为 Symfony Dependency Injection 组件提供了 AutoExtension 基类,用于自动加载服务配置。
特性
- 自动加载服务配置:自动加载指定目录下的 YAML 服务配置文件
- 环境特定配置:根据
kernel.environment自动加载对应环境的服务配置 - 严格的文件验证:限制配置目录中允许的文件名,避免错误配置
- 最佳实践强制:强制要求使用
_defaults配置,提高代码质量 - 禁用 exclude:禁止使用
exclude配置,鼓励明确的服务定义 - 智能配置合并:自动合并基础配置和环境特定配置
- 环境感知:根据
kernel.environment参数动态加载配置 - Doctrine 集成:通过
AppendDoctrineConnectionExtension支持 Doctrine 连接配置
安装
使用方法
使用 AutoExtension
继承 AutoExtension 类:
配置文件结构
支持以下配置文件结构:
services.yaml(基础配置)
services_dev.yaml(开发环境)
services_test.yaml(测试环境)
使用 Doctrine 连接扩展
如果你的 Bundle 需要 Doctrine 连接配置,可以使用 AppendDoctrineConnectionExtension:
此扩展会:
- 复制现有的 Doctrine DBAL 配置
- 自动配置连接参数
- 启用 profiling 收集回溯信息
- 移除
use_savepoints配置
配置规则
允许的文件
只允许以下配置文件:
services.yamlservices_dev.yamlservices_test.yaml
其他 YAML 文件会触发 InvalidYamlConfigurationException 异常
配置要求
- 必须包含
_defaults:所有配置文件必须包含services._defaults配置 - 禁止使用
exclude:服务配置中禁止使用exclude配置 - 必须包含
services键:配置必须包含services顶级键
示例配置
❌ 错误配置(缺少 _defaults):
❌ 错误配置(使用 exclude):
✅ 正确配置:
异常
可能抛出的异常:
InvalidYamlConfigurationException:当 YAML 配置格式或内容不符合要求时
Bundle 目录结构示例
环境配置加载逻辑
- 开发环境 (dev):加载
services.yaml+services_dev.yaml - 测试环境 (test):加载
services.yaml+services_test.yaml - 生产环境 (prod):仅加载
services.yaml
最佳实践
- 明确配置:避免使用
exclude,明确定义每个服务 - 环境分离:将环境特定的服务放在对应的配置文件中
- 统一标准:所有配置文件都应包含
_defaults配置 - 配置验证:该扩展会自动验证配置文件的完整性和正确性
系统要求
- PHP 8.1+
- Symfony 7.3+
- Symfony Config 7.3+
- Symfony DependencyInjection 7.3+
- Symfony Yaml 7.3+
许可证
MIT License
作者
- tourze 创始作者
All versions of symfony-dependency-service-loader with dependencies
PHP Build Version
Package Version
Requires
composer-runtime-api Version
^2.0
symfony/config Version ^7.3
symfony/dependency-injection Version ^7.3
symfony/polyfill-php85 Version ^1.31
symfony/yaml Version ^7.3
symfony/config Version ^7.3
symfony/dependency-injection Version ^7.3
symfony/polyfill-php85 Version ^1.31
symfony/yaml Version ^7.3
The package tourze/symfony-dependency-service-loader contains the following files
Loading the files please wait ...