root('jhg_nexmo'); $rootNode ->children() ->scalarNode('api_key') ->isRequired() ->end() ->scalarNode('api_secret') ->isRequired() ->end() ->scalarNode('from_name') ->validate() ->ifTrue(function ($s) { return (strlen($s)>11 || strlen($s)<2) && preg_match('/^[0-9a-z]{11}$/i', $s) !== 1; }) ->thenInvalid('Invalid from_name, only alphanumeric characters are allowed') ->end() ->end() ->booleanNode('disable_delivery') ->defaultFalse() ->end() ->end() ; return $treeBuilder; } }