4
A
回答
4
是的,种:
<?php
namespace Acme\DemoBundle\DependencyInjection;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
class CompilerPass implements CompilerPassInterface
{
public function process(ContainerBuilder $container)
{
$configs = $container->getExtensionConfig('acme_demo');
}
}
从我可以看到$configs
是未合并配置和默认值的阵列中不包括(由配置TreeBuilder作为定义的值)。
2
我意识到这是一个老帖子,但我一直在寻找同样的信息,并最终发现,这个工程的一个参数:
$cfgVal = $container
->getParameterBag()
->resolveValue($container->getParameter('param_name'));
当然这是可能在原始帖子后添加了此功能。
+0
是的,我认为这是新的。太糟糕了,我不记得为什么我首先需要这个。 – Jens 2015-07-10 00:09:32
+0
真棒,这真的救了我! – 2015-11-28 23:13:39
4
只是为了完整起见,以@彼得的回答是:getExtensionConfig
返回阵列应与相应的Configuration
进行处理,以能够访问默认值阵列的。
<?php
namespace Acme\DemoBundle\DependencyInjection;
use Symfony\Component\Config\Definition\ConfigurationInterface;
use Symfony\Component\Config\Definition\Processor;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
class CompilerPass implements CompilerPassInterface
{
public function process(ContainerBuilder $container)
{
$configs = $container->getExtensionConfig('acme_demo');
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
/// You can safely work with $config now
}
private function processConfiguration(ConfigurationInterface $configuration, array $configs)
{
$processor = new Processor();
return $processor->processConfiguration($configuration, $configs);
}
}
相关问题
- 1. 我可以制作gotest传递编译器标志吗?
- 2. 我可以在ActionScript 2/3中访问编译标志吗?
- 3. 我可以编程访问App配置中设置的错误级别吗?
- 4. 我可以将编译常量传递给项目引用吗?
- 5. 我可以访问模板中的AngularJS模块配置值吗?
- 6. 我可以配置VS.NET 2008 IDE以使用gcc作为编译器吗?
- 7. 我可以配置pydev自动编译cython文件吗?
- 8. 我可以将其他组件传递到Castle Windsor配置吗?
- 9. 我可以在我的自定义匹配器中访问原始的select2匹配器吗?
- 10. 我可以在HTTP标头中传递自定义数据吗?
- 11. 我可以通过命令行将预处理器定义传递给资源编译器吗?
- 12. 可以以编程方式访问MANIFEST.MF中定义的值吗?
- 13. Crystal 2008 - 我可以在运行时以编程方式访问SQL语句吗?
- 14. 我可以在1.6编译器中使用jdk 7吗?
- 15. 我可以访问在玉模板中定义的变量吗?
- 16. 我可以将DataTable传递给我的SQL语句(INSERT)吗?
- 17. 我可以检查预编译中定义的宏吗?
- 18. 我可以在java中更改由编译器设置的默认超类吗?
- 19. 我可以以编程方式设置Mercurial配置选项吗?
- 20. Maven - 我可以在配置文件定义中引用配置文件ID吗?
- 21. 如何使用symfony2访问控制器中的语义配置?
- 22. 我可以将Active Directory中的值传递给Outlook配置文件吗?
- 23. 我可以在顶点着色器中访问gl_PointCoord吗?
- 24. 我可以在控制器中访问JSON模型的值吗?
- 25. 我可以在Ajax.AjaxMethod中访问asp.net服务器控件吗?
- 26. 我可以让PyInstaller优化编译吗?
- 27. 可以将Sass或Less配置为只编译某些类吗?
- 28. 我们可以通过巡航控件编译SQL语句吗
- 29. 我可以在MobileFirst 8适配器中设置AuthenticatedUser吗?
- 30. 我可以在Android模拟器中配置Gmail吗?
我想这是尽善尽美 – Jens 2013-07-22 16:08:52
据我可以看到这只适用的配置config.yml explicetly设置。什么是默认的配置值?有没有其他方式访问它们?我想这只有在'acme_demo'已经被编译后才有可能。 – acme 2013-09-12 09:34:26