diff --git a/.travis.yml b/.travis.yml index 6fdb380..048f3ea 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,9 @@ language: php php: -# - 7.4 - 7.3 - 7.2 - 7.1 -# - 7.0 -# - 5.6 before_script: - phpenv rehash diff --git a/DependencyInjection/CompilerPass/InjectComparators.php b/DependencyInjection/CompilerPass/InjectComparators.php deleted file mode 100644 index fe575b3..0000000 --- a/DependencyInjection/CompilerPass/InjectComparators.php +++ /dev/null @@ -1,24 +0,0 @@ -findTaggedServiceIds('maria.matcher_context'); -// foreach ($taggedMcServiceIds as $mcServiceId => $mcTags) { -// $mcServiceDef = $container->getDefinition($mcServiceId); -// -// } - - } -} \ No newline at end of file diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index d71964b..d69feca 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -44,28 +44,9 @@ private function buildScenarios(ArrayNodeDefinition $node) ->canBeEnabled() ->children() ->scalarNode('trigger')->isRequired()->end() - ->arrayNode('handler') - ->beforeNormalization() - ->ifString() - ->then(function ($v) { - return ['reference' => $v, 'method' => 'onAction', 'serialize' => false]; - }) - ->end() - ->addDefaultsIfNotSet() - ->children() - ->scalarNode('reference')->isRequired()->end() - ->scalarNode('method') - ->isRequired() - ->defaultValue('onAction') - ->end() - ->booleanNode('serialize') - ->isRequired() - ->defaultValue(false) - ->end() - ->end() - ->end() + ->append($this->buildHandler()) + ->append($this->buildRules()) ->end() - ->append($this->buildRules()) ->end(); } @@ -75,7 +56,7 @@ private function buildRules() if (method_exists(TreeBuilder::class, 'getRootNode')) { $rootNode = $treeBuilder->getRootNode(); } else { - $rootNode = $treeBuilder->root($this->name); + $rootNode = $treeBuilder->root('rules'); } $rootNode->fixXmlConfig('rule') @@ -85,4 +66,35 @@ private function buildRules() //TODO: Validation need return $rootNode; } + + private function buildHandler() + { + $treeBuilder = new TreeBuilder('handler'); + if (method_exists(TreeBuilder::class, 'getRootNode')) { + $node = $treeBuilder->getRootNode(); + } else { + $node = $treeBuilder->root('handler'); + } + + $node->beforeNormalization() + ->ifString() + ->then(function ($v) { + return ['reference' => $v, 'method' => 'onAction', 'serialize' => false]; + }) + ->end() + ->addDefaultsIfNotSet() + ->children() + ->scalarNode('reference')->isRequired()->end() + ->scalarNode('method') + ->isRequired() + ->defaultValue('onAction') + ->end() + ->booleanNode('serialize') + ->isRequired() + ->defaultValue(false) + ->end() + ->end(); + + return $node; + } } \ No newline at end of file diff --git a/Tests/DependencyInjection/MariaExtensionTest.php b/Tests/DependencyInjection/MariaExtensionTest.php index 6280386..0168fa9 100644 --- a/Tests/DependencyInjection/MariaExtensionTest.php +++ b/Tests/DependencyInjection/MariaExtensionTest.php @@ -1,7 +1,6 @@