root('cl_chill_person'); $rootNode ->canBeDisabled() ->children() ->arrayNode('search') ->canBeDisabled() ->children() ->booleanNode('use_double_metaphone') ->defaultFalse() ->end() ->booleanNode('use_trigrams') ->defaultFalse() ->end() ->end() ->end() ->arrayNode('validation') ->canBeDisabled() ->children() ->scalarNode('birthdate_not_after') ->info($this->validationBirthdateNotAfterInfos) ->defaultValue('P1D') ->validate() ->ifTrue(function($period) { try { $interval = new \DateInterval($period); } catch (\Exception $ex) { return true; } return false; }) ->thenInvalid('Invalid period for birthdate validation : "%s" ' . 'The parameter should match duration as defined by ISO8601 : ' . 'https://en.wikipedia.org/wiki/ISO_8601#Durations') ->end() ->end() ->end(); return $treeBuilder; } }