4 * This file is part of the Behat Testwork.
5 * (c) Konstantin Kudryashov <ever.zet@gmail.com>
7 * For the full copyright and license information, please view the LICENSE
8 * file that was distributed with this source code.
11 namespace Behat\Testwork\Argument\ServiceContainer;
13 use Behat\Testwork\ServiceContainer\Extension;
14 use Behat\Testwork\ServiceContainer\ExtensionManager;
15 use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
16 use Symfony\Component\DependencyInjection\ContainerBuilder;
17 use Symfony\Component\DependencyInjection\Definition;
18 use Symfony\Component\DependencyInjection\Reference;
21 * Enables argument organisers for Testwork.
23 * @author Konstantin Kudryashov <ever.zet@gmail.com>
25 final class ArgumentExtension implements Extension
30 const MIXED_ARGUMENT_ORGANISER_ID = 'argument.mixed_organiser';
31 const PREG_MATCH_ARGUMENT_ORGANISER_ID = 'argument.preg_match_organiser';
32 const CONSTRUCTOR_ARGUMENT_ORGANISER_ID = 'argument.constructor_organiser';
37 public function getConfigKey()
45 public function initialize(ExtensionManager $extensionManager)
52 public function configure(ArrayNodeDefinition $builder)
59 public function load(ContainerBuilder $container, array $config)
61 $definition = new Definition('Behat\Testwork\Argument\MixedArgumentOrganiser');
62 $container->setDefinition(self::MIXED_ARGUMENT_ORGANISER_ID, $definition);
64 $definition = new Definition('Behat\Testwork\Argument\PregMatchArgumentOrganiser', array(
65 new Reference(self::MIXED_ARGUMENT_ORGANISER_ID)
67 $container->setDefinition(self::PREG_MATCH_ARGUMENT_ORGANISER_ID, $definition);
69 $definition = new Definition('Behat\Testwork\Argument\ConstructorArgumentOrganiser', array(
70 new Reference(self::MIXED_ARGUMENT_ORGANISER_ID)
72 $container->setDefinition(self::CONSTRUCTOR_ARGUMENT_ORGANISER_ID, $definition);
78 public function process(ContainerBuilder $container)