From 41cf41085c0c0db9a294f354b6c4c1d3f3ee274b Mon Sep 17 00:00:00 2001 From: Witold Wasiczko Date: Sat, 1 Jul 2017 14:06:35 +0200 Subject: [PATCH 1/3] Add travis --- .gitignore | 4 +++- .travis.yml | 18 ++++++++++++++++++ composer.json | 1 + 3 files changed, 22 insertions(+), 1 deletion(-) mode change 100644 => 100755 .gitignore create mode 100644 .travis.yml mode change 100644 => 100755 composer.json 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..819c8f0 --- a/composer.json +++ b/composer.json @@ -1,6 +1,7 @@ { "name": "php-middleware/request-simulator", "require": { + "php": ">=5.6", "zendframework/zend-diactoros": "1.*" }, "require-dev": { From 6eb6196666ae6c59744bd22e2b26b71df722990b Mon Sep 17 00:00:00 2001 From: Witold Wasiczko Date: Sat, 1 Jul 2017 14:11:26 +0200 Subject: [PATCH 2/3] More specify composer --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 819c8f0..d544264 100755 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "php-middleware/request-simulator", "require": { "php": ">=5.6", - "zendframework/zend-diactoros": "1.*" + "zendframework/zend-diactoros": "^1.1" }, "require-dev": { "phpunit/phpunit": "^4.8.6" From e9edd189d015a45f9460ba9e0ff154ccbdc7eef4 Mon Sep 17 00:00:00 2001 From: Witold Wasiczko Date: Sat, 1 Jul 2017 14:20:38 +0200 Subject: [PATCH 3/3] Add psr-15 support --- composer.json | 5 ++++- src/RequestSimulatorMiddleware.php | 15 ++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/composer.json b/composer.json index d544264..9f0b0df 100755 --- a/composer.json +++ b/composer.json @@ -2,7 +2,10 @@ "name": "php-middleware/request-simulator", "require": { "php": ">=5.6", - "zendframework/zend-diactoros": "^1.1" + "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() . '' . ''; } + }