Open Journal Systems  3.3.0
Psr17FactoryDiscovery.php
1 <?php
2 
3 namespace Http\Discovery;
4 
6 use Psr\Http\Message\RequestFactoryInterface;
7 use Psr\Http\Message\ResponseFactoryInterface;
8 use Psr\Http\Message\ServerRequestFactoryInterface;
9 use Psr\Http\Message\StreamFactoryInterface;
10 use Psr\Http\Message\UploadedFileFactoryInterface;
11 use Psr\Http\Message\UriFactoryInterface;
12 
19 {
20  private static function createException($type, Exception $e)
21  {
22  return new \Http\Discovery\Exception\NotFoundException(
23  'No PSR-17 '.$type.' found. Install a package from this list: https://packagist.org/providers/psr/http-factory-implementation',
24  0,
25  $e
26  );
27  }
28 
34  public static function findRequestFactory()
35  {
36  try {
37  $messageFactory = static::findOneByType(RequestFactoryInterface::class);
38  } catch (DiscoveryFailedException $e) {
39  throw self::createException('request factory', $e);
40  }
41 
42  return static::instantiateClass($messageFactory);
43  }
44 
50  public static function findResponseFactory()
51  {
52  try {
53  $messageFactory = static::findOneByType(ResponseFactoryInterface::class);
54  } catch (DiscoveryFailedException $e) {
55  throw self::createException('response factory', $e);
56  }
57 
58  return static::instantiateClass($messageFactory);
59  }
60 
66  public static function findServerRequestFactory()
67  {
68  try {
69  $messageFactory = static::findOneByType(ServerRequestFactoryInterface::class);
70  } catch (DiscoveryFailedException $e) {
71  throw self::createException('server request factory', $e);
72  }
73 
74  return static::instantiateClass($messageFactory);
75  }
76 
82  public static function findStreamFactory()
83  {
84  try {
85  $messageFactory = static::findOneByType(StreamFactoryInterface::class);
86  } catch (DiscoveryFailedException $e) {
87  throw self::createException('stream factory', $e);
88  }
89 
90  return static::instantiateClass($messageFactory);
91  }
92 
98  public static function findUploadedFileFactory()
99  {
100  try {
101  $messageFactory = static::findOneByType(UploadedFileFactoryInterface::class);
102  } catch (DiscoveryFailedException $e) {
103  throw self::createException('uploaded file factory', $e);
104  }
105 
106  return static::instantiateClass($messageFactory);
107  }
108 
114  public static function findUrlFactory()
115  {
116  try {
117  $messageFactory = static::findOneByType(UriFactoryInterface::class);
118  } catch (DiscoveryFailedException $e) {
119  throw self::createException('url factory', $e);
120  }
121 
122  return static::instantiateClass($messageFactory);
123  }
124 }
Http\Discovery
Definition: ClassDiscovery.php:3
Http\Discovery\Psr17FactoryDiscovery\findServerRequestFactory
static findServerRequestFactory()
Definition: Psr17FactoryDiscovery.php:66
Http\Discovery\Psr17FactoryDiscovery\findResponseFactory
static findResponseFactory()
Definition: Psr17FactoryDiscovery.php:50
Http\Discovery\Exception
Definition: paymethod/paypal/vendor/php-http/discovery/src/Exception.php:10
Http\Discovery\ClassDiscovery
Definition: ClassDiscovery.php:17
Http\Discovery\Psr17FactoryDiscovery\findUrlFactory
static findUrlFactory()
Definition: Psr17FactoryDiscovery.php:114
Http\Discovery\Psr17FactoryDiscovery\findRequestFactory
static findRequestFactory()
Definition: Psr17FactoryDiscovery.php:34
Http\Discovery\Exception\DiscoveryFailedException
Definition: DiscoveryFailedException.php:12
Http\Discovery\Psr17FactoryDiscovery
Definition: Psr17FactoryDiscovery.php:18
Http\Discovery\Psr17FactoryDiscovery\findStreamFactory
static findStreamFactory()
Definition: Psr17FactoryDiscovery.php:82
Http\Discovery\Psr17FactoryDiscovery\findUploadedFileFactory
static findUploadedFileFactory()
Definition: Psr17FactoryDiscovery.php:98