5 use Psr\Http\Message\RequestFactoryInterface;
6 use Psr\Http\Message\ResponseFactoryInterface;
7 use Psr\Http\Message\ServerRequestFactoryInterface;
8 use Psr\Http\Message\StreamFactoryInterface;
9 use Psr\Http\Message\UploadedFileFactoryInterface;
10 use Psr\Http\Message\UriFactoryInterface;
22 private static $classes = [
23 RequestFactoryInterface::class => [
24 'Nyholm\Psr7\Factory\Psr17Factory',
25 'Zend\Diactoros\RequestFactory',
26 'Http\Factory\Diactoros\RequestFactory',
27 'Http\Factory\Guzzle\RequestFactory',
28 'Http\Factory\Slim\RequestFactory',
30 ResponseFactoryInterface::class => [
31 'Nyholm\Psr7\Factory\Psr17Factory',
32 'Zend\Diactoros\ResponseFactory',
33 'Http\Factory\Diactoros\ResponseFactory',
34 'Http\Factory\Guzzle\ResponseFactory',
35 'Http\Factory\Slim\ResponseFactory',
37 ServerRequestFactoryInterface::class => [
38 'Nyholm\Psr7\Factory\Psr17Factory',
39 'Zend\Diactoros\ServerRequestFactory',
40 'Http\Factory\Diactoros\ServerRequestFactory',
41 'Http\Factory\Guzzle\ServerRequestFactory',
42 'Http\Factory\Slim\ServerRequestFactory',
44 StreamFactoryInterface::class => [
45 'Nyholm\Psr7\Factory\Psr17Factory',
46 'Zend\Diactoros\StreamFactory',
47 'Http\Factory\Diactoros\StreamFactory',
48 'Http\Factory\Guzzle\StreamFactory',
49 'Http\Factory\Slim\StreamFactory',
51 UploadedFileFactoryInterface::class => [
52 'Nyholm\Psr7\Factory\Psr17Factory',
53 'Zend\Diactoros\UploadedFileFactory',
54 'Http\Factory\Diactoros\UploadedFileFactory',
55 'Http\Factory\Guzzle\UploadedFileFactory',
56 'Http\Factory\Slim\UploadedFileFactory',
58 UriFactoryInterface::class => [
59 'Nyholm\Psr7\Factory\Psr17Factory',
60 'Zend\Diactoros\UriFactory',
61 'Http\Factory\Diactoros\UriFactory',
62 'Http\Factory\Guzzle\UriFactory',
63 'Http\Factory\Slim\UriFactory',
73 if (isset(self::$classes[$type])) {
74 foreach (self::$classes[$type] as $class) {
75 $candidates[] = [
'class' => $class,
'condition' => [$class]];