diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 index 14bc68c..6a2c7e3 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -/nbproject/private/ \ No newline at end of file +coverage/ +vendor/ +composer.lock diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..b57618f --- /dev/null +++ b/.travis.yml @@ -0,0 +1,18 @@ +language: php + +php: + - 5.6 + - 7.0 + - 7.1 + +env: + - DEPS=lowest + - DEPS=latest + +before_script: + - phpenv config-rm xdebug.ini + - if [[ $DEPS == 'lowest' ]]; then composer update --prefer-stable --no-interaction --prefer-lowest ; fi + - if [[ $DEPS == 'latest' ]]; then composer update --prefer-stable --no-interaction ; fi + +script: + - ./vendor/bin/phpunit diff --git a/composer.json b/composer.json old mode 100644 new mode 100755 index ef9f363..9f0b0df --- a/composer.json +++ b/composer.json @@ -1,7 +1,11 @@ { "name": "php-middleware/request-simulator", "require": { - "zendframework/zend-diactoros": "1.*" + "php": ">=5.6", + "zendframework/zend-diactoros": "^1.1", + "php-middleware/double-pass-compatibility": "^1.0", + "http-interop/http-middleware": "^0.4.1", + "psr/http-message": "^1.0" }, "require-dev": { "phpunit/phpunit": "^4.8.6" diff --git a/src/RequestSimulatorMiddleware.php b/src/RequestSimulatorMiddleware.php index 343d7ee..d824dcd 100644 --- a/src/RequestSimulatorMiddleware.php +++ b/src/RequestSimulatorMiddleware.php @@ -2,18 +2,22 @@ namespace PhpMiddleware\RequestSimulator; -use Psr\Http\Message\ResponseInterface; +use Interop\Http\ServerMiddleware\DelegateInterface; +use Interop\Http\ServerMiddleware\MiddlewareInterface; +use PhpMiddleware\DoublePassCompatibilityTrait; use Psr\Http\Message\ServerRequestInterface; use Zend\Diactoros\Request\Serializer as RequestSerializer; use Zend\Diactoros\Response\HtmlResponse; use Zend\Diactoros\Response\Serializer as ResponseSerializer; use Zend\Diactoros\ServerRequest; -final class RequestSimulatorMiddleware +final class RequestSimulatorMiddleware implements MiddlewareInterface { + use DoublePassCompatibilityTrait; + const PARAM = 'simulated-request'; - public function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $next) + public function process(ServerRequestInterface $request, DelegateInterface $delegate) { if ($request->getMethod() === 'POST') { $parsedBody = $this->parseBody($request->getBody()); @@ -27,9 +31,9 @@ public function __invoke(ServerRequestInterface $request, ResponseInterface $res $requestAsString = RequestSerializer::toString($request); - $responseResult = $next($request, $response); + $response = $delegate->process($request); - $responseAsString = ResponseSerializer::toString($responseResult); + $responseAsString = ResponseSerializer::toString($response); $html = sprintf($this->getHtmlTemplate(), self::PARAM, $requestAsString, $responseAsString); @@ -59,4 +63,5 @@ private function getHtmlTemplate() . '' . ''; } + }