Symfony:动态配置文件加载

Symfony: Dynamic configuration file loading

这是上下文:

这听起来可能微不足道,但我正在寻找的是加载这些特定 YAML 文件的正确方法。


据我目前的了解,使用扩展 class 是不可能的,因为它不了解当前用户。

使用自定义服务来管理这些配置而不是依赖 Symfony 的参数似乎更合适,但我找不到如何实现验证(使用配置 class)和缓存。

非常感谢任何帮助,感谢您的投入!

看看http://symfony.com/doc/current/cookbook/configuration/configuration_organization.html as well as http://symfony.com/doc/current/cookbook/configuration/environments.html。如果这不是正确答案,您必须更具体地说明 company.yml 配置包含的内容。

使用 Symfony2 的 Yaml、处理器和配置组件应该可以满足您的需要。

定义你的 "CompanyConfiguration" class 就像你在 DependencyInjection 案例中一样 创建一个新的 "CompanyLoader" 服务

use Symfony\Component\Yaml\Yaml;
use Symfony\Component\Config\Definition\Processor;

$companies = Yaml::parse('company.yml');
$processor = new Processor();
$configuration = new CompanyConfiguration();
$processor->processConfiguration($configuration, $companies);

现在您应该可以使用您的公司数组来执行您想要的操作了