summaryrefslogtreecommitdiff
path: root/vendor/php-http/discovery/src/Strategy/CommonPsr17ClassesStrategy.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/php-http/discovery/src/Strategy/CommonPsr17ClassesStrategy.php')
-rw-r--r--vendor/php-http/discovery/src/Strategy/CommonPsr17ClassesStrategy.php104
1 files changed, 104 insertions, 0 deletions
diff --git a/vendor/php-http/discovery/src/Strategy/CommonPsr17ClassesStrategy.php b/vendor/php-http/discovery/src/Strategy/CommonPsr17ClassesStrategy.php
new file mode 100644
index 000000000..04cf4baf8
--- /dev/null
+++ b/vendor/php-http/discovery/src/Strategy/CommonPsr17ClassesStrategy.php
@@ -0,0 +1,104 @@
+<?php
+
+namespace Http\Discovery\Strategy;
+
+use Psr\Http\Message\RequestFactoryInterface;
+use Psr\Http\Message\ResponseFactoryInterface;
+use Psr\Http\Message\ServerRequestFactoryInterface;
+use Psr\Http\Message\StreamFactoryInterface;
+use Psr\Http\Message\UploadedFileFactoryInterface;
+use Psr\Http\Message\UriFactoryInterface;
+
+/**
+ * @internal
+ *
+ * @author Tobias Nyholm <[email protected]>
+ *
+ * Don't miss updating src/Composer/Plugin.php when adding a new supported class.
+ */
+final class CommonPsr17ClassesStrategy implements DiscoveryStrategy
+{
+ /**
+ * @var array
+ */
+ private static $classes = [
+ RequestFactoryInterface::class => [
+ 'Phalcon\Http\Message\RequestFactory',
+ 'Nyholm\Psr7\Factory\Psr17Factory',
+ 'GuzzleHttp\Psr7\HttpFactory',
+ 'Http\Factory\Diactoros\RequestFactory',
+ 'Http\Factory\Guzzle\RequestFactory',
+ 'Http\Factory\Slim\RequestFactory',
+ 'Laminas\Diactoros\RequestFactory',
+ 'Slim\Psr7\Factory\RequestFactory',
+ 'HttpSoft\Message\RequestFactory',
+ ],
+ ResponseFactoryInterface::class => [
+ 'Phalcon\Http\Message\ResponseFactory',
+ 'Nyholm\Psr7\Factory\Psr17Factory',
+ 'GuzzleHttp\Psr7\HttpFactory',
+ 'Http\Factory\Diactoros\ResponseFactory',
+ 'Http\Factory\Guzzle\ResponseFactory',
+ 'Http\Factory\Slim\ResponseFactory',
+ 'Laminas\Diactoros\ResponseFactory',
+ 'Slim\Psr7\Factory\ResponseFactory',
+ 'HttpSoft\Message\ResponseFactory',
+ ],
+ ServerRequestFactoryInterface::class => [
+ 'Phalcon\Http\Message\ServerRequestFactory',
+ 'Nyholm\Psr7\Factory\Psr17Factory',
+ 'GuzzleHttp\Psr7\HttpFactory',
+ 'Http\Factory\Diactoros\ServerRequestFactory',
+ 'Http\Factory\Guzzle\ServerRequestFactory',
+ 'Http\Factory\Slim\ServerRequestFactory',
+ 'Laminas\Diactoros\ServerRequestFactory',
+ 'Slim\Psr7\Factory\ServerRequestFactory',
+ 'HttpSoft\Message\ServerRequestFactory',
+ ],
+ StreamFactoryInterface::class => [
+ 'Phalcon\Http\Message\StreamFactory',
+ 'Nyholm\Psr7\Factory\Psr17Factory',
+ 'GuzzleHttp\Psr7\HttpFactory',
+ 'Http\Factory\Diactoros\StreamFactory',
+ 'Http\Factory\Guzzle\StreamFactory',
+ 'Http\Factory\Slim\StreamFactory',
+ 'Laminas\Diactoros\StreamFactory',
+ 'Slim\Psr7\Factory\StreamFactory',
+ 'HttpSoft\Message\StreamFactory',
+ ],
+ UploadedFileFactoryInterface::class => [
+ 'Phalcon\Http\Message\UploadedFileFactory',
+ 'Nyholm\Psr7\Factory\Psr17Factory',
+ 'GuzzleHttp\Psr7\HttpFactory',
+ 'Http\Factory\Diactoros\UploadedFileFactory',
+ 'Http\Factory\Guzzle\UploadedFileFactory',
+ 'Http\Factory\Slim\UploadedFileFactory',
+ 'Laminas\Diactoros\UploadedFileFactory',
+ 'Slim\Psr7\Factory\UploadedFileFactory',
+ 'HttpSoft\Message\UploadedFileFactory',
+ ],
+ UriFactoryInterface::class => [
+ 'Phalcon\Http\Message\UriFactory',
+ 'Nyholm\Psr7\Factory\Psr17Factory',
+ 'GuzzleHttp\Psr7\HttpFactory',
+ 'Http\Factory\Diactoros\UriFactory',
+ 'Http\Factory\Guzzle\UriFactory',
+ 'Http\Factory\Slim\UriFactory',
+ 'Laminas\Diactoros\UriFactory',
+ 'Slim\Psr7\Factory\UriFactory',
+ 'HttpSoft\Message\UriFactory',
+ ],
+ ];
+
+ public static function getCandidates($type)
+ {
+ $candidates = [];
+ if (isset(self::$classes[$type])) {
+ foreach (self::$classes[$type] as $class) {
+ $candidates[] = ['class' => $class, 'condition' => [$class]];
+ }
+ }
+
+ return $candidates;
+ }
+}