bentools / psr7-request-matcher
A PSR-7 RequestMatcher interface for use into several projects.
Installs: 289 553
Dependents: 4
Suggesters: 0
Security: 0
Stars: 1
Watchers: 3
Forks: 0
Open Issues: 0
Requires
- php: >=5.3
- psr/http-message: ^1.0
Requires (Dev)
- php: >=5.4
- guzzlehttp/psr7: ^1.4
- phpunit/phpunit: @stable
- satooshi/php-coveralls: @stable
- squizlabs/php_codesniffer: @stable
This package is auto-updated.
Last update: 2024-10-15 00:33:05 UTC
README
PSR-7 Request Matcher
This library is just composed of interfaces to implement, to check wether or not a request and/or a response match some arbitrary conditions.
These interfaces provide no return type-hint and is therefore compatible from PHP 5.3+.
Examples
Request matcher
namespace App; use BenTools\Psr7\RequestMatcherInterface; use Psr\Http\Message\RequestInterface; class ExampleOrgRequestMatcher implements RequestMatcherInterface { /** * @inheritdoc */ public function matchRequest(RequestInterface $request) { return 'www.example.org' === $request->getUri()->getHost(); } }
Response matcher
namespace App; use BenTools\Psr7\ResponseMatcherInterface; use Psr\Http\Message\ResponseInterface; class TeapotResponseMatcher implements ResponseMatcherInterface { /** * @inheritdoc */ public function matchResponse(ResponseInterface $response) { return 418 === $response->getStatusCode(); } }
Transfer matcher
namespace App; use BenTools\Psr7\TransferMatcherInterface; use Psr\Http\Message\RequestInterface; use Psr\Http\Message\ResponseInterface; class DummyTransferMatcher implements TransferMatcherInterface { /** * @inheritdoc */ public function matchTransfer(RequestInterface $request, ResponseInterface $response) { return $request->hasHeader('Authorization') && 'Welcome, human.' === (string) $response->getBody(); } }
Installation
composer require bentools/psr7-request-matcher
Tests
./vendor/bin/phpunit