friends-of-behat/service-container-extension

Allows to declare own services inside Behat container without writing an extension.

v1.0.1 2018-02-13 17:50 UTC

README

Allows to declare own services inside Behat container without writing an extension.

Usage

  1. Install it:

    $ composer require friends-of-behat/service-container-extension --dev
  2. Enable this extension and configure Behat to use it:

    # behat.yml
    default:
        # ...
        extensions:
            FriendsOfBehat\ServiceContainerExtension:
                imports:
                    - "features/bootstrap/config/services.xml"
                    - "features/bootstrap/config/services.yml"
                    - "features/bootstrap/config/services.php"
  3. Write services files definitions:

    <!-- features/bootstrap/config/services.xml -->
    <?xml version="1.0" encoding="UTF-8" ?>
    <container xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://symfony.com/schema/dic/services">
        <services>
            <service id="acme.my_service" class="Acme\MyService" />
        </services>
    </container>
    # features/bootstrap/config/services.yml
    services:
        acme.my_service:
            class: Acme\MyService
    // features/bootstrap/config/services.php
    use Symfony\Component\DependencyInjection\Definition;
    
    $container->setDefinition('acme.my_service', new Definition(\Acme\MyService::class));