Skip to content

Commit f14f589

Browse files
committed
PHP-HTTP: remove references to factories
1 parent fc39735 commit f14f589

File tree

12 files changed

+50
-90
lines changed

12 files changed

+50
-90
lines changed

composer.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@
3232
"php-http/httplug": "^2.0",
3333
"php-http/logger-plugin": "^1.1",
3434
"php-http/message": "^1.9",
35-
"php-http/message-factory": "^1.0.2",
3635
"php-http/stopwatch-plugin": "^1.2",
36+
"psr/http-factory-implementation": "^1.0",
3737
"psr/http-message": "^1.0 || ^2.0",
3838
"symfony/config": "^4.4 || ^5.0 || ^6.0",
3939
"symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0",
@@ -75,7 +75,8 @@
7575
"config": {
7676
"sort-packages": true,
7777
"allow-plugins": {
78-
"symfony/flex": true
78+
"symfony/flex": true,
79+
"php-http/discovery": true
7980
}
8081
},
8182
"autoload": {

src/DependencyInjection/Configuration.php

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,10 @@ public function getConfigTreeBuilder(): TreeBuilder
6666
->validate()
6767
->ifTrue(function ($v) {
6868
return !empty($v['classes']['client'])
69-
|| !empty($v['classes']['message_factory'])
70-
|| !empty($v['classes']['uri_factory'])
71-
|| !empty($v['classes']['stream_factory']);
69+
|| !empty($v['classes']['psr17_request_factory'])
70+
|| !empty($v['classes']['psr17_response_factory'])
71+
|| !empty($v['classes']['psr17_uri_factory'])
72+
|| !empty($v['classes']['psr17_stream_factory']);
7273
})
7374
->then(function ($v) {
7475
foreach ($v['classes'] as $key => $class) {
@@ -119,9 +120,6 @@ public function getConfigTreeBuilder(): TreeBuilder
119120
->children()
120121
->scalarNode('client')->defaultValue('httplug.client.default')->end()
121122
->scalarNode('psr18_client')->defaultValue('httplug.psr18_client.default')->end()
122-
->scalarNode('message_factory')->defaultValue('httplug.message_factory.default')->end()
123-
->scalarNode('uri_factory')->defaultValue('httplug.uri_factory.default')->end()
124-
->scalarNode('stream_factory')->defaultValue('httplug.stream_factory.default')->end()
125123
->scalarNode('psr17_request_factory')->defaultValue('httplug.psr17_request_factory.default')->end()
126124
->scalarNode('psr17_response_factory')->defaultValue('httplug.psr17_response_factory.default')->end()
127125
->scalarNode('psr17_stream_factory')->defaultValue('httplug.psr17_stream_factory.default')->end()
@@ -136,9 +134,6 @@ public function getConfigTreeBuilder(): TreeBuilder
136134
->children()
137135
->scalarNode('client')->defaultNull()->end()
138136
->scalarNode('psr18_client')->defaultNull()->end()
139-
->scalarNode('message_factory')->defaultNull()->end()
140-
->scalarNode('uri_factory')->defaultNull()->end()
141-
->scalarNode('stream_factory')->defaultNull()->end()
142137
->scalarNode('psr17_request_factory')->defaultNull()->end()
143138
->scalarNode('psr17_response_factory')->defaultNull()->end()
144139
->scalarNode('psr17_stream_factory')->defaultNull()->end()
@@ -857,7 +852,7 @@ private function createCachePluginNode(): NodeDefinition
857852
->end()
858853
->scalarNode('stream_factory')
859854
->info('This must be a service id to a service implementing '.StreamFactory::class)
860-
->defaultValue('httplug.stream_factory')
855+
->defaultValue('httplug.psr17_stream_factory')
861856
->cannotBeEmpty()
862857
->end()
863858
->end()

src/DependencyInjection/HttplugExtension.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,7 @@ private function createUri(ContainerBuilder $container, $serviceId, $uri): void
513513
$container
514514
->register($serviceId, UriInterface::class)
515515
->setPublic(false)
516-
->setFactory([new Reference('httplug.uri_factory'), 'createUri'])
516+
->setFactory([new Reference('httplug.psr17_uri_factory'), 'createUri'])
517517
->addArgument($uri)
518518
;
519519
}

src/Resources/config/services.xml

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,23 +22,6 @@
2222
</service>
2323

2424
<!-- Discovery with autowiring support -->
25-
<service id="httplug.message_factory.default" class="Http\Message\MessageFactory">
26-
<factory class="Http\Discovery\MessageFactoryDiscovery" method="find" />
27-
</service>
28-
<service id="Http\Message\MessageFactory" alias="httplug.message_factory" public="false" />
29-
<service id="Http\Message\RequestFactory" alias="httplug.message_factory" public="false" />
30-
<service id="Http\Message\ResponseFactory" alias="httplug.message_factory" public="false" />
31-
32-
<service id="httplug.stream_factory.default" class="Http\Message\StreamFactory">
33-
<factory class="Http\Discovery\StreamFactoryDiscovery" method="find" />
34-
</service>
35-
<service id="Http\Message\StreamFactory" alias="httplug.stream_factory" public="false" />
36-
37-
<service id="httplug.uri_factory.default" class="Http\Message\UriFactory">
38-
<factory class="Http\Discovery\UriFactoryDiscovery" method="find" />
39-
</service>
40-
<service id="Http\Message\UriFactory" alias="httplug.uri_factory" public="false" />
41-
4225
<service id="httplug.async_client.default" class="Http\Client\HttpAsyncClient">
4326
<factory class="Http\Discovery\HttpAsyncClientDiscovery" method="find" />
4427
</service>

tests/Functional/DiscoveredClientsTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Http\Discovery\HttpAsyncClientDiscovery;
1111
use Http\Discovery\HttpClientDiscovery;
1212
use Http\Discovery\Strategy\CommonClassesStrategy;
13+
use Http\Discovery\Strategy\CommonPsr17ClassesStrategy;
1314
use Http\HttplugBundle\Collector\ProfileClient;
1415
use Http\HttplugBundle\Discovery\ConfiguredClientsStrategyListener;
1516
use Nyholm\NSA;
@@ -131,7 +132,7 @@ protected function setUp(): void
131132

132133
// Reset values
133134
$strategy = new ConfiguredClientsStrategyListener(null, null);
134-
HttpClientDiscovery::setStrategies([CommonClassesStrategy::class]);
135+
HttpClientDiscovery::setStrategies([CommonClassesStrategy::class, CommonPsr17ClassesStrategy::class]);
135136
$strategy->onEvent();
136137
}
137138
}

tests/Functional/DiscoveryTest.php

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@
99
use Http\Client\HttpClient;
1010
use Http\Discovery\HttpClientDiscovery;
1111
use Http\HttplugBundle\DependencyInjection\HttplugExtension;
12-
use Http\Message\MessageFactory;
13-
use Http\Message\StreamFactory;
14-
use Http\Message\UriFactory;
1512
use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractExtensionTestCase;
1613
use Matthias\SymfonyDependencyInjectionTest\PhpUnit\ContainerBuilderHasAliasConstraint;
1714
use PHPUnit\Framework\Constraint\LogicalNot;
15+
use Psr\Http\Message\RequestFactoryInterface;
16+
use Psr\Http\Message\ResponseFactoryInterface;
17+
use Psr\Http\Message\StreamFactoryInterface;
18+
use Psr\Http\Message\UriFactoryInterface;
1819
use Symfony\Component\DependencyInjection\Definition;
1920

2021
/**
@@ -44,9 +45,10 @@ public function testDiscoveryFallbacks(): void
4445
$this->load();
4546

4647
$this->assertContainerBuilderHasService('httplug.client.default', HttpClient::class);
47-
$this->assertContainerBuilderHasService('httplug.message_factory.default', MessageFactory::class);
48-
$this->assertContainerBuilderHasService('httplug.uri_factory.default', UriFactory::class);
49-
$this->assertContainerBuilderHasService('httplug.stream_factory.default', StreamFactory::class);
48+
$this->assertContainerBuilderHasService('httplug.psr17_request_factory.default', RequestFactoryInterface::class);
49+
$this->assertContainerBuilderHasService('httplug.psr17_response_factory.default', ResponseFactoryInterface::class);
50+
$this->assertContainerBuilderHasService('httplug.psr17_uri_factory.default', UriFactoryInterface::class);
51+
$this->assertContainerBuilderHasService('httplug.psr17_stream_factory.default', StreamFactoryInterface::class);
5052
$this->assertContainerBuilderHasService('httplug.async_client.default', HttpAsyncClient::class);
5153
}
5254

@@ -56,18 +58,19 @@ public function testDiscoveryPartialFallbacks(): void
5658
$this->setDefinition('httplug.client.default', new Definition(Client::class));
5759

5860
$this->assertContainerBuilderHasService('httplug.client.default', Client::class);
59-
$this->assertContainerBuilderHasService('httplug.message_factory.default', MessageFactory::class);
60-
$this->assertContainerBuilderHasService('httplug.uri_factory.default', UriFactory::class);
61-
$this->assertContainerBuilderHasService('httplug.stream_factory.default', StreamFactory::class);
61+
$this->assertContainerBuilderHasService('httplug.psr17_request_factory.default', RequestFactoryInterface::class);
62+
$this->assertContainerBuilderHasService('httplug.psr17_response_factory.default', ResponseFactoryInterface::class);
63+
$this->assertContainerBuilderHasService('httplug.psr17_uri_factory.default', UriFactoryInterface::class);
64+
$this->assertContainerBuilderHasService('httplug.psr17_stream_factory.default', StreamFactoryInterface::class);
6265
$this->assertContainerBuilderHasService('httplug.async_client.default', HttpAsyncClient::class);
6366
}
6467

6568
public function testNoDiscoveryFallbacks(): void
6669
{
6770
$this->setDefinition('httplug.client.default', new Definition(HttpClient::class));
68-
$this->setDefinition('httplug.message_factory.default', new Definition(MessageFactory::class));
69-
$this->setDefinition('httplug.uri_factory.default', new Definition(UriFactory::class));
70-
$this->setDefinition('httplug.stream_factory.default', new Definition(StreamFactory::class));
71+
$this->setDefinition('httplug.psr17_request_factory.default', new Definition(RequestFactoryInterface::class));
72+
$this->setDefinition('httplug.psr17_uri_factory.default', new Definition(UriFactoryInterface::class));
73+
$this->setDefinition('httplug.psr17_stream_factory.default', new Definition(StreamFactoryInterface::class));
7174
$this->setDefinition('httplug.async_client.default', new Definition(HttpAsyncClient::class));
7275

7376
$this->load();

tests/Resources/Fixtures/config/full.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,13 @@
66
'default_client_autowiring' => false,
77
'main_alias' => [
88
'client' => 'my_client',
9-
'message_factory' => 'my_message_factory',
10-
'uri_factory' => 'my_uri_factory',
11-
'stream_factory' => 'my_stream_factory',
9+
'psr17_request_factory' => 'my_psr17_request_factory',
10+
'psr17_response_factory' => 'my_psr17_response_factory',
11+
'psr17_uri_factory' => 'my_psr17_uri_factory',
12+
'psr17_stream_factory' => 'my_psr17_stream_factory',
1213
],
1314
'classes' => [
1415
'client' => 'Http\Adapter\Guzzle7\Client',
15-
'message_factory' => 'Http\Message\MessageFactory\GuzzleMessageFactory',
16-
'uri_factory' => 'Http\Message\UriFactory\GuzzleUriFactory',
17-
'stream_factory' => 'Http\Message\StreamFactory\GuzzleStreamFactory',
1816
'psr18_client' => 'Http\Adapter\Guzzle7\Client',
1917
'psr17_request_factory' => 'Nyholm\Psr7\Factory\Psr17Factory',
2018
'psr17_response_factory' => 'Nyholm\Psr7\Factory\Psr17Factory',

tests/Resources/Fixtures/config/full.xml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,13 @@
55
<default-client-autowiring>false</default-client-autowiring>
66
<main-alias>
77
<client>my_client</client>
8-
<message-factory>my_message_factory</message-factory>
9-
<uri-factory>my_uri_factory</uri-factory>
10-
<stream-factory>my_stream_factory</stream-factory>
8+
<psr17-request-factory>my_psr17_request_factory</psr17-request-factory>
9+
<psr17-response-factory>my_psr17_response_factory</psr17-response-factory>
10+
<psr17-uri-factory>my_psr17_uri_factory</psr17-uri-factory>
11+
<psr17-stream-factory>my_psr17_stream_factory</psr17-stream-factory>
1112
</main-alias>
1213
<classes>
1314
<client>Http\Adapter\Guzzle7\Client</client>
14-
<message-factory>Http\Message\MessageFactory\GuzzleMessageFactory</message-factory>
15-
<uri-factory>Http\Message\UriFactory\GuzzleUriFactory</uri-factory>
16-
<stream-factory>Http\Message\StreamFactory\GuzzleStreamFactory</stream-factory>
1715
<psr18-client>Http\Adapter\Guzzle7\Client</psr18-client>
1816
<psr17-request-factory>Nyholm\Psr7\Factory\Psr17Factory</psr17-request-factory>
1917
<psr17-response-factory>Nyholm\Psr7\Factory\Psr17Factory</psr17-response-factory>

tests/Resources/Fixtures/config/full.yml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,12 @@ httplug:
22
default_client_autowiring: false
33
main_alias:
44
client: my_client
5-
message_factory: my_message_factory
6-
uri_factory: my_uri_factory
7-
stream_factory: my_stream_factory
5+
psr17_request_factory: my_psr17_request_factory
6+
psr17_response_factory: my_psr17_response_factory
7+
psr17_uri_factory: my_psr17_uri_factory
8+
psr17_stream_factory: my_psr17_stream_factory
89
classes:
910
client: Http\Adapter\Guzzle7\Client
10-
message_factory: Http\Message\MessageFactory\GuzzleMessageFactory
11-
uri_factory: Http\Message\UriFactory\GuzzleUriFactory
12-
stream_factory: Http\Message\StreamFactory\GuzzleStreamFactory
1311
psr18_client: Http\Adapter\Guzzle7\Client
1412
psr17_request_factory: Nyholm\Psr7\Factory\Psr17Factory
1513
psr17_response_factory: Nyholm\Psr7\Factory\Psr17Factory

tests/Resources/app/AppKernel.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,6 @@ public function process(ContainerBuilder $container): void
108108
'httplug.strategy',
109109
'httplug.auto_discovery.auto_discovered_client',
110110
'httplug.auto_discovery.auto_discovered_async',
111-
'httplug.message_factory.default',
112-
'httplug.stream_factory.default',
113-
'httplug.uri_factory.default',
114111
'httplug.async_client.default',
115112
'httplug.client.default',
116113
'app.http.plugin.custom',

tests/Unit/DependencyInjection/ConfigurationTest.php

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@
77
use Http\Adapter\Guzzle7\Client;
88
use Http\HttplugBundle\DependencyInjection\Configuration;
99
use Http\HttplugBundle\DependencyInjection\HttplugExtension;
10-
use Http\Message\MessageFactory\GuzzleMessageFactory;
11-
use Http\Message\StreamFactory\GuzzleStreamFactory;
12-
use Http\Message\UriFactory\GuzzleUriFactory;
1310
use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractExtensionConfigurationTestCase;
1411
use Nyholm\Psr7\Factory\Psr17Factory;
1512
use Symfony\Component\Config\Definition\ConfigurationInterface;
@@ -25,9 +22,6 @@ class ConfigurationTest extends AbstractExtensionConfigurationTestCase
2522
'default_client_autowiring' => true,
2623
'main_alias' => [
2724
'client' => 'httplug.client.default',
28-
'message_factory' => 'httplug.message_factory.default',
29-
'uri_factory' => 'httplug.uri_factory.default',
30-
'stream_factory' => 'httplug.stream_factory.default',
3125
'psr18_client' => 'httplug.psr18_client.default',
3226
'psr17_request_factory' => 'httplug.psr17_request_factory.default',
3327
'psr17_response_factory' => 'httplug.psr17_response_factory.default',
@@ -39,9 +33,6 @@ class ConfigurationTest extends AbstractExtensionConfigurationTestCase
3933
'classes' => [
4034
'client' => null,
4135
'psr18_client' => null,
42-
'message_factory' => null,
43-
'uri_factory' => null,
44-
'stream_factory' => null,
4536
'psr17_request_factory' => null,
4637
'psr17_response_factory' => null,
4738
'psr17_stream_factory' => null,
@@ -59,7 +50,7 @@ class ConfigurationTest extends AbstractExtensionConfigurationTestCase
5950
'authentication' => [],
6051
'cache' => [
6152
'enabled' => false,
62-
'stream_factory' => 'httplug.stream_factory',
53+
'stream_factory' => 'httplug.psr17_stream_factory',
6354
'config' => [
6455
'methods' => ['GET', 'HEAD'],
6556
'blacklisted_paths' => [],
@@ -125,22 +116,16 @@ public function testSupportsAllConfigFormats(): void
125116
'default_client_autowiring' => false,
126117
'main_alias' => [
127118
'client' => 'my_client',
128-
'message_factory' => 'my_message_factory',
129-
'uri_factory' => 'my_uri_factory',
130-
'stream_factory' => 'my_stream_factory',
131119
'psr18_client' => 'httplug.psr18_client.default',
132-
'psr17_request_factory' => 'httplug.psr17_request_factory.default',
133-
'psr17_response_factory' => 'httplug.psr17_response_factory.default',
134-
'psr17_stream_factory' => 'httplug.psr17_stream_factory.default',
135-
'psr17_uri_factory' => 'httplug.psr17_uri_factory.default',
120+
'psr17_request_factory' => 'my_psr17_request_factory',
121+
'psr17_response_factory' => 'my_psr17_response_factory',
122+
'psr17_stream_factory' => 'my_psr17_stream_factory',
123+
'psr17_uri_factory' => 'my_psr17_uri_factory',
136124
'psr17_uploaded_file_factory' => 'httplug.psr17_uploaded_file_factory.default',
137125
'psr17_server_request_factory' => 'httplug.psr17_server_request_factory.default',
138126
],
139127
'classes' => [
140128
'client' => Client::class,
141-
'message_factory' => GuzzleMessageFactory::class,
142-
'uri_factory' => GuzzleUriFactory::class,
143-
'stream_factory' => GuzzleStreamFactory::class,
144129
'psr18_client' => Client::class,
145130
'psr17_request_factory' => Psr17Factory::class,
146131
'psr17_response_factory' => Psr17Factory::class,
@@ -492,7 +477,7 @@ public function testNullDefaultTtl(): void
492477
],
493478
'cache_pool' => 'my_custom_cache_pull',
494479
'enabled' => true,
495-
'stream_factory' => 'httplug.stream_factory',
480+
'stream_factory' => 'httplug.psr17_stream_factory',
496481
],
497482
],
498483
],

tests/Unit/DependencyInjection/HttplugExtensionTest.php

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public function testConfigLoadDefault(): void
4141
{
4242
$this->load();
4343

44-
foreach (['client', 'message_factory', 'uri_factory', 'stream_factory'] as $type) {
44+
foreach (['client', 'psr17_request_factory', 'psr17_response_factory', 'psr17_uri_factory', 'psr17_stream_factory'] as $type) {
4545
$this->assertContainerBuilderHasAlias("httplug.$type", "httplug.$type.default");
4646
}
4747
}
@@ -66,13 +66,14 @@ public function testConfigLoadService(): void
6666
$this->load([
6767
'main_alias' => [
6868
'client' => 'my_client_service',
69-
'message_factory' => 'my_message_factory_service',
70-
'uri_factory' => 'my_uri_factory_service',
71-
'stream_factory' => 'my_stream_factory_service',
69+
'psr17_request_factory' => 'my_psr17_request_factory_service',
70+
'psr17_response_factory' => 'my_psr17_response_factory_service',
71+
'psr17_uri_factory' => 'my_psr17_uri_factory_service',
72+
'psr17_stream_factory' => 'my_psr17_stream_factory_service',
7273
],
7374
]);
7475

75-
foreach (['client', 'message_factory', 'uri_factory', 'stream_factory'] as $type) {
76+
foreach (['client', 'psr17_request_factory', 'psr17_response_factory', 'psr17_uri_factory', 'psr17_stream_factory'] as $type) {
7677
$this->assertContainerBuilderHasAlias("httplug.$type", "my_{$type}_service");
7778
}
7879
}

0 commit comments

Comments
 (0)