|
5 | 5 | use GuzzleHttp\Psr7\Request as GuzzleRequest; |
6 | 6 | use Http\Client\HttpAsyncClient; |
7 | 7 | use Http\Client\HttpClient; |
| 8 | +use Http\Discovery\ClassDiscovery; |
8 | 9 | use Http\Discovery\MessageFactoryDiscovery; |
| 10 | +use Http\Discovery\Psr17FactoryDiscovery; |
9 | 11 | use Http\Message\MessageFactory; |
10 | 12 | use Http\Message\MessageFactory\GuzzleMessageFactory; |
11 | 13 | use Http\Message\StreamFactory; |
|
30 | 32 | use Http\Adapter\Cake\Client as Cake; |
31 | 33 | use Http\Adapter\Zend\Client as Zend; |
32 | 34 | use Http\Adapter\Artax\Client as Artax; |
| 35 | +use Symfony\Component\HttpClient\HttplugClient as SymfonyHttplug; |
| 36 | +use Symfony\Component\HttpClient\Psr18Client as SymfonyPsr18; |
33 | 37 | use Nyholm\Psr7\Factory\HttplugFactory as NyholmHttplugFactory; |
34 | 38 |
|
35 | 39 | /** |
@@ -80,12 +84,20 @@ final class CommonClassesStrategy implements DiscoveryStrategy |
80 | 84 | 'class' => [self::class, 'buzzInstantiate'], |
81 | 85 | 'condition' => [\Buzz\Client\FileGetContents::class, \Buzz\Message\ResponseBuilder::class], |
82 | 86 | ], |
| 87 | + [ |
| 88 | + 'class' => [self::class, 'symfonyHttplugInstantiate'], |
| 89 | + 'condition' => SymfonyHttplug::class, |
| 90 | + ], |
83 | 91 | ], |
84 | 92 | Psr18Client::class => [ |
85 | 93 | [ |
86 | 94 | 'class' => [self::class, 'buzzInstantiate'], |
87 | 95 | 'condition' => [\Buzz\Client\FileGetContents::class, \Buzz\Message\ResponseBuilder::class], |
88 | 96 | ], |
| 97 | + [ |
| 98 | + 'class' => [self::class, 'symfonyPsr18Instantiate'], |
| 99 | + 'condition' => SymfonyPsr18::class, |
| 100 | + ], |
89 | 101 | ], |
90 | 102 | ]; |
91 | 103 |
|
@@ -118,4 +130,14 @@ public static function buzzInstantiate() |
118 | 130 | { |
119 | 131 | return new \Buzz\Client\FileGetContents(MessageFactoryDiscovery::find()); |
120 | 132 | } |
| 133 | + |
| 134 | + public static function symfonyHttplugInstantiate() |
| 135 | + { |
| 136 | + return new SymfonyHttplug(null, ClassDiscovery::findOneByType(MessageFactory::class), ClassDiscovery::findOneByType(StreamFactory::class)); |
| 137 | + } |
| 138 | + |
| 139 | + public static function symfonyPsr18Instantiate() |
| 140 | + { |
| 141 | + return new SymfonyPsr18(null, Psr17FactoryDiscovery::findResponseFactory(), Psr17FactoryDiscovery::findStreamFactory()); |
| 142 | + } |
121 | 143 | } |
0 commit comments