Skip to content

Instantly share code, notes, and snippets.

@tooky
Last active December 16, 2016 18:17
Show Gist options
  • Select an option

  • Save tooky/b9a3b5eca95b640fca0c7ae59c7ba02a to your computer and use it in GitHub Desktop.

Select an option

Save tooky/b9a3b5eca95b640fca0c7ae59c7ba02a to your computer and use it in GitHub Desktop.

Revisions

  1. tooky revised this gist Dec 16, 2016. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion ShoutyExtension.php
    Original file line number Diff line number Diff line change
    @@ -49,7 +49,7 @@ class ShoutyExtension implements Extension
    {
    public function getConfigKey()
    {
    return 'custom_extension';
    return 'shouty_initializer';
    }
    public function load(ContainerBuilder $container, array $config)
    {
  2. tooky created this gist Dec 16, 2016.
    63 changes: 63 additions & 0 deletions ShoutyExtension.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,63 @@
    <?php

    use Shouty\Shouty;
    use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
    use Symfony\Component\DependencyInjection\ContainerBuilder;
    use Behat\Testwork\ServiceContainer\ExtensionManager;
    use Behat\Testwork\ServiceContainer\Extension;
    use Behat\Behat\Context\ServiceContainer\ContextExtension;
    use Behat\Behat\Context\Initializer\ContextInitializer;
    use Behat\Behat\Context\Context;

    class ShoutyHelper
    {
    private $shouty;

    public function getShouty()
    {
    if(!isset($this->shouty))
    $this->shouty = new Shouty();
    return $this->shouty;
    }

    public function clear() {
    unset($this->shouty);
    }
    }

    class ShoutyInitializer implements ContextInitializer
    {
    private $shoutyHelper;

    public function __construct()
    {
    $this->shoutyHelper = new ShoutyHelper();
    }

    public function supportsContext(Context $context)
    {
    return true;
    }

    public function initializeContext(Context $context)
    {
    $context->setShoutyHelper($this->shoutyHelper);
    }
    }

    class ShoutyExtension implements Extension
    {
    public function getConfigKey()
    {
    return 'custom_extension';
    }
    public function load(ContainerBuilder $container, array $config)
    {
    $definition = $container->register('shouty_initializer', 'ShoutyInitializer');
    $definition->addTag(ContextExtension::INITIALIZER_TAG);
    }
    public function configure(ArrayNodeDefinition $builder) {}
    public function initialize(ExtensionManager $extensionManager) {}
    public function process(ContainerBuilder $container) {}
    }
    return new ShoutyExtension;