Open Journal Systems  3.3.0
vendor/php-http/message/src/RequestMatcher/RequestMatcher.php
1 <?php
2 
4 
7 
15 {
19  private $path;
20 
24  private $host;
25 
29  private $methods = [];
30 
34  private $schemes = [];
35 
45  public function __construct($path = null, $host = null, $methods = [], $schemes = [])
46  {
47  $this->path = $path;
48  $this->host = $host;
49  $this->methods = array_map('strtoupper', (array) $methods);
50  $this->schemes = array_map('strtolower', (array) $schemes);
51  }
52 
58  public function matches(RequestInterface $request)
59  {
60  if ($this->schemes && !in_array($request->getUri()->getScheme(), $this->schemes)) {
61  return false;
62  }
63 
64  if ($this->methods && !in_array($request->getMethod(), $this->methods)) {
65  return false;
66  }
67 
68  if (null !== $this->path && !preg_match('{'.$this->path.'}', rawurldecode($request->getUri()->getPath()))) {
69  return false;
70  }
71 
72  if (null !== $this->host && !preg_match('{'.$this->host.'}i', $request->getUri()->getHost())) {
73  return false;
74  }
75 
76  return true;
77  }
78 }
Psr\Http\Message\RequestInterface
Definition: vendor/psr/http-message/src/RequestInterface.php:24
Http\Message\RequestMatcher\RequestMatcher
Definition: vendor/php-http/message/src/RequestMatcher/RequestMatcher.php:14
Http\Message\RequestMatcher\RequestMatcher\__construct
__construct($path=null, $host=null, $methods=[], $schemes=[])
Definition: vendor/php-http/message/src/RequestMatcher/RequestMatcher.php:57
Psr\Http\Message\RequestInterface\getMethod
getMethod()
Http\Message\RequestMatcher
Definition: CallbackRequestMatcher.php:3
Http\Message\RequestMatcher\RequestMatcher\matches
matches(RequestInterface $request)
Definition: vendor/php-http/message/src/RequestMatcher/RequestMatcher.php:70
Psr\Http\Message\RequestInterface\getUri
getUri()