diff --git a/composer.json b/composer.json index 7a755284..d106274a 100644 --- a/composer.json +++ b/composer.json @@ -13,7 +13,7 @@ ], "require": { "php": "^7.1", - "acelaya/ze-content-based-error-handler": "^2.0", + "acelaya/ze-content-based-error-handler": "^2.2", "cocur/slugify": "^3.0", "doctrine/annotations": "^1.4", "doctrine/cache": "^1.6", @@ -35,10 +35,11 @@ "theorchard/monolog-cascade": "^0.4", "zendframework/zend-config": "^3.0", "zendframework/zend-config-aggregator": "^1.0", - "zendframework/zend-expressive": "^2.0", - "zendframework/zend-expressive-fastroute": "^2.0", - "zendframework/zend-expressive-helpers": "^4.2", - "zendframework/zend-expressive-platesrenderer": "^1.3", + "zendframework/zend-diactoros": "^1.7", + "zendframework/zend-expressive": "^3.0", + "zendframework/zend-expressive-fastroute": "^3.0", + "zendframework/zend-expressive-helpers": "^5.0", + "zendframework/zend-expressive-platesrenderer": "^2.0", "zendframework/zend-i18n": "^2.7", "zendframework/zend-inputfilter": "^2.8", "zendframework/zend-paginator": "^2.6", @@ -56,7 +57,9 @@ "squizlabs/php_codesniffer": "^3.1 <3.2", "symfony/dotenv": "^3.4", "symfony/var-dumper": "^3.0", - "zendframework/zend-expressive-tooling": "^0.4" + "zendframework/zend-component-installer": "^2.1", + "zendframework/zend-expressive-migration": "^0.1.3", + "zendframework/zend-expressive-tooling": "^1.0" }, "autoload": { "psr-4": { @@ -103,7 +106,8 @@ "phpcov merge build --html build/html" ], "stan": "phpstan analyse module/*/src/ --level=6 -c phpstan.neon", - "infect": "infection --threads=4 --min-msi=65 --only-covered --log-verbosity=2" + "infect": "infection --threads=4 --min-msi=65 --only-covered --log-verbosity=2", + "expressive": "expressive" }, "config": { "process-timeout": 0, diff --git a/config/autoload/dependencies.global.php b/config/autoload/dependencies.global.php index 8afccea0..5d64b8c0 100644 --- a/config/autoload/dependencies.global.php +++ b/config/autoload/dependencies.global.php @@ -17,18 +17,16 @@ return [ 'dependencies' => [ 'factories' => [ - Expressive\Application::class => Container\ApplicationFactory::class, - Template\TemplateRendererInterface::class => Plates\PlatesRendererFactory::class, - Router\RouterInterface::class => Router\FastRouteRouterFactory::class, - ErrorHandler::class => Container\ErrorHandlerFactory::class, ImplicitOptionsMiddleware::class => EmptyResponseImplicitOptionsMiddlewareFactory::class, Helper\UrlHelper::class => Helper\UrlHelperFactory::class, Helper\ServerUrlHelper::class => InvokableFactory::class, ], - 'aliases' => [ - Middleware\ImplicitOptionsMiddleware::class => ImplicitOptionsMiddleware::class, + 'delegators' => [ + Expressive\Application::class => [ + Container\ApplicationConfigInjectionDelegator::class, + ], ], ], diff --git a/config/autoload/middleware-pipeline.global.php b/config/autoload/middleware-pipeline.global.php index 2d4c0c18..5249b0de 100644 --- a/config/autoload/middleware-pipeline.global.php +++ b/config/autoload/middleware-pipeline.global.php @@ -48,6 +48,7 @@ return [ 'post-routing' => [ 'middleware' => [ Expressive\Router\Middleware\DispatchMiddleware::class, + Expressive\Handler\NotFoundHandler::class, ], 'priority' => 1, ], diff --git a/config/config.php b/config/config.php index 28ad3334..d7ec97e9 100644 --- a/config/config.php +++ b/config/config.php @@ -7,6 +7,7 @@ use Shlinkio\Shlink\Common; use Shlinkio\Shlink\Core; use Shlinkio\Shlink\Rest; use Zend\ConfigAggregator; +use Zend\Expressive; /** * Configuration files are loaded in a specific order. First ``global.php``, then ``*.global.php``. @@ -18,8 +19,11 @@ use Zend\ConfigAggregator; */ return (new ConfigAggregator\ConfigAggregator([ - Zend\Expressive\ConfigProvider::class, - Zend\Expressive\Router\ConfigProvider::class, + Expressive\ConfigProvider::class, + Expressive\Router\ConfigProvider::class, + Expressive\Router\FastRouteRouter\ConfigProvider::class, + Expressive\Plates\ConfigProvider::class, + Expressive\Helper\ConfigProvider::class, ExpressiveErrorHandler\ConfigProvider::class, Common\ConfigProvider::class, Core\ConfigProvider::class, diff --git a/module/Common/src/Factory/EmptyResponseImplicitOptionsMiddlewareFactory.php b/module/Common/src/Factory/EmptyResponseImplicitOptionsMiddlewareFactory.php index 89858e8c..4371bb6b 100644 --- a/module/Common/src/Factory/EmptyResponseImplicitOptionsMiddlewareFactory.php +++ b/module/Common/src/Factory/EmptyResponseImplicitOptionsMiddlewareFactory.php @@ -27,6 +27,8 @@ class EmptyResponseImplicitOptionsMiddlewareFactory implements FactoryInterface */ public function __invoke(ContainerInterface $container, $requestedName, array $options = null) { - return new ImplicitOptionsMiddleware(new EmptyResponse()); + return new ImplicitOptionsMiddleware(function () { + return new EmptyResponse(); + }); } } diff --git a/module/Common/src/Middleware/LocaleMiddleware.php b/module/Common/src/Middleware/LocaleMiddleware.php index 1c48c863..cdb5df19 100644 --- a/module/Common/src/Middleware/LocaleMiddleware.php +++ b/module/Common/src/Middleware/LocaleMiddleware.php @@ -3,10 +3,10 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Common\Middleware; -use Interop\Http\ServerMiddleware\DelegateInterface; -use Interop\Http\ServerMiddleware\MiddlewareInterface; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; +use Psr\Http\Server\MiddlewareInterface; +use Psr\Http\Server\RequestHandlerInterface as DelegateInterface; use Zend\I18n\Translator\Translator; class LocaleMiddleware implements MiddlewareInterface @@ -32,15 +32,15 @@ class LocaleMiddleware implements MiddlewareInterface * * @return Response */ - public function process(Request $request, DelegateInterface $delegate) + public function process(Request $request, DelegateInterface $delegate): Response { if (! $request->hasHeader('Accept-Language')) { - return $delegate->process($request); + return $delegate->handle($request); } $locale = $request->getHeaderLine('Accept-Language'); $this->translator->setLocale($this->normalizeLocale($locale)); - return $delegate->process($request); + return $delegate->handle($request); } /** diff --git a/module/Common/test/Util/TestUtils.php b/module/Common/test/Util/TestUtils.php index 075498d2..218298a4 100644 --- a/module/Common/test/Util/TestUtils.php +++ b/module/Common/test/Util/TestUtils.php @@ -3,11 +3,11 @@ declare(strict_types=1); namespace ShlinkioTest\Shlink\Common\Util; -use Interop\Http\ServerMiddleware\DelegateInterface; use Prophecy\Argument; use Prophecy\Prophet; use Psr\Http\Message\RequestInterface; use Psr\Http\Message\ResponseInterface; +use Psr\Http\Server\RequestHandlerInterface as DelegateInterface; use Zend\Diactoros\Response; class TestUtils diff --git a/module/Core/src/Action/PreviewAction.php b/module/Core/src/Action/PreviewAction.php index 0e1043a0..3dd3ba43 100644 --- a/module/Core/src/Action/PreviewAction.php +++ b/module/Core/src/Action/PreviewAction.php @@ -3,10 +3,10 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Core\Action; -use Interop\Http\ServerMiddleware\DelegateInterface; -use Interop\Http\ServerMiddleware\MiddlewareInterface; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; +use Psr\Http\Server\MiddlewareInterface; +use Psr\Http\Server\RequestHandlerInterface; use Shlinkio\Shlink\Common\Exception\PreviewGenerationException; use Shlinkio\Shlink\Common\Service\PreviewGeneratorInterface; use Shlinkio\Shlink\Common\Util\ResponseUtilsTrait; @@ -40,11 +40,11 @@ class PreviewAction implements MiddlewareInterface * to the next middleware component to create the response. * * @param Request $request - * @param DelegateInterface $delegate + * @param RequestHandlerInterface $handler * * @return Response */ - public function process(Request $request, DelegateInterface $delegate) + public function process(Request $request, RequestHandlerInterface $handler): Response { $shortCode = $request->getAttribute('shortCode'); @@ -52,12 +52,8 @@ class PreviewAction implements MiddlewareInterface $url = $this->urlShortener->shortCodeToUrl($shortCode); $imagePath = $this->previewGenerator->generatePreview($url); return $this->generateImageResponse($imagePath); - } catch (InvalidShortCodeException $e) { - return $this->buildErrorResponse($request, $delegate); - } catch (EntityDoesNotExistException $e) { - return $this->buildErrorResponse($request, $delegate); - } catch (PreviewGenerationException $e) { - return $this->buildErrorResponse($request, $delegate); + } catch (InvalidShortCodeException | EntityDoesNotExistException | PreviewGenerationException $e) { + return $this->buildErrorResponse($request, $handler); } } } diff --git a/module/Core/src/Action/QrCodeAction.php b/module/Core/src/Action/QrCodeAction.php index 30363619..9843e079 100644 --- a/module/Core/src/Action/QrCodeAction.php +++ b/module/Core/src/Action/QrCodeAction.php @@ -4,10 +4,10 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Core\Action; use Endroid\QrCode\QrCode; -use Interop\Http\ServerMiddleware\DelegateInterface; -use Interop\Http\ServerMiddleware\MiddlewareInterface; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; +use Psr\Http\Server\MiddlewareInterface; +use Psr\Http\Server\RequestHandlerInterface; use Psr\Log\LoggerInterface; use Psr\Log\NullLogger; use Shlinkio\Shlink\Common\Response\QrCodeResponse; @@ -49,11 +49,11 @@ class QrCodeAction implements MiddlewareInterface * to the next middleware component to create the response. * * @param Request $request - * @param DelegateInterface $delegate + * @param RequestHandlerInterface $handler * * @return Response */ - public function process(Request $request, DelegateInterface $delegate) + public function process(Request $request, RequestHandlerInterface $handler): Response { // Make sure the short URL exists for this short code $shortCode = $request->getAttribute('shortCode'); @@ -61,10 +61,10 @@ class QrCodeAction implements MiddlewareInterface $this->urlShortener->shortCodeToUrl($shortCode); } catch (InvalidShortCodeException $e) { $this->logger->warning('Tried to create a QR code with an invalid short code' . PHP_EOL . $e); - return $this->buildErrorResponse($request, $delegate); + return $this->buildErrorResponse($request, $handler); } catch (EntityDoesNotExistException $e) { $this->logger->warning('Tried to create a QR code with a not found short code' . PHP_EOL . $e); - return $this->buildErrorResponse($request, $delegate); + return $this->buildErrorResponse($request, $handler); } $path = $this->router->generateUri('long-url-redirect', ['shortCode' => $shortCode]); diff --git a/module/Core/src/Action/RedirectAction.php b/module/Core/src/Action/RedirectAction.php index e7702dde..a53a10e8 100644 --- a/module/Core/src/Action/RedirectAction.php +++ b/module/Core/src/Action/RedirectAction.php @@ -3,10 +3,10 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Core\Action; -use Interop\Http\ServerMiddleware\DelegateInterface; -use Interop\Http\ServerMiddleware\MiddlewareInterface; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; +use Psr\Http\Server\MiddlewareInterface; +use Psr\Http\Server\RequestHandlerInterface; use Shlinkio\Shlink\Core\Action\Util\ErrorResponseBuilderTrait; use Shlinkio\Shlink\Core\Exception\EntityDoesNotExistException; use Shlinkio\Shlink\Core\Exception\InvalidShortCodeException; @@ -47,11 +47,11 @@ class RedirectAction implements MiddlewareInterface * to the next middleware component to create the response. * * @param Request $request - * @param DelegateInterface $delegate + * @param RequestHandlerInterface $handler * * @return Response */ - public function process(Request $request, DelegateInterface $delegate) + public function process(Request $request, RequestHandlerInterface $handler): Response { $shortCode = $request->getAttribute('shortCode', ''); $query = $request->getQueryParams(); @@ -69,9 +69,9 @@ class RedirectAction implements MiddlewareInterface // Use a temporary redirect to make sure browsers always hit the server for analytics purposes return new RedirectResponse($longUrl); } catch (InvalidShortCodeException $e) { - return $this->buildErrorResponse($request, $delegate); + return $this->buildErrorResponse($request, $handler); } catch (EntityDoesNotExistException $e) { - return $this->buildErrorResponse($request, $delegate); + return $this->buildErrorResponse($request, $handler); } } } diff --git a/module/Core/src/Action/Util/ErrorResponseBuilderTrait.php b/module/Core/src/Action/Util/ErrorResponseBuilderTrait.php index 57380b8b..efd0bc2a 100644 --- a/module/Core/src/Action/Util/ErrorResponseBuilderTrait.php +++ b/module/Core/src/Action/Util/ErrorResponseBuilderTrait.php @@ -3,16 +3,18 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Core\Action\Util; -use Interop\Http\ServerMiddleware\DelegateInterface; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; +use Psr\Http\Server\RequestHandlerInterface; use Shlinkio\Shlink\Core\Response\NotFoundDelegate; trait ErrorResponseBuilderTrait { - private function buildErrorResponse(ServerRequestInterface $request, DelegateInterface $delegate): ResponseInterface - { + private function buildErrorResponse( + ServerRequestInterface $request, + RequestHandlerInterface $handler + ): ResponseInterface { $request = $request->withAttribute(NotFoundDelegate::NOT_FOUND_TEMPLATE, 'ShlinkCore::invalid-short-code'); - return $delegate->process($request); + return $handler->handle($request); } } diff --git a/module/Core/src/Middleware/QrCodeCacheMiddleware.php b/module/Core/src/Middleware/QrCodeCacheMiddleware.php index e91ebd5e..2f8bafe8 100644 --- a/module/Core/src/Middleware/QrCodeCacheMiddleware.php +++ b/module/Core/src/Middleware/QrCodeCacheMiddleware.php @@ -4,10 +4,10 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Core\Middleware; use Doctrine\Common\Cache\Cache; -use Interop\Http\ServerMiddleware\DelegateInterface; -use Interop\Http\ServerMiddleware\MiddlewareInterface; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; +use Psr\Http\Server\MiddlewareInterface; +use Psr\Http\Server\RequestHandlerInterface; use Zend\Diactoros\Response as DiactResp; class QrCodeCacheMiddleware implements MiddlewareInterface @@ -27,11 +27,11 @@ class QrCodeCacheMiddleware implements MiddlewareInterface * to the next middleware component to create the response. * * @param Request $request - * @param DelegateInterface $delegate + * @param RequestHandlerInterface $handler * * @return Response */ - public function process(Request $request, DelegateInterface $delegate) + public function process(Request $request, RequestHandlerInterface $handler): Response { $cacheKey = $request->getUri()->getPath(); @@ -45,7 +45,7 @@ class QrCodeCacheMiddleware implements MiddlewareInterface // If not, call the next middleware and cache it /** @var Response $resp */ - $resp = $delegate->process($request); + $resp = $handler->handle($request); $this->cache->save($cacheKey, [ 'body' => $resp->getBody()->__toString(), 'content-type' => $resp->getHeaderLine('Content-Type'), diff --git a/module/Core/src/Response/NotFoundDelegate.php b/module/Core/src/Response/NotFoundDelegate.php index abe5f06a..2698625a 100644 --- a/module/Core/src/Response/NotFoundDelegate.php +++ b/module/Core/src/Response/NotFoundDelegate.php @@ -4,9 +4,9 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Core\Response; use Fig\Http\Message\StatusCodeInterface; -use Interop\Http\ServerMiddleware\DelegateInterface; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; +use Psr\Http\Server\RequestHandlerInterface as DelegateInterface; use Zend\Diactoros\Response; use Zend\Expressive\Template\TemplateRendererInterface; @@ -37,7 +37,7 @@ class NotFoundDelegate implements DelegateInterface * @return ResponseInterface * @throws \InvalidArgumentException */ - public function process(ServerRequestInterface $request): ResponseInterface + public function handle(ServerRequestInterface $request): ResponseInterface { $accepts = explode(',', $request->getHeaderLine('Accept')); $accept = array_shift($accepts); diff --git a/module/Core/test/Action/PreviewActionTest.php b/module/Core/test/Action/PreviewActionTest.php index 8817eaa4..46d03a83 100644 --- a/module/Core/test/Action/PreviewActionTest.php +++ b/module/Core/test/Action/PreviewActionTest.php @@ -3,11 +3,11 @@ declare(strict_types=1); namespace ShlinkioTest\Shlink\Core\Action; -use Interop\Http\ServerMiddleware\DelegateInterface; use PHPUnit\Framework\TestCase; use Prophecy\Argument; use Prophecy\Prophecy\MethodProphecy; use Prophecy\Prophecy\ObjectProphecy; +use Psr\Http\Server\RequestHandlerInterface as DelegateInterface; use Shlinkio\Shlink\Common\Service\PreviewGenerator; use Shlinkio\Shlink\Core\Action\PreviewAction; use Shlinkio\Shlink\Core\Exception\EntityDoesNotExistException; diff --git a/module/Core/test/Action/QrCodeActionTest.php b/module/Core/test/Action/QrCodeActionTest.php index c071ef7e..b8a4658c 100644 --- a/module/Core/test/Action/QrCodeActionTest.php +++ b/module/Core/test/Action/QrCodeActionTest.php @@ -3,11 +3,11 @@ declare(strict_types=1); namespace ShlinkioTest\Shlink\Core\Action; -use Interop\Http\ServerMiddleware\DelegateInterface; use PHPUnit\Framework\TestCase; use Prophecy\Argument; use Prophecy\Prophecy\MethodProphecy; use Prophecy\Prophecy\ObjectProphecy; +use Psr\Http\Server\RequestHandlerInterface as DelegateInterface; use Shlinkio\Shlink\Common\Response\QrCodeResponse; use Shlinkio\Shlink\Core\Action\QrCodeAction; use Shlinkio\Shlink\Core\Exception\EntityDoesNotExistException; diff --git a/module/Core/test/Action/RedirectActionTest.php b/module/Core/test/Action/RedirectActionTest.php index ed37baae..014b7a92 100644 --- a/module/Core/test/Action/RedirectActionTest.php +++ b/module/Core/test/Action/RedirectActionTest.php @@ -3,11 +3,11 @@ declare(strict_types=1); namespace ShlinkioTest\Shlink\Core\Action; -use Interop\Http\ServerMiddleware\DelegateInterface; use PHPUnit\Framework\TestCase; use Prophecy\Argument; use Prophecy\Prophecy\MethodProphecy; use Prophecy\Prophecy\ObjectProphecy; +use Psr\Http\Server\RequestHandlerInterface as DelegateInterface; use Shlinkio\Shlink\Core\Action\RedirectAction; use Shlinkio\Shlink\Core\Exception\EntityDoesNotExistException; use Shlinkio\Shlink\Core\Options\AppOptions; diff --git a/module/Core/test/Middleware/QrCodeCacheMiddlewareTest.php b/module/Core/test/Middleware/QrCodeCacheMiddlewareTest.php index 5b173f68..1fe7f4ab 100644 --- a/module/Core/test/Middleware/QrCodeCacheMiddlewareTest.php +++ b/module/Core/test/Middleware/QrCodeCacheMiddlewareTest.php @@ -5,9 +5,9 @@ namespace ShlinkioTest\Shlink\Core\Middleware; use Doctrine\Common\Cache\ArrayCache; use Doctrine\Common\Cache\Cache; -use Interop\Http\ServerMiddleware\DelegateInterface; use PHPUnit\Framework\TestCase; use Prophecy\Argument; +use Psr\Http\Server\RequestHandlerInterface as DelegateInterface; use Shlinkio\Shlink\Core\Middleware\QrCodeCacheMiddleware; use Zend\Diactoros\Response; use Zend\Diactoros\ServerRequestFactory; diff --git a/module/Rest/src/Action/AbstractRestAction.php b/module/Rest/src/Action/AbstractRestAction.php index 9ba1e650..a9f491b6 100644 --- a/module/Rest/src/Action/AbstractRestAction.php +++ b/module/Rest/src/Action/AbstractRestAction.php @@ -5,11 +5,11 @@ namespace Shlinkio\Shlink\Rest\Action; use Fig\Http\Message\RequestMethodInterface; use Fig\Http\Message\StatusCodeInterface; -use Interop\Http\ServerMiddleware\MiddlewareInterface; +use Psr\Http\Server\RequestHandlerInterface; use Psr\Log\LoggerInterface; use Psr\Log\NullLogger; -abstract class AbstractRestAction implements MiddlewareInterface, RequestMethodInterface, StatusCodeInterface +abstract class AbstractRestAction implements RequestHandlerInterface, RequestMethodInterface, StatusCodeInterface { /** * @var LoggerInterface diff --git a/module/Rest/src/Action/AuthenticateAction.php b/module/Rest/src/Action/AuthenticateAction.php index f4ac08b0..a4df2f4c 100644 --- a/module/Rest/src/Action/AuthenticateAction.php +++ b/module/Rest/src/Action/AuthenticateAction.php @@ -3,7 +3,6 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Rest\Action; -use Interop\Http\ServerMiddleware\DelegateInterface; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Log\LoggerInterface; @@ -43,11 +42,10 @@ class AuthenticateAction extends AbstractRestAction /** * @param Request $request - * @param DelegateInterface $delegate * @return null|Response * @throws \InvalidArgumentException */ - public function process(Request $request, DelegateInterface $delegate) + public function handle(Request $request): Response { $authData = $request->getParsedBody(); if (! isset($authData['apiKey'])) { @@ -61,7 +59,7 @@ class AuthenticateAction extends AbstractRestAction // Authenticate using provided API key $apiKey = $this->apiKeyService->getByKey($authData['apiKey']); - if (! isset($apiKey) || ! $apiKey->isValid()) { + if ($apiKey === null || ! $apiKey->isValid()) { return new JsonResponse([ 'error' => RestUtils::INVALID_API_KEY_ERROR, 'message' => $this->translator->translate('Provided API key does not exist or is invalid.'), diff --git a/module/Rest/src/Action/CreateShortcodeAction.php b/module/Rest/src/Action/CreateShortcodeAction.php index 56169592..a0b4bd5d 100644 --- a/module/Rest/src/Action/CreateShortcodeAction.php +++ b/module/Rest/src/Action/CreateShortcodeAction.php @@ -3,7 +3,6 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Rest\Action; -use Interop\Http\ServerMiddleware\DelegateInterface; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Log\LoggerInterface; @@ -44,11 +43,10 @@ class CreateShortcodeAction extends AbstractRestAction /** * @param Request $request - * @param DelegateInterface $delegate * @return null|Response * @throws \InvalidArgumentException */ - public function process(Request $request, DelegateInterface $delegate) + public function handle(Request $request): Response { $postData = (array) $request->getParsedBody(); if (! isset($postData['longUrl'])) { diff --git a/module/Rest/src/Action/EditShortCodeAction.php b/module/Rest/src/Action/EditShortCodeAction.php index a8f12de6..3e9be062 100644 --- a/module/Rest/src/Action/EditShortCodeAction.php +++ b/module/Rest/src/Action/EditShortCodeAction.php @@ -3,7 +3,6 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Rest\Action; -use Interop\Http\ServerMiddleware\DelegateInterface; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Log\LoggerInterface; @@ -41,12 +40,11 @@ class EditShortCodeAction extends AbstractRestAction * to the next middleware component to create the response. * * @param ServerRequestInterface $request - * @param DelegateInterface $delegate * * @return ResponseInterface * @throws \InvalidArgumentException */ - public function process(ServerRequestInterface $request, DelegateInterface $delegate): ResponseInterface + public function handle(ServerRequestInterface $request): ResponseInterface { $postData = (array) $request->getParsedBody(); $shortCode = $request->getAttribute('shortCode', ''); diff --git a/module/Rest/src/Action/EditShortcodeTagsAction.php b/module/Rest/src/Action/EditShortcodeTagsAction.php index b1aa6492..72ae4345 100644 --- a/module/Rest/src/Action/EditShortcodeTagsAction.php +++ b/module/Rest/src/Action/EditShortcodeTagsAction.php @@ -3,7 +3,6 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Rest\Action; -use Interop\Http\ServerMiddleware\DelegateInterface; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Log\LoggerInterface; @@ -36,11 +35,10 @@ class EditShortcodeTagsAction extends AbstractRestAction /** * @param Request $request - * @param DelegateInterface $delegate * @return null|Response * @throws \InvalidArgumentException */ - public function process(Request $request, DelegateInterface $delegate) + public function handle(Request $request): Response { $shortCode = $request->getAttribute('shortCode'); $bodyParams = $request->getParsedBody(); diff --git a/module/Rest/src/Action/GetVisitsAction.php b/module/Rest/src/Action/GetVisitsAction.php index 490b0470..fd5c8c0b 100644 --- a/module/Rest/src/Action/GetVisitsAction.php +++ b/module/Rest/src/Action/GetVisitsAction.php @@ -3,7 +3,6 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Rest\Action; -use Interop\Http\ServerMiddleware\DelegateInterface; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Log\LoggerInterface; @@ -37,11 +36,10 @@ class GetVisitsAction extends AbstractRestAction /** * @param Request $request - * @param DelegateInterface $delegate * @return null|Response * @throws \InvalidArgumentException */ - public function process(Request $request, DelegateInterface $delegate) + public function handle(Request $request): Response { $shortCode = $request->getAttribute('shortCode'); $startDate = $this->getDateQueryParam($request, 'startDate'); diff --git a/module/Rest/src/Action/ListShortcodesAction.php b/module/Rest/src/Action/ListShortcodesAction.php index 83007e29..0d947b59 100644 --- a/module/Rest/src/Action/ListShortcodesAction.php +++ b/module/Rest/src/Action/ListShortcodesAction.php @@ -3,7 +3,6 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Rest\Action; -use Interop\Http\ServerMiddleware\DelegateInterface; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Log\LoggerInterface; @@ -38,11 +37,10 @@ class ListShortcodesAction extends AbstractRestAction /** * @param Request $request - * @param DelegateInterface $delegate * @return null|Response * @throws \InvalidArgumentException */ - public function process(Request $request, DelegateInterface $delegate) + public function handle(Request $request): Response { try { $params = $this->queryToListParams($request->getQueryParams()); @@ -64,10 +62,10 @@ class ListShortcodesAction extends AbstractRestAction public function queryToListParams(array $query) { return [ - isset($query['page']) ? $query['page'] : 1, - isset($query['searchTerm']) ? $query['searchTerm'] : null, - isset($query['tags']) ? $query['tags'] : [], - isset($query['orderBy']) ? $query['orderBy'] : null, + $query['page'] ?? 1, + $query['searchTerm'] ?? null, + $query['tags'] ?? [], + $query['orderBy'] ?? null, ]; } } diff --git a/module/Rest/src/Action/ResolveUrlAction.php b/module/Rest/src/Action/ResolveUrlAction.php index 1abf5626..ffb62613 100644 --- a/module/Rest/src/Action/ResolveUrlAction.php +++ b/module/Rest/src/Action/ResolveUrlAction.php @@ -3,7 +3,6 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Rest\Action; -use Interop\Http\ServerMiddleware\DelegateInterface; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; use Psr\Log\LoggerInterface; @@ -37,11 +36,10 @@ class ResolveUrlAction extends AbstractRestAction /** * @param Request $request - * @param DelegateInterface $delegate * @return null|Response * @throws \InvalidArgumentException */ - public function process(Request $request, DelegateInterface $delegate) + public function handle(Request $request): Response { $shortCode = $request->getAttribute('shortCode'); diff --git a/module/Rest/src/Action/Tag/CreateTagsAction.php b/module/Rest/src/Action/Tag/CreateTagsAction.php index da27547c..f0ce1547 100644 --- a/module/Rest/src/Action/Tag/CreateTagsAction.php +++ b/module/Rest/src/Action/Tag/CreateTagsAction.php @@ -3,9 +3,9 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Rest\Action\Tag; -use Interop\Http\ServerMiddleware\DelegateInterface; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; +use Psr\Http\Server\RequestHandlerInterface; use Psr\Log\LoggerInterface; use Shlinkio\Shlink\Core\Service\Tag\TagServiceInterface; use Shlinkio\Shlink\Rest\Action\AbstractRestAction; @@ -29,15 +29,14 @@ class CreateTagsAction extends AbstractRestAction * to the next middleware component to create the response. * * @param ServerRequestInterface $request - * @param DelegateInterface $delegate * * @return ResponseInterface * @throws \InvalidArgumentException */ - public function process(ServerRequestInterface $request, DelegateInterface $delegate) + public function handle(ServerRequestInterface $request): ResponseInterface { $body = $request->getParsedBody(); - $tags = isset($body['tags']) ? $body['tags'] : []; + $tags = $body['tags'] ?? []; return new JsonResponse([ 'tags' => [ diff --git a/module/Rest/src/Action/Tag/DeleteTagsAction.php b/module/Rest/src/Action/Tag/DeleteTagsAction.php index ce172cb5..e7ae7b48 100644 --- a/module/Rest/src/Action/Tag/DeleteTagsAction.php +++ b/module/Rest/src/Action/Tag/DeleteTagsAction.php @@ -3,7 +3,6 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Rest\Action\Tag; -use Interop\Http\ServerMiddleware\DelegateInterface; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Log\LoggerInterface; @@ -29,14 +28,13 @@ class DeleteTagsAction extends AbstractRestAction * to the next middleware component to create the response. * * @param ServerRequestInterface $request - * @param DelegateInterface $delegate * * @return ResponseInterface */ - public function process(ServerRequestInterface $request, DelegateInterface $delegate) + public function handle(ServerRequestInterface $request): ResponseInterface { $query = $request->getQueryParams(); - $tags = isset($query['tags']) ? $query['tags'] : []; + $tags = $query['tags'] ?? []; $this->tagService->deleteTags($tags); return new EmptyResponse(); diff --git a/module/Rest/src/Action/Tag/ListTagsAction.php b/module/Rest/src/Action/Tag/ListTagsAction.php index c78f4ca4..79c6a79e 100644 --- a/module/Rest/src/Action/Tag/ListTagsAction.php +++ b/module/Rest/src/Action/Tag/ListTagsAction.php @@ -3,7 +3,6 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Rest\Action\Tag; -use Interop\Http\ServerMiddleware\DelegateInterface; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Log\LoggerInterface; @@ -29,12 +28,11 @@ class ListTagsAction extends AbstractRestAction * to the next middleware component to create the response. * * @param ServerRequestInterface $request - * @param DelegateInterface $delegate * * @return ResponseInterface * @throws \InvalidArgumentException */ - public function process(ServerRequestInterface $request, DelegateInterface $delegate) + public function handle(ServerRequestInterface $request): ResponseInterface { return new JsonResponse([ 'tags' => [ diff --git a/module/Rest/src/Action/Tag/UpdateTagAction.php b/module/Rest/src/Action/Tag/UpdateTagAction.php index bb8fbbe2..d2e9b871 100644 --- a/module/Rest/src/Action/Tag/UpdateTagAction.php +++ b/module/Rest/src/Action/Tag/UpdateTagAction.php @@ -3,7 +3,6 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Rest\Action\Tag; -use Interop\Http\ServerMiddleware\DelegateInterface; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Log\LoggerInterface; @@ -41,12 +40,11 @@ class UpdateTagAction extends AbstractRestAction * to the next middleware component to create the response. * * @param ServerRequestInterface $request - * @param DelegateInterface $delegate * * @return ResponseInterface * @throws \InvalidArgumentException */ - public function process(ServerRequestInterface $request, DelegateInterface $delegate) + public function handle(ServerRequestInterface $request): ResponseInterface { $body = $request->getParsedBody(); if (! isset($body['oldName'], $body['newName'])) { diff --git a/module/Rest/src/Middleware/BodyParserMiddleware.php b/module/Rest/src/Middleware/BodyParserMiddleware.php index 69929af4..1bbc26ea 100644 --- a/module/Rest/src/Middleware/BodyParserMiddleware.php +++ b/module/Rest/src/Middleware/BodyParserMiddleware.php @@ -4,10 +4,10 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Rest\Middleware; use Fig\Http\Message\RequestMethodInterface; -use Interop\Http\ServerMiddleware\DelegateInterface; -use Interop\Http\ServerMiddleware\MiddlewareInterface; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; +use Psr\Http\Server\MiddlewareInterface; +use Psr\Http\Server\RequestHandlerInterface; use Shlinkio\Shlink\Rest\Exception\RuntimeException; class BodyParserMiddleware implements MiddlewareInterface, RequestMethodInterface @@ -17,11 +17,11 @@ class BodyParserMiddleware implements MiddlewareInterface, RequestMethodInterfac * to the next middleware component to create the response. * * @param Request $request - * @param DelegateInterface $delegate + * @param RequestHandlerInterface $handler * * @return Response */ - public function process(Request $request, DelegateInterface $delegate) + public function process(Request $request, RequestHandlerInterface $handler): Response { $method = $request->getMethod(); $currentParams = $request->getParsedBody(); @@ -32,16 +32,16 @@ class BodyParserMiddleware implements MiddlewareInterface, RequestMethodInterfac self::METHOD_HEAD, self::METHOD_OPTIONS, ], true)) { - return $delegate->process($request); + return $handler->handle($request); } // If the accepted content is JSON, try to parse the body from JSON $contentType = $this->getRequestContentType($request); if (\in_array($contentType, ['application/json', 'text/json', 'application/x-json'], true)) { - return $delegate->process($this->parseFromJson($request)); + return $handler->handle($this->parseFromJson($request)); } - return $delegate->process($this->parseFromUrlEncoded($request)); + return $handler->handle($this->parseFromUrlEncoded($request)); } /** diff --git a/module/Rest/src/Middleware/CheckAuthenticationMiddleware.php b/module/Rest/src/Middleware/CheckAuthenticationMiddleware.php index 071eadba..8a030e8d 100644 --- a/module/Rest/src/Middleware/CheckAuthenticationMiddleware.php +++ b/module/Rest/src/Middleware/CheckAuthenticationMiddleware.php @@ -4,10 +4,10 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Rest\Middleware; use Fig\Http\Message\StatusCodeInterface; -use Interop\Http\ServerMiddleware\DelegateInterface; -use Interop\Http\ServerMiddleware\MiddlewareInterface; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; +use Psr\Http\Server\MiddlewareInterface; +use Psr\Http\Server\RequestHandlerInterface; use Psr\Log\LoggerInterface; use Psr\Log\NullLogger; use Shlinkio\Shlink\Rest\Action\AuthenticateAction; @@ -21,7 +21,7 @@ use Zend\Stdlib\ErrorHandler; class CheckAuthenticationMiddleware implements MiddlewareInterface, StatusCodeInterface { - const AUTHORIZATION_HEADER = 'Authorization'; + public const AUTHORIZATION_HEADER = 'Authorization'; /** * @var TranslatorInterface @@ -51,13 +51,13 @@ class CheckAuthenticationMiddleware implements MiddlewareInterface, StatusCodeIn * to the next middleware component to create the response. * * @param Request $request - * @param DelegateInterface $delegate + * @param RequestHandlerInterface $handler * * @return Response * @throws \InvalidArgumentException * @throws \ErrorException */ - public function process(Request $request, DelegateInterface $delegate) + public function process(Request $request, RequestHandlerInterface $handler): Response { // If current route is the authenticate route or an OPTIONS request, continue to the next middleware /** @var RouteResult|null $routeResult */ @@ -67,7 +67,7 @@ class CheckAuthenticationMiddleware implements MiddlewareInterface, StatusCodeIn || $routeResult->getMatchedRouteName() === AuthenticateAction::class || $request->getMethod() === 'OPTIONS' ) { - return $delegate->process($request); + return $handler->handle($request); } // Check that the auth header was provided, and that it belongs to a non-expired token @@ -107,7 +107,7 @@ class CheckAuthenticationMiddleware implements MiddlewareInterface, StatusCodeIn // Update the token expiration and continue to next middleware $jwt = $this->jwtService->refresh($jwt); - $response = $delegate->process($request); + $response = $handler->handle($request); // Return the response with the updated token on it return $response->withHeader(self::AUTHORIZATION_HEADER, 'Bearer ' . $jwt); diff --git a/module/Rest/src/Middleware/CrossDomainMiddleware.php b/module/Rest/src/Middleware/CrossDomainMiddleware.php index 9237c743..dc4bf9d6 100644 --- a/module/Rest/src/Middleware/CrossDomainMiddleware.php +++ b/module/Rest/src/Middleware/CrossDomainMiddleware.php @@ -4,10 +4,10 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Rest\Middleware; use Fig\Http\Message\RequestMethodInterface; -use Interop\Http\ServerMiddleware\DelegateInterface; -use Interop\Http\ServerMiddleware\MiddlewareInterface; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; +use Psr\Http\Server\MiddlewareInterface; +use Psr\Http\Server\RequestHandlerInterface; class CrossDomainMiddleware implements MiddlewareInterface, RequestMethodInterface { @@ -16,15 +16,15 @@ class CrossDomainMiddleware implements MiddlewareInterface, RequestMethodInterfa * to the next middleware component to create the response. * * @param Request $request - * @param DelegateInterface $delegate + * @param RequestHandlerInterface $handler * * @return Response * @throws \InvalidArgumentException */ - public function process(Request $request, DelegateInterface $delegate) + public function process(Request $request, RequestHandlerInterface $handler): Response { /** @var Response $response */ - $response = $delegate->process($request); + $response = $handler->handle($request); if (! $request->hasHeader('Origin')) { return $response; } diff --git a/module/Rest/src/Middleware/PathVersionMiddleware.php b/module/Rest/src/Middleware/PathVersionMiddleware.php index 18cfc394..f8fc0113 100644 --- a/module/Rest/src/Middleware/PathVersionMiddleware.php +++ b/module/Rest/src/Middleware/PathVersionMiddleware.php @@ -3,10 +3,10 @@ declare(strict_types=1); namespace Shlinkio\Shlink\Rest\Middleware; -use Interop\Http\ServerMiddleware\DelegateInterface; -use Interop\Http\ServerMiddleware\MiddlewareInterface; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; +use Psr\Http\Server\MiddlewareInterface; +use Psr\Http\Server\RequestHandlerInterface; class PathVersionMiddleware implements MiddlewareInterface { @@ -15,18 +15,18 @@ class PathVersionMiddleware implements MiddlewareInterface * to the next middleware component to create the response. * * @param Request $request - * @param DelegateInterface $delegate + * @param RequestHandlerInterface $handler * * @return Response */ - public function process(Request $request, DelegateInterface $delegate) + public function process(Request $request, RequestHandlerInterface $handler): Response { $uri = $request->getUri(); $path = $uri->getPath(); // TODO Workaround... Do not process the request if it does not start with rest if (\strpos($path, '/rest') !== 0) { - return $delegate->process($request); + return $handler->handle($request); } // If the path does not begin with the version number, prepend v1 by default for BC compatibility purposes @@ -41,6 +41,6 @@ class PathVersionMiddleware implements MiddlewareInterface $request = $request->withUri($uri->withPath(\implode('/', $parts))); } - return $delegate->process($request); + return $handler->handle($request); } } diff --git a/module/Rest/test/Action/EditShortCodeActionTest.php b/module/Rest/test/Action/EditShortCodeActionTest.php index 2690811a..30392840 100644 --- a/module/Rest/test/Action/EditShortCodeActionTest.php +++ b/module/Rest/test/Action/EditShortCodeActionTest.php @@ -3,10 +3,10 @@ declare(strict_types=1); namespace ShlinkioTest\Shlink\Rest\Action; -use Interop\Http\ServerMiddleware\DelegateInterface; use PHPUnit\Framework\TestCase; use Prophecy\Argument; use Prophecy\Prophecy\ObjectProphecy; +use Psr\Http\Server\RequestHandlerInterface as DelegateInterface; use Shlinkio\Shlink\Core\Entity\ShortUrl; use Shlinkio\Shlink\Core\Exception\InvalidShortCodeException; use Shlinkio\Shlink\Core\Service\ShortUrlServiceInterface; diff --git a/module/Rest/test/Action/Tag/CreateTagsActionTest.php b/module/Rest/test/Action/Tag/CreateTagsActionTest.php index 795827fa..b7231472 100644 --- a/module/Rest/test/Action/Tag/CreateTagsActionTest.php +++ b/module/Rest/test/Action/Tag/CreateTagsActionTest.php @@ -4,10 +4,10 @@ declare(strict_types=1); namespace ShlinkioTest\Shlink\Rest\Action\Tag; use Doctrine\Common\Collections\ArrayCollection; -use Interop\Http\ServerMiddleware\DelegateInterface; use PHPUnit\Framework\TestCase; use Prophecy\Prophecy\MethodProphecy; use Prophecy\Prophecy\ObjectProphecy; +use Psr\Http\Server\RequestHandlerInterface as DelegateInterface; use Shlinkio\Shlink\Core\Service\Tag\TagServiceInterface; use Shlinkio\Shlink\Rest\Action\Tag\CreateTagsAction; use Zend\Diactoros\ServerRequestFactory; diff --git a/module/Rest/test/Action/Tag/DeleteTagsActionTest.php b/module/Rest/test/Action/Tag/DeleteTagsActionTest.php index 0a0657bf..81e7ca7f 100644 --- a/module/Rest/test/Action/Tag/DeleteTagsActionTest.php +++ b/module/Rest/test/Action/Tag/DeleteTagsActionTest.php @@ -3,10 +3,10 @@ declare(strict_types=1); namespace ShlinkioTest\Shlink\Rest\Action\Tag; -use Interop\Http\ServerMiddleware\DelegateInterface; use PHPUnit\Framework\TestCase; use Prophecy\Prophecy\MethodProphecy; use Prophecy\Prophecy\ObjectProphecy; +use Psr\Http\Server\RequestHandlerInterface as DelegateInterface; use Shlinkio\Shlink\Core\Service\Tag\TagServiceInterface; use Shlinkio\Shlink\Rest\Action\Tag\DeleteTagsAction; use Zend\Diactoros\ServerRequestFactory; diff --git a/module/Rest/test/Action/Tag/ListTagsActionTest.php b/module/Rest/test/Action/Tag/ListTagsActionTest.php index 67e395b1..96f4d7bd 100644 --- a/module/Rest/test/Action/Tag/ListTagsActionTest.php +++ b/module/Rest/test/Action/Tag/ListTagsActionTest.php @@ -3,10 +3,10 @@ declare(strict_types=1); namespace ShlinkioTest\Shlink\Rest\Action\Tag; -use Interop\Http\ServerMiddleware\DelegateInterface; use PHPUnit\Framework\TestCase; use Prophecy\Prophecy\MethodProphecy; use Prophecy\Prophecy\ObjectProphecy; +use Psr\Http\Server\RequestHandlerInterface as DelegateInterface; use Shlinkio\Shlink\Core\Entity\Tag; use Shlinkio\Shlink\Core\Service\Tag\TagServiceInterface; use Shlinkio\Shlink\Rest\Action\Tag\ListTagsAction; diff --git a/module/Rest/test/Action/Tag/UpdateTagActionTest.php b/module/Rest/test/Action/Tag/UpdateTagActionTest.php index fbbd7c60..a554e40d 100644 --- a/module/Rest/test/Action/Tag/UpdateTagActionTest.php +++ b/module/Rest/test/Action/Tag/UpdateTagActionTest.php @@ -3,10 +3,10 @@ declare(strict_types=1); namespace ShlinkioTest\Shlink\Rest\Action\Tag; -use Interop\Http\ServerMiddleware\DelegateInterface; use PHPUnit\Framework\TestCase; use Prophecy\Prophecy\MethodProphecy; use Prophecy\Prophecy\ObjectProphecy; +use Psr\Http\Server\RequestHandlerInterface as DelegateInterface; use Shlinkio\Shlink\Core\Entity\Tag; use Shlinkio\Shlink\Core\Exception\EntityDoesNotExistException; use Shlinkio\Shlink\Core\Service\Tag\TagServiceInterface; diff --git a/module/Rest/test/Middleware/BodyParserMiddlewareTest.php b/module/Rest/test/Middleware/BodyParserMiddlewareTest.php index 1c927f4f..4e1157d0 100644 --- a/module/Rest/test/Middleware/BodyParserMiddlewareTest.php +++ b/module/Rest/test/Middleware/BodyParserMiddlewareTest.php @@ -3,11 +3,11 @@ declare(strict_types=1); namespace ShlinkioTest\Shlink\Rest\Middleware; -use Interop\Http\ServerMiddleware\DelegateInterface; use PHPUnit\Framework\TestCase; use Prophecy\Argument; use Prophecy\Prophecy\MethodProphecy; use Psr\Http\Message\ServerRequestInterface; +use Psr\Http\Server\RequestHandlerInterface as DelegateInterface; use Shlinkio\Shlink\Rest\Middleware\BodyParserMiddleware; use Zend\Diactoros\Response; use Zend\Diactoros\ServerRequestFactory; diff --git a/module/Rest/test/Middleware/CheckAuthenticationMiddlewareTest.php b/module/Rest/test/Middleware/CheckAuthenticationMiddlewareTest.php index 9c805d1b..c8e26afe 100644 --- a/module/Rest/test/Middleware/CheckAuthenticationMiddlewareTest.php +++ b/module/Rest/test/Middleware/CheckAuthenticationMiddlewareTest.php @@ -3,10 +3,10 @@ declare(strict_types=1); namespace ShlinkioTest\Shlink\Rest\Middleware; -use Interop\Http\ServerMiddleware\DelegateInterface; use PHPUnit\Framework\TestCase; use Prophecy\Prophecy\MethodProphecy; use Prophecy\Prophecy\ObjectProphecy; +use Psr\Http\Server\RequestHandlerInterface as DelegateInterface; use Shlinkio\Shlink\Rest\Action\AuthenticateAction; use Shlinkio\Shlink\Rest\Authentication\JWTService; use Shlinkio\Shlink\Rest\Middleware\CheckAuthenticationMiddleware; @@ -16,7 +16,6 @@ use Zend\Diactoros\ServerRequestFactory; use Zend\Expressive\Router\Route; use Zend\Expressive\Router\RouteResult; use Zend\I18n\Translator\Translator; - use function Zend\Stratigility\middleware; class CheckAuthenticationMiddlewareTest extends TestCase diff --git a/module/Rest/test/Middleware/CrossDomainMiddlewareTest.php b/module/Rest/test/Middleware/CrossDomainMiddlewareTest.php index dcc7e878..813f2e92 100644 --- a/module/Rest/test/Middleware/CrossDomainMiddlewareTest.php +++ b/module/Rest/test/Middleware/CrossDomainMiddlewareTest.php @@ -3,10 +3,10 @@ declare(strict_types=1); namespace ShlinkioTest\Shlink\Rest\Middleware; -use Interop\Http\ServerMiddleware\DelegateInterface; use PHPUnit\Framework\TestCase; use Prophecy\Argument; use Prophecy\Prophecy\ObjectProphecy; +use Psr\Http\Server\RequestHandlerInterface as DelegateInterface; use Shlinkio\Shlink\Rest\Middleware\CrossDomainMiddleware; use Zend\Diactoros\Response; use Zend\Diactoros\ServerRequestFactory; diff --git a/module/Rest/test/Middleware/PathVersionMiddlewareTest.php b/module/Rest/test/Middleware/PathVersionMiddlewareTest.php index 4c98d4f2..f7d068de 100644 --- a/module/Rest/test/Middleware/PathVersionMiddlewareTest.php +++ b/module/Rest/test/Middleware/PathVersionMiddlewareTest.php @@ -3,11 +3,11 @@ declare(strict_types=1); namespace ShlinkioTest\Shlink\Rest\Middleware; -use Interop\Http\ServerMiddleware\DelegateInterface; use PHPUnit\Framework\Assert; use PHPUnit\Framework\TestCase; use Prophecy\Argument; use Psr\Http\Message\ServerRequestInterface as Request; +use Psr\Http\Server\RequestHandlerInterface as DelegateInterface; use Shlinkio\Shlink\Rest\Middleware\PathVersionMiddleware; use Zend\Diactoros\Response; use Zend\Diactoros\ServerRequestFactory; diff --git a/public/index.php b/public/index.php index 3f2c0f84..fa5d778c 100644 --- a/public/index.php +++ b/public/index.php @@ -1,9 +1,9 @@ get(Application::class)->run(); +$container->get(Application::class)->run();