https://github.com/n1215/http-request-matcher
Matcher interface for PSR-7 HTTP request, like preg_match() for string.
https://github.com/n1215/http-request-matcher
http-request matcher php psr-7 web
Last synced: 10 days ago
JSON representation
Matcher interface for PSR-7 HTTP request, like preg_match() for string.
- Host: GitHub
- URL: https://github.com/n1215/http-request-matcher
- Owner: n1215
- License: mit
- Created: 2017-12-02T06:00:58.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2020-01-11T10:29:31.000Z (about 6 years ago)
- Last Synced: 2025-10-09T01:20:34.810Z (4 months ago)
- Topics: http-request, matcher, php, psr-7, web
- Language: PHP
- Homepage:
- Size: 46.9 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# http-request-matcher
[](https://packagist.org/packages/n1215/http-request-matcher)
[](https://packagist.org/packages/n1215/http-request-matcher)
[](https://scrutinizer-ci.com/g/n1215/http-request-matcher/build-status/master)
[](https://scrutinizer-ci.com/g/n1215/http-request-matcher/?branch=master)
[](https://scrutinizer-ci.com/g/n1215/http-request-matcher/?branch=master)
Matcher interface for PSR-7 HTTP request, like preg_match() for string.
## Usage
```php
// 1. implement RequestMatcherInterface or ServerRequestMatcherInterface. you can use RequestMatchResult concrete class.
class YourServerRequestMatcher implements ServerRequestMatcherInterface
{
public function match(ServerRequestInterface $request): RequestMatchResultInterface
{
// implement
}
}
// 2. use for PSR-7 Request
$matcher = new YourServerRequestMatcher();
/** @var \Psr\Http\Message\ServerRequestInterface $request */
$result = $matcher->match($request);
if ($result->isSuccess()) {
var_dump($result->getParams());
}
```
## Implementation examples
* see [test](tests/RequestMatcherTest.php)
* [n1215/hakudo : MethodAndPathMatcher](https://github.com/n1215/hakudo/blob/v0.3.0/src/RequestMatcher/MethodAndPathMatcher.php)
## Class diagram
