Skip to content

Commit 4f3337b

Browse files
committed
Require discovery 0.9 and do not handle Puli.
1 parent 123428f commit 4f3337b

File tree

8 files changed

+24
-306
lines changed

8 files changed

+24
-306
lines changed

DependencyInjection/Compiler/DiscoveryPass.php

Lines changed: 18 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
namespace Http\HttplugBundle\DependencyInjection\Compiler;
44

55
use Http\Client\HttpClient;
6+
use Http\Discovery\HttpClientDiscovery;
7+
use Http\Discovery\MessageFactoryDiscovery;
8+
use Http\Discovery\StreamFactoryDiscovery;
9+
use Http\Discovery\UriFactoryDiscovery;
610
use Http\HttplugBundle\HttplugFactory;
711
use Http\Message\MessageFactory;
812
use Http\Message\StreamFactory;
@@ -31,55 +35,32 @@ final class DiscoveryPass implements CompilerPassInterface
3135
'stream_factory' => StreamFactory::class,
3236
];
3337

38+
/**
39+
* Factories by type
40+
*
41+
* @var array
42+
*/
43+
private $factoryClasses = [
44+
'client' => HttpClientDiscovery::class,
45+
'message_factory' => MessageFactoryDiscovery::class,
46+
'uri_factory' => UriFactoryDiscovery::class,
47+
'stream_factory' => StreamFactoryDiscovery::class,
48+
];
49+
3450
/**
3551
* {@inheritdoc}
3652
*/
3753
public function process(ContainerBuilder $container)
3854
{
39-
$useDiscovery = false;
40-
4155
foreach ($this->services as $service => $class) {
4256
$serviceId = sprintf('httplug.%s.default', $service);
4357

4458
if (false === $container->has($serviceId)) {
45-
// Register and create factory for the first time
46-
if (false === $useDiscovery) {
47-
$this->registerFactory($container);
48-
49-
$factory = [
50-
new Reference('httplug.factory'),
51-
'find',
52-
];
53-
54-
$useDiscovery = true;
55-
}
56-
59+
// Register and create factory for service
5760
$definition = $container->register($serviceId, $class);
58-
59-
$definition->setFactory($factory);
61+
$definition->setFactory([$this->factoryClasses[$service], 'find']);
6062
$definition->addArgument($class);
6163
}
6264
}
6365
}
64-
65-
/**
66-
* @param ContainerBuilder $container
67-
*
68-
* @throws RuntimeException
69-
*/
70-
private function registerFactory(ContainerBuilder $container)
71-
{
72-
if (false === $container->has('puli.discovery')) {
73-
throw new RuntimeException(
74-
'You need to install puli/symfony-bundle or add configuration at httplug.classes in order to use this bundle. Refer to http://docs.php-http.org/en/latest/integrations/symfony-bundle.html#discovery-of-factory-classes'
75-
);
76-
}
77-
78-
$definition = $container->register('httplug.factory', HttplugFactory::class);
79-
80-
$definition
81-
->addArgument(new Reference('puli.discovery'))
82-
->setPublic(false)
83-
;
84-
}
8566
}

HttplugFactory.php

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

Tests/Resources/app/AppKernel.php

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,7 @@ public function registerBundles()
1414
new \Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
1515
new \Http\HttplugBundle\HttplugBundle(),
1616
];
17-
18-
if (false === defined('HHVM_VERSION')) {
19-
$bundles[] = new \Puli\SymfonyBundle\PuliBundle();
20-
}
21-
17+
2218
return $bundles;
2319
}
2420

Tests/Unit/DependencyInjection/Compiler/DiscoveryPassTest.php

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,8 @@ protected function registerCompilerPass(ContainerBuilder $container)
2424

2525
public function testDiscoveryFallbacks()
2626
{
27-
$this->setDefinition('puli.discovery', new Definition('Puli\Discovery\Api\Discovery'));
28-
2927
$this->compile();
3028

31-
$this->assertContainerBuilderHasService('httplug.factory', HttplugFactory::class);
32-
3329
$this->assertContainerBuilderHasService('httplug.client.default', HttpClient::class);
3430
$this->assertContainerBuilderHasService('httplug.message_factory.default', MessageFactory::class);
3531
$this->assertContainerBuilderHasService('httplug.uri_factory.default', UriFactory::class);
@@ -38,13 +34,10 @@ public function testDiscoveryFallbacks()
3834

3935
public function testDiscoveryPartialFallbacks()
4036
{
41-
$this->setDefinition('puli.discovery', new Definition('Puli\Discovery\Api\Discovery'));
4237
$this->setDefinition('httplug.client.default', new Definition('Http\Adapter\Guzzle6\Client'));
4338

4439
$this->compile();
4540

46-
$this->assertContainerBuilderHasService('httplug.factory', HttplugFactory::class);
47-
4841
$this->assertContainerBuilderHasService('httplug.client.default', 'Http\Adapter\Guzzle6\Client');
4942
$this->assertContainerBuilderHasService('httplug.message_factory.default', MessageFactory::class);
5043
$this->assertContainerBuilderHasService('httplug.uri_factory.default', UriFactory::class);
@@ -59,18 +52,5 @@ public function testNoDiscoveryFallbacks()
5952
$this->setDefinition('httplug.stream_factory.default', new Definition(StreamFactory::class));
6053

6154
$this->compile();
62-
63-
$this->assertContainerBuilderNotHasService('httplug.factory');
64-
}
65-
66-
/**
67-
* Overridden test as we have dependencies in this compiler pass.
68-
*
69-
* @test
70-
* @expectedException \RuntimeException
71-
*/
72-
public function compilation_should_not_fail_with_empty_container()
73-
{
74-
$this->compile();
7555
}
7656
}

Tests/Unit/HttplugFactoryTest.php

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

Tests/autoload.php

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

0 commit comments

Comments
 (0)