/**
  * Create a configuration node to define the steps of a process.
  *
  * @return ArrayNodeDefinition
  */
 private function createStepsNodeDefinition()
 {
     $stepsNode = new ArrayNodeDefinition('steps');
     $stepsNode->defaultValue(array())->useAttributeAsKey('name')->prototype('array')->addDefaultsIfNotSet()->children()->scalarNode('label')->defaultValue('')->end()->arrayNode('roles')->prototype('scalar')->end()->end()->arrayNode('model_status')->validate()->ifTrue(function ($value) {
         return is_array($value) && count($value) < 2;
     })->thenInvalid('You must specify an array with [ method, constant ]')->ifTrue(function ($value) {
         return !defined($value[1]);
     })->thenInvalid('You must specify a valid constant name as second parameter')->end()->prototype('scalar')->end()->end()->scalarNode('on_invalid')->defaultNull()->end()->end()->append($this->createNextStatesNodeDefinition())->end();
     return $stepsNode;
 }
Beispiel #2
0
 /**
  * {@inheritdoc}
  */
 public function configure(ArrayNodeDefinition $builder)
 {
     $builder->defaultValue(array('default' => array('enabled' => true, 'type' => null, 'settings' => array())))->treatNullLike(array())->treatFalseLike(array())->useAttributeAsKey('name')->prototype('array')->beforeNormalization()->ifTrue(function ($suite) {
         return is_array($suite) && count($suite);
     })->then(function ($suite) {
         $suite['settings'] = isset($suite['settings']) ? $suite['settings'] : array();
         foreach ($suite as $key => $val) {
             $suiteKeys = array('enabled', 'type', 'settings');
             if (!in_array($key, $suiteKeys)) {
                 $suite['settings'][$key] = $val;
                 unset($suite[$key]);
             }
         }
         return $suite;
     })->end()->normalizeKeys(false)->addDefaultsIfNotSet()->treatTrueLike(array('enabled' => true))->treatNullLike(array('enabled' => true))->treatFalseLike(array('enabled' => false))->children()->booleanNode('enabled')->info('Enables/disables suite')->defaultTrue()->end()->scalarNode('type')->info('Specifies suite type')->defaultValue(null)->end()->arrayNode('settings')->info('Specifies suite extra settings')->defaultValue(array())->useAttributeAsKey('name')->prototype('variable')->end()->end()->end()->end();
 }
 /**
  * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidDefinitionException
  */
 public function testPrototypeNodesCantHaveADefaultValueWhenUsingDefaultChildren()
 {
     $node = new ArrayNodeDefinition('root');
     $node->defaultValue(array())->addDefaultChildrenIfNoneSet('foo')->prototype('array');
     $node->getNode();
 }
Beispiel #4
0
 /**
  * {@inheritdoc}
  */
 public function configure(ArrayNodeDefinition $builder)
 {
     $builder->defaultValue(array($this->defaultFormatter => array('enabled' => true)))->useAttributeAsKey('name')->prototype('array')->beforeNormalization()->ifTrue(function ($a) {
         return is_array($a) && !isset($a['enabled']);
     })->then(function ($a) {
         return array_merge($a, array('enabled' => true));
     })->end()->useAttributeAsKey('name')->treatTrueLike(array('enabled' => true))->treatNullLike(array('enabled' => true))->treatFalseLike(array('enabled' => false))->prototype('variable')->end()->end();
 }
 /**
  * @return ArrayNodeDefinition
  */
 private function getSubResourcesNode()
 {
     $node = new ArrayNodeDefinition('sub_resources');
     $node->defaultValue([])->prototype('array')->children()->scalarNode('assoc_parent')->end()->scalarNode('assoc_sub')->end()->end()->end();
     return $node;
 }