4 * This file is part of the Behat.
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\Behat\Translator\ServiceContainer;
13 use Behat\Testwork\Cli\ServiceContainer\CliExtension;
14 use Behat\Testwork\ServiceContainer\Extension;
15 use Behat\Testwork\ServiceContainer\ExtensionManager;
16 use Behat\Testwork\Translator\ServiceContainer\TranslatorExtension;
17 use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
18 use Symfony\Component\DependencyInjection\ContainerBuilder;
19 use Symfony\Component\DependencyInjection\Definition;
20 use Symfony\Component\DependencyInjection\Reference;
23 * Extends translator service with knowledge about gherkin translations.
25 * @author Konstantin Kudryashov <ever.zet@gmail.com>
27 final class GherkinTranslationsExtension implements Extension
32 public function getConfigKey()
34 return 'gherkin_translations';
40 public function initialize(ExtensionManager $extensionManager)
47 public function configure(ArrayNodeDefinition $builder)
54 public function load(ContainerBuilder $container, array $config)
56 $this->loadController($container);
62 public function process(ContainerBuilder $container)
67 * Loads translator controller.
69 * @param ContainerBuilder $container
71 private function loadController(ContainerBuilder $container)
73 $definition = new Definition('Behat\Behat\Translator\Cli\GherkinTranslationsController', array(
74 new Reference(TranslatorExtension::TRANSLATOR_ID)
76 $definition->addTag(CliExtension::CONTROLLER_TAG, array('priority' => 9999));
77 $container->setDefinition(CliExtension::CONTROLLER_TAG . '.gherkin_translations', $definition);