Skip to content

Commit

Permalink
Simplify service definitions
Browse files Browse the repository at this point in the history
  • Loading branch information
jakzal committed Apr 2, 2016
1 parent 0df2720 commit ea5fd14
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 28 deletions.
13 changes: 6 additions & 7 deletions src/ServiceContainer/Plugin/ArgumentResolverPlugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\Reference;
use Zalas\Behat\RestExtension\Context\Argument\HttpClientArgumentResolver;
use Zalas\Behat\RestExtension\Context\Argument\MessageFactoryArgumentResolver;
Expand Down Expand Up @@ -34,18 +33,18 @@ public function configure(ArrayNodeDefinition $builder)
*/
private function registerHttpClientFactoryArgumentResolver(ContainerBuilder $container)
{
$definition = new Definition(HttpClientArgumentResolver::class, [new Reference('rest.http_client')]);
$definition->addTag('context.argument_resolver');
$container->setDefinition('rest.argument_resolver.http_client', $definition);
$container->register('rest.argument_resolver.http_client', HttpClientArgumentResolver::class)
->addArgument(new Reference('rest.http_client'))
->addTag('context.argument_resolver');
}

/**
* @param ContainerBuilder $container
*/
private function registerMessageFactoryArgumentResolver(ContainerBuilder $container)
{
$definition = new Definition(MessageFactoryArgumentResolver::class, [new Reference('rest.message_factory')]);
$definition->addTag('context.argument_resolver');
$container->setDefinition('rest.argument_resolver.message_factory', $definition);
$container->register('rest.argument_resolver.message_factory', MessageFactoryArgumentResolver::class)
->addArgument(new Reference('rest.message_factory'))
->addTag('context.argument_resolver');
}
}
10 changes: 3 additions & 7 deletions src/ServiceContainer/Plugin/BuzzPlugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\Reference;
use Zalas\Behat\RestExtension\HttpClient\BuzzHttpClientFactory;
use Zalas\Behat\RestExtension\ServiceContainer\Plugin;
Expand All @@ -27,12 +26,9 @@ public function load(ContainerBuilder $container, array $config)
throw new \RuntimeException('To use the Buzz http client you need to install the "php-http/buzz-adapter" package.');
}

$definition = new Definition(
BuzzHttpClientFactory::class,
[new Reference('rest.message_factory', ContainerInterface::NULL_ON_INVALID_REFERENCE)]
);
$definition->addTag('rest.http_client_factory');
$container->setDefinition('rest.http_client_factory.buzz', $definition);
$container->register('rest.http_client_factory.buzz', BuzzHttpClientFactory::class)
->addArgument(new Reference('rest.message_factory', ContainerInterface::NULL_ON_INVALID_REFERENCE))
->addTag('rest.http_client_factory');
}

/**
Expand Down
6 changes: 2 additions & 4 deletions src/ServiceContainer/Plugin/DiscoveryPlugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
use Http\Discovery\HttpClientDiscovery;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;
use Zalas\Behat\RestExtension\HttpClient\DiscoveryHttpClientFactory;
use Zalas\Behat\RestExtension\ServiceContainer\Plugin;

Expand All @@ -21,9 +20,8 @@ public function load(ContainerBuilder $container, array $config)
return;
}

$definition = new Definition(DiscoveryHttpClientFactory::class);
$definition->addTag('rest.http_client_factory');
$container->setDefinition('rest.http_client_factory.discovery', $definition);
$container->register('rest.http_client_factory.discovery', DiscoveryHttpClientFactory::class)
->addTag('rest.http_client_factory');
}

/**
Expand Down
8 changes: 2 additions & 6 deletions src/ServiceContainer/Plugin/GuzzleMessageFactoryPlugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,22 @@
use Http\Message\MessageFactory\GuzzleMessageFactory;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;
use Zalas\Behat\RestExtension\ServiceContainer\Plugin;

final class GuzzleMessageFactoryPlugin implements Plugin
{
/**
* @param ContainerBuilder $container
* @param array $config
*
* @return Definition
*/
public function load(ContainerBuilder $container, array $config)
{
if (!class_exists(Request::class)) {
return;
}

$definition = new Definition(GuzzleMessageFactory::class);
$definition->addTag('rest.message_factory');
$container->setDefinition('rest.message_factory.guzzle', $definition);
$container->register('rest.message_factory.guzzle', GuzzleMessageFactory::class)
->addTag('rest.message_factory');
}

/**
Expand Down
7 changes: 3 additions & 4 deletions src/ServiceContainer/Plugin/GuzzlePlugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
use Http\Adapter\Guzzle6\Client as GuzzleAdapter;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;
use Zalas\Behat\RestExtension\HttpClient\GuzzleHttpClientFactory;
use Zalas\Behat\RestExtension\ServiceContainer\Plugin;

Expand All @@ -25,9 +24,9 @@ public function load(ContainerBuilder $container, array $config)
throw new \RuntimeException('To use the Guzzle http client you need to install the "php-http/guzzle6-adapter" package.');
}

$definition = new Definition(GuzzleHttpClientFactory::class, [$config['guzzle']['config']]);
$definition->addTag('rest.http_client_factory');
$container->setDefinition('rest.http_client_factory.guzzle', $definition);
$container->register('rest.http_client_factory.guzzle', GuzzleHttpClientFactory::class)
->addArgument($config['guzzle']['config'])
->addTag('rest.http_client_factory');
}

/**
Expand Down

0 comments on commit ea5fd14

Please sign in to comment.