Skip to content

Commit 0bf5a16

Browse files
committed
enable autowiring for every discoverable service
1 parent 4c64cfe commit 0bf5a16

File tree

4 files changed

+48
-82
lines changed

4 files changed

+48
-82
lines changed

DependencyInjection/Compiler/DiscoveryPass.php

Lines changed: 0 additions & 63 deletions
This file was deleted.

HttplugBundle.php

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
namespace Http\HttplugBundle;
44

5-
use Http\HttplugBundle\DependencyInjection\Compiler\DiscoveryPass;
6-
use Symfony\Component\DependencyInjection\ContainerBuilder;
75
use Symfony\Component\HttpKernel\Bundle\Bundle;
86

97
/**
@@ -12,10 +10,4 @@
1210
*/
1311
class HttplugBundle extends Bundle
1412
{
15-
public function build(ContainerBuilder $container)
16-
{
17-
parent::build($container);
18-
19-
$container->addCompilerPass(new DiscoveryPass());
20-
}
2113
}

Resources/config/services.xml

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,30 @@
88
<tag name="kernel.event_subscriber"/>
99
</service>
1010

11-
<!-- enable autowiring compatibility in Symfony 3.3+ -->
11+
<!-- Discovery with autowiring support for Symfony 3.3+ -->
12+
<service id="httplug.message_factory.default" class="Http\Message\MessageFactory">
13+
<factory class="Http\Discovery\MessageFactoryDiscovery" method="find" />
14+
</service>
15+
<service id="Http\Message\MessageFactory" alias="httplug.message_factory" public="false" />
16+
17+
<service id="httplug.stream_factory.default" class="Http\Message\StreamFactory">
18+
<factory class="Http\Discovery\StreamFactoryDiscovery" method="find" />
19+
</service>
20+
<service id="Http\Message\StreamFactory" alias="httplug.stream_factory" public="false" />
21+
22+
<service id="httplug.uri_factory.default" class="Http\Message\UriFactory">
23+
<factory class="Http\Discovery\UriFactoryDiscovery" method="find" />
24+
</service>
25+
<service id="Http\Message\UriFactory" alias="httplug.uri_factory" public="false" />
26+
27+
<service id="httplug.async_client.default" class="Http\Client\HttpAsyncClient">
28+
<factory class="Http\Discovery\HttpAsyncClientDiscovery" method="find" />
29+
</service>
30+
<service id="Http\Client\HttpAsyncClient" alias="httplug.async_client.default" public="false" />
31+
32+
<service id="httplug.client.default" class="Http\Client\HttpClient">
33+
<factory class="Http\Discovery\HttpClientDiscovery" method="find" />
34+
</service>
1235
<service id="Http\Client\HttpClient" alias="httplug.client" public="false" />
1336

1437
<!-- ClientFactories -->

Tests/Unit/DependencyInjection/Compiler/DiscoveryPassTest.php renamed to Tests/Functional/DiscoveryTest.php

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,45 +2,58 @@
22

33
namespace Http\HttplugBundle\Tests\Unit\DependencyInjection\Compiler;
44

5+
use Http\Client\HttpAsyncClient;
56
use Http\Client\HttpClient;
6-
use Http\HttplugBundle\DependencyInjection\Compiler\DiscoveryPass;
7+
use Http\HttplugBundle\DependencyInjection\HttplugExtension;
78
use Http\Message\MessageFactory;
89
use Http\Message\StreamFactory;
910
use Http\Message\UriFactory;
10-
use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase;
11-
use Symfony\Component\DependencyInjection\ContainerBuilder;
11+
use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractExtensionTestCase;
1212
use Symfony\Component\DependencyInjection\Definition;
1313

1414
/**
1515
* @author Márk Sági-Kazár <mark.sagikazar@gmail.com>
1616
*/
17-
final class DiscoveryPassTest extends AbstractCompilerPassTestCase
17+
final class DiscoveryTest extends AbstractExtensionTestCase
1818
{
19-
protected function registerCompilerPass(ContainerBuilder $container)
19+
protected function setUp()
2020
{
21-
$container->addCompilerPass(new DiscoveryPass());
21+
parent::setUp();
22+
23+
$this->setParameter('kernel.debug', true);
24+
}
25+
26+
/**
27+
* {@inheritdoc}
28+
*/
29+
protected function getContainerExtensions()
30+
{
31+
return [
32+
new HttplugExtension(),
33+
];
2234
}
2335

2436
public function testDiscoveryFallbacks()
2537
{
26-
$this->compile();
38+
$this->load();
2739

2840
$this->assertContainerBuilderHasService('httplug.client.default', HttpClient::class);
2941
$this->assertContainerBuilderHasService('httplug.message_factory.default', MessageFactory::class);
3042
$this->assertContainerBuilderHasService('httplug.uri_factory.default', UriFactory::class);
3143
$this->assertContainerBuilderHasService('httplug.stream_factory.default', StreamFactory::class);
44+
$this->assertContainerBuilderHasService('httplug.async_client.default', HttpAsyncClient::class);
3245
}
3346

3447
public function testDiscoveryPartialFallbacks()
3548
{
49+
$this->load();
3650
$this->setDefinition('httplug.client.default', new Definition('Http\Adapter\Guzzle6\Client'));
3751

38-
$this->compile();
39-
4052
$this->assertContainerBuilderHasService('httplug.client.default', 'Http\Adapter\Guzzle6\Client');
4153
$this->assertContainerBuilderHasService('httplug.message_factory.default', MessageFactory::class);
4254
$this->assertContainerBuilderHasService('httplug.uri_factory.default', UriFactory::class);
4355
$this->assertContainerBuilderHasService('httplug.stream_factory.default', StreamFactory::class);
56+
$this->assertContainerBuilderHasService('httplug.async_client.default', HttpAsyncClient::class);
4457
}
4558

4659
public function testNoDiscoveryFallbacks()
@@ -49,7 +62,8 @@ public function testNoDiscoveryFallbacks()
4962
$this->setDefinition('httplug.message_factory.default', new Definition(MessageFactory::class));
5063
$this->setDefinition('httplug.uri_factory.default', new Definition(UriFactory::class));
5164
$this->setDefinition('httplug.stream_factory.default', new Definition(StreamFactory::class));
65+
$this->setDefinition('httplug.async_client.default', new Definition(HttpAsyncClient::class));
5266

53-
$this->compile();
67+
$this->load();
5468
}
5569
}

0 commit comments

Comments
 (0)