我有一个由许多软件包组成的Symfony2(2.8.1)应用程序。 我想要一个关于'关于'显示每个捆绑包的版本的页面。 为此,我尝试使用这样的参数数组:
revision:
'bundle1':
version: 1.0.0
build: 42
'bundle2':
version: 1.2.0
build: 4242
等等。 如果我将所有内容都放在一个YAML文件中就可以了。 相反,我希望每个包定义其修订版。就像是: bundle1的参数文件:
revision:
'bundle1':
version: 1.0.0
build: 42
和bundle2的参数文件:
revision:
'bundle2':
version: 1.2.0
build: 4242
如果我这样做,修订版数组仅填充最后包含的yaml文件的值。 有没有办法添加'在不同的yaml文件中定义的参数数组的条目? BR 斯特凡诺
答案 0 :(得分:0)
我改变了方法并解决了问题。 我只是在每个包的config文件夹中创建一个Yaml文件,而不是将修订信息添加到配置中。 然后我将yaml文件内容加载到一个数组中,以便在about页面中使用。
代码类似于:
# first place to check is app config folder
$kernel_root=$this->get('kernel')->getRootDir();
$toLocate[]=$kernel_root.'/config';
# then get config folder for each active bundle
$kernel = $this->get('kernel');
$configDirectories=$this->getParameter('kernel.bundles');
foreach ($configDirectories as $bundleName => $configDirectory) {
$toLocate[]= $kernel->locateResource('@'.$bundleName).'Resources/config';
}
# now get array of revision files
$locator = new FileLocator($toLocate);
$yamlRevFiles = $locator->locate('revision.yml', null, false);
# and finally create array of date read from revision files
$revs=array();
foreach ($yamlRevFiles as $yamlRevFile) {
$revs[]=Yaml::parse($yamlRevFile);
}