ldl-framework / container-builder
将不同目录下的不同服务文件合并
dev-master
2022-06-02 11:54 UTC
Requires
- php: >=7.3
- ext-json: *
- ldl-framework/file-finder-adapter-local: dev-master
- symfony/config: ^5.1
- symfony/console: ~5.0
- symfony/dependency-injection: ^5.1
- symfony/yaml: ^5.1
This package is auto-updated.
Last update: 2024-08-30 01:20:28 UTC
README
从不同目录中找到的服务文件集合构建一个Symfony容器。服务文件本身可以写成不同的格式(yml, xml, ini 或 php)
此构建器将所有这些文件编译成一种格式(yml, xml, ini 或 php)
在一个目录中找到所有的 services.xml, services.ini, services.yml, services.php 文件,并将结果写入 out.xml
php bin/build container:build out.xml /path/to/your/project
示例 2,找到所有的 services.xml,加载第一个 custom1.xml 和 custom2.xml
php bin/build container:build out.xml xml -d /path/to/your/project -l services.xml -f path/to/custom1.xml, /path/to/custom2.xml
示例 2,找到所有的 services.xml,通过模式匹配编译器过程
php bin/build container:build out.xml xml -d /path/to/your/project -l services.xml -p MyCompilerpass.php
编译器过程
重要:由于我们无法处理编译器过程构造函数中传递的任何内容,你必须扩展每个编译器过程到 LDLAbstractCompilerPass
控制编译器过程优先级和类型
为了使用编译器过程优先级和类型,使你的编译器过程扩展到 LDLAbstractCompilerPass
示例
<?php use LDL\DependencyInjection\CompilerPass\LDLAbstractCompilerPass; use Symfony\Component\DependencyInjection\Compiler\PassConfig; use Symfony\Component\DependencyInjection\ContainerBuilder; class MyCompilerPass extends LDLAbstractCompilerPass { public function getPriority() : int { return 0; } public function getType() : string { return PassConfig::TYPE_OPTIMIZE; } public function process(ContainerBuilder $container) { // Implement process() method. } }
待办事项
- 将排除的文件和目录添加到命令