From 4d0af6c7872b7ec27de63a1aa062f9ecbc378639 Mon Sep 17 00:00:00 2001 From: Witold Wasiczko Date: Tue, 12 May 2020 20:11:25 +0200 Subject: [PATCH] Migrate to mezzio, drop php 7.1 support --- .gitignore | 3 +- .travis.yml | 1 - README.md | 16 ++--- composer.json | 12 ++-- ... => mezzio.middleware_pipeline.config.php} | 0 src/ConfigProvider.php | 2 +- test/AbstractMiddlewareRunnerTest.php | 10 +-- ...{ZendExpressiveTest.php => MezzioTest.php} | 62 +++++++++---------- test/PhpDebugBarMiddlewareTest.php | 12 ++-- test/Slim3Test.php | 4 +- test/TestEmitter.php | 2 +- 11 files changed, 62 insertions(+), 62 deletions(-) rename config/{zend-expressive.middleware_pipeline.config.php => mezzio.middleware_pipeline.config.php} (100%) rename test/{ZendExpressiveTest.php => MezzioTest.php} (69%) diff --git a/.gitignore b/.gitignore index 04af9af..a0f22fe 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /vendor/ composer.lock -infection.log \ No newline at end of file +infection.log +.phpunit.result.cache diff --git a/.travis.yml b/.travis.yml index ef58a4d..7121b52 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,6 @@ cache: language: php php: - - 7.1 - 7.2 - 7.3 - 7.4 diff --git a/README.md b/README.md index bb16748..cf9b6ff 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ You don't need to copy any static assets from phpdebugbar vendor! Sometimes you want to have control when enable or disable PHP Debug Bar: * custom content negotiation, -* allow to debug redirects responses. +* allow debug redirects responses. We allow you to disable attaching phpdebugbar using `X-Enable-Debug-Bar: false` header, cookie or request attribute. To force enable just send request with `X-Enable-Debug-Bar` header, cookie or request attribute with `true` value. @@ -42,14 +42,14 @@ This package isn't require any PSR-7 implementation - you need to provide it by #### ... and PSR-11 -If you use provided PSR-11 factories, then you container must have services registered as PSR-17 interface's name. Example for [zend-diactoros](https://github.com/zendframework/zend-diactoros) implementation and [Pimple](https://pimple.symfony.com/): +If you use provided PSR-11 factories, then your container must have services registered as PSR-17 interface's name. Example for [laminas-diactoros](https://github.com/laminas/laminas-diactoros) implementation and [Pimple](https://pimple.symfony.com/): ```php -$container[Psr\Http\Message\ResponseInterface::class] = new Zend\Diactoros\ResponseFactory(); -$container[Psr\Http\Message\StreamFactoryInterface] = new Zend\Diactoros\StreamFactory(); +$container[Psr\Http\Message\ResponseInterface::class] = new Laminas\Diactoros\ResponseFactory(); +$container[Psr\Http\Message\StreamFactoryInterface::class] = new Laminas\Diactoros\StreamFactory(); ``` -### How to install on Zend Expressive? +### How to install on Mezzio? You need to register `PhpMiddleware\PhpDebugBar\ConfigProvider` and pipe provided middleware: @@ -57,7 +57,7 @@ You need to register `PhpMiddleware\PhpDebugBar\ConfigProvider` and pipe provide $app->pipe(\PhpMiddleware\PhpDebugBar\PhpDebugBarMiddleware::class); ``` -For more - follow Zend Expressive [documentation](https://docs.zendframework.com/zend-expressive/v3/features/modular-applications/). +For more - follow Mezzio [documentation](https://docs.mezzio.dev/mezzio/v3/features/modular-applications/). ### How to install on Slim 3? @@ -79,7 +79,7 @@ $app->add( ### How to configure using existing factories? -Put array with configuration into `PhpMiddleware\PhpDebugBar\ConfigProvider` service in your container: +Put array with a configuration into `PhpMiddleware\PhpDebugBar\ConfigProvider` service in your container: ```php return [ @@ -106,7 +106,7 @@ return array_merge(PhpMiddleware\PhpDebugBar\ConfigProvider::getConfig(), $myOve ## It's just works with any modern php framework! Middleware tested on: -* [Zend Expressive](https://github.com/zendframework/zend-expressive) +* [Mezzio](https://github.com/mezzio/mezzio) * [Slim 3.x](https://github.com/slimphp/Slim) And any other modern framework [supported PSR-17 middlewares and PSR-7](https://mwop.net/blog/2015-01-08-on-http-middleware-and-psr-7.html). diff --git a/composer.json b/composer.json index b6c323c..f2807e1 100644 --- a/composer.json +++ b/composer.json @@ -12,7 +12,7 @@ "psr-11" ], "require": { - "php": "^7.1", + "php": "^7.2", "maximebf/debugbar": "^1.4", "psr/http-server-handler": "^1.0", "psr/http-server-middleware": "^1.0", @@ -22,13 +22,13 @@ "psr/http-factory-implementation": "^1.0" }, "require-dev": { - "phpunit/phpunit": "^7.5.20", + "phpunit/phpunit": "^8.5.4 || ^9.1.4", "mikey179/vfsStream": "^1.6.8", "slim/slim": "^3.0", - "zendframework/zend-expressive": "^3.0", - "zendframework/zend-expressive-fastroute": "^3.0.1", - "zendframework/zend-servicemanager": "^3.3.2", - "zendframework/zend-diactoros": "^2.0", + "mezzio/mezzio": "^3.0", + "mezzio/mezzio-fastroute": "^3.0.1", + "laminas/laminas-servicemanager": "^3.3.2", + "laminas/laminas-diactoros": "^2.0", "infection/infection": "^0.13.3" }, "autoload": { diff --git a/config/zend-expressive.middleware_pipeline.config.php b/config/mezzio.middleware_pipeline.config.php similarity index 100% rename from config/zend-expressive.middleware_pipeline.config.php rename to config/mezzio.middleware_pipeline.config.php diff --git a/src/ConfigProvider.php b/src/ConfigProvider.php index fd20daa..6204d59 100644 --- a/src/ConfigProvider.php +++ b/src/ConfigProvider.php @@ -14,7 +14,7 @@ public function __invoke(): array { $config = include __DIR__ . '/../config/phpdebugbar.config.php'; $config['dependencies'] = include __DIR__ . '/../config/dependency.config.php'; - $config['middleware_pipeline'] = include __DIR__ . '/../config/zend-expressive.middleware_pipeline.config.php'; + $config['middleware_pipeline'] = include __DIR__ . '/../config/mezzio.middleware_pipeline.config.php'; return $config; } diff --git a/test/AbstractMiddlewareRunnerTest.php b/test/AbstractMiddlewareRunnerTest.php index 1b505f8..a7dd572 100644 --- a/test/AbstractMiddlewareRunnerTest.php +++ b/test/AbstractMiddlewareRunnerTest.php @@ -6,7 +6,7 @@ use PHPUnit\Framework\TestCase; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; -use Zend\Diactoros\Response; +use Laminas\Diactoros\Response; abstract class AbstractMiddlewareRunnerTest extends TestCase { @@ -27,9 +27,9 @@ final public function testAppendJsIntoHtmlContent(): void $responseBody = (string) $response->getBody(); - $this->assertContains('var phpdebugbar = new PhpDebugBar.DebugBar();', $responseBody); - $this->assertContains('Hello!', $responseBody); - $this->assertContains('"/phpdebugbar/debugbar.js"', $responseBody); + $this->assertStringContainsString('var phpdebugbar = new PhpDebugBar.DebugBar();', $responseBody); + $this->assertStringContainsString('Hello!', $responseBody); + $this->assertStringContainsString('"/phpdebugbar/debugbar.js"', $responseBody); } final public function testGetStatics(): void @@ -53,7 +53,7 @@ final public function testGetStatics(): void $contentType = $response->getHeaderLine('Content-type'); - $this->assertContains('text/javascript', $contentType); + $this->assertStringContainsString('text/javascript', $contentType); } abstract protected function dispatchApplication(array $server, array $pipe = []): ResponseInterface; diff --git a/test/ZendExpressiveTest.php b/test/MezzioTest.php similarity index 69% rename from test/ZendExpressiveTest.php rename to test/MezzioTest.php index e5e99bd..f3e340d 100644 --- a/test/ZendExpressiveTest.php +++ b/test/MezzioTest.php @@ -10,35 +10,35 @@ use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\StreamFactoryInterface; -use Zend\Diactoros\Response; -use Zend\Diactoros\ResponseFactory; -use Zend\Diactoros\ServerRequestFactory; -use Zend\Diactoros\StreamFactory; -use Zend\Expressive\Container\ApplicationFactory; -use Zend\Expressive\Container\MiddlewareContainerFactory; -use Zend\Expressive\Container\MiddlewareFactoryFactory; -use Zend\Expressive\Container\RequestHandlerRunnerFactory; -use Zend\Expressive\Container\ResponseFactoryFactory; -use Zend\Expressive\Container\ServerRequestErrorResponseGeneratorFactory; -use Zend\Expressive\MiddlewareContainer; -use Zend\Expressive\MiddlewareFactory; -use Zend\Expressive\Response\ServerRequestErrorResponseGenerator; -use Zend\Expressive\Router\FastRouteRouter; -use Zend\Expressive\Router\FastRouteRouterFactory; -use Zend\Expressive\Router\Middleware\DispatchMiddleware; -use Zend\Expressive\Router\Middleware\DispatchMiddlewareFactory; -use Zend\Expressive\Router\Middleware\RouteMiddleware; -use Zend\Expressive\Router\Middleware\RouteMiddlewareFactory; -use Zend\Expressive\Router\RouteCollector; -use Zend\Expressive\Router\RouteCollectorFactory; -use Zend\Expressive\Router\RouterInterface; -use Zend\HttpHandlerRunner\Emitter\EmitterInterface; -use Zend\HttpHandlerRunner\RequestHandlerRunner; -use Zend\ServiceManager\Factory\InvokableFactory; -use Zend\ServiceManager\ServiceManager; -use Zend\Stratigility\MiddlewarePipe; - -final class ZendExpressiveTest extends AbstractMiddlewareRunnerTest +use Laminas\Diactoros\Response; +use Laminas\Diactoros\ResponseFactory; +use Laminas\Diactoros\ServerRequestFactory; +use Laminas\Diactoros\StreamFactory; +use Mezzio\Container\ApplicationFactory; +use Mezzio\Container\MiddlewareContainerFactory; +use Mezzio\Container\MiddlewareFactoryFactory; +use Mezzio\Container\RequestHandlerRunnerFactory; +use Mezzio\Container\ResponseFactoryFactory; +use Mezzio\Container\ServerRequestErrorResponseGeneratorFactory; +use Mezzio\MiddlewareContainer; +use Mezzio\MiddlewareFactory; +use Mezzio\Response\ServerRequestErrorResponseGenerator; +use Mezzio\Router\FastRouteRouter; +use Mezzio\Router\FastRouteRouterFactory; +use Mezzio\Router\Middleware\DispatchMiddleware; +use Mezzio\Router\Middleware\DispatchMiddlewareFactory; +use Mezzio\Router\Middleware\RouteMiddleware; +use Mezzio\Router\Middleware\RouteMiddlewareFactory; +use Mezzio\Router\RouteCollector; +use Mezzio\Router\RouteCollectorFactory; +use Mezzio\Router\RouterInterface; +use Laminas\HttpHandlerRunner\Emitter\EmitterInterface; +use Laminas\HttpHandlerRunner\RequestHandlerRunner; +use Laminas\ServiceManager\Factory\InvokableFactory; +use Laminas\ServiceManager\ServiceManager; +use Laminas\Stratigility\MiddlewarePipe; + +final class MezzioTest extends AbstractMiddlewareRunnerTest { final public function testContainsConfigCollectorOutput(): void { @@ -56,7 +56,7 @@ final public function testContainsConfigCollectorOutput(): void $responseBody = (string) $response->getBody(); - $this->assertContains('DebugBar\\\DataCollector\\\ConfigCollector', $responseBody); + $this->assertStringContainsString('DebugBar\\\DataCollector\\\ConfigCollector', $responseBody); } protected function dispatchApplication(array $server, array $pipe = []): ResponseInterface @@ -105,7 +105,7 @@ private function createContainer(array $server): ContainerInterface $serviceManagerConfig['factories'][ResponseFactory::class] = InvokableFactory::class; $serviceManagerConfig['factories'][StreamFactory::class] = InvokableFactory::class; $serviceManagerConfig['aliases'][RouterInterface::class] = FastRouteRouter::class; - $serviceManagerConfig['aliases'][\Zend\Expressive\ApplicationPipeline::class] = MiddlewarePipe::class; + $serviceManagerConfig['aliases'][\Mezzio\ApplicationPipeline::class] = MiddlewarePipe::class; $serviceManagerConfig['aliases'][ResponseFactoryInterface::class] = ResponseFactory::class; $serviceManagerConfig['aliases'][StreamFactoryInterface::class] = StreamFactory::class; diff --git a/test/PhpDebugBarMiddlewareTest.php b/test/PhpDebugBarMiddlewareTest.php index 62f3297..423b195 100644 --- a/test/PhpDebugBarMiddlewareTest.php +++ b/test/PhpDebugBarMiddlewareTest.php @@ -7,11 +7,11 @@ use org\bovigo\vfs\vfsStream; use PhpMiddleware\PhpDebugBar\PhpDebugBarMiddleware; use PHPUnit\Framework\TestCase; -use Zend\Diactoros\Response; -use Zend\Diactoros\ResponseFactory; -use Zend\Diactoros\ServerRequest; -use Zend\Diactoros\StreamFactory; -use Zend\Diactoros\Uri; +use Laminas\Diactoros\Response; +use Laminas\Diactoros\ResponseFactory; +use Laminas\Diactoros\ServerRequest; +use Laminas\Diactoros\StreamFactory; +use Laminas\Diactoros\Uri; /** * PhpDebugBarMiddlewareTest @@ -24,7 +24,7 @@ class PhpDebugBarMiddlewareTest extends TestCase /** @var PhpDebugBarMiddleware */ protected $middleware; - protected function setUp() + protected function setUp(): void { $this->debugbarRenderer = $this->getMockBuilder(JavascriptRenderer::class)->disableOriginalConstructor()->getMock(); $this->debugbarRenderer->method('renderHead')->willReturn('RenderHead'); diff --git a/test/Slim3Test.php b/test/Slim3Test.php index 31fea8e..9a7cefd 100644 --- a/test/Slim3Test.php +++ b/test/Slim3Test.php @@ -10,8 +10,8 @@ use Psr\Http\Message\StreamFactoryInterface; use Slim\App; use Slim\Http\Environment; -use Zend\Diactoros\ResponseFactory; -use Zend\Diactoros\StreamFactory; +use Laminas\Diactoros\ResponseFactory; +use Laminas\Diactoros\StreamFactory; final class Slim3Test extends AbstractMiddlewareRunnerTest { diff --git a/test/TestEmitter.php b/test/TestEmitter.php index 7fe122a..fae807b 100644 --- a/test/TestEmitter.php +++ b/test/TestEmitter.php @@ -5,7 +5,7 @@ use BadMethodCallException; use Psr\Http\Message\ResponseInterface; -use Zend\HttpHandlerRunner\Emitter\EmitterInterface; +use Laminas\HttpHandlerRunner\Emitter\EmitterInterface; final class TestEmitter implements EmitterInterface {