1.6 KiB
1.6 KiB
layout | title | date | tags | permalink | published | author | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
post | Symfony 2 Configuration – Array of associative arrays | 2012-12-20 12:03:23+00:00 |
|
/blog/2012/12/20/symfony-2-configuration-array-of-associative-arrays | true |
|
Few days ago I have struggled with a problem using Symfony2 configuration. I
wanted to add the following kind of configuration to config.yml
:
{% highlight yaml %} acme_demo: transitions: - { hc_cba: 180 } - { cba_hc: -1 } {% endhighlight %}
The problem was that the stuff under transitions
is dynamic, so those
hc_cba
and cba_hc
tags can be pretty much anything. After hitting many
errors, I came to the solution:
{% highlight php %}
children() ->arrayNode('state_machine') ->requiresAtLeastOneElement() ->beforeNormalization() ->ifArray() ->then(function($values) { $ret = array(); foreach ($values as $value) { foreach ($value as $transition => $time) { $ret[] = array('transition' => $transition, 'time' => e); } } return $ret; }) ->end() ->prototype('array') ->children() ->scalarNode('transition')->end() ->scalarNode('time')->end() ->end() ->end() ->end() ->end() ; {% endhighlight %}