diff --git a/CHANGELOG.md b/CHANGELOG.md index b6936625..59f8b7dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,23 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com), and this project adheres to [Semantic Versioning](https://semver.org). +## [2.7.2] - 2021-07-30 +### Added +* *Nothing* + +### Changed +* *Nothing* + +### Deprecated +* *Nothing* + +### Removed +* *Nothing* + +### Fixed +* [#1128](https://github.com/shlinkio/shlink/issues/1128) Increased memory limit reserved for the docker image, preventing it from crashing on GeoLite db download. + + ## [2.7.1] - 2021-05-30 ### Added * *Nothing* diff --git a/composer.json b/composer.json index 22c75221..0c14aa0d 100644 --- a/composer.json +++ b/composer.json @@ -24,6 +24,7 @@ "endroid/qr-code": "^4.0", "geoip2/geoip2": "^2.9", "guzzlehttp/guzzle": "^7.0", + "guzzlehttp/psr7": "^1.7", "happyr/doctrine-specification": "^2.0", "jaybizzle/crawler-detect": "^1.2", "laminas/laminas-config": "^3.3", diff --git a/docker/config/php.ini b/docker/config/php.ini index f6c718d0..fca44924 100644 --- a/docker/config/php.ini +++ b/docker/config/php.ini @@ -1,3 +1,4 @@ log_errors_max_len=0 zend.assertions=1 assert.exception=1 +memory_limit=256M diff --git a/module/Rest/src/Middleware/EmptyResponseImplicitOptionsMiddlewareFactory.php b/module/Rest/src/Middleware/EmptyResponseImplicitOptionsMiddlewareFactory.php index b4bc1952..1e773f21 100644 --- a/module/Rest/src/Middleware/EmptyResponseImplicitOptionsMiddlewareFactory.php +++ b/module/Rest/src/Middleware/EmptyResponseImplicitOptionsMiddlewareFactory.php @@ -6,11 +6,18 @@ namespace Shlinkio\Shlink\Rest\Middleware; use Laminas\Diactoros\Response\EmptyResponse; use Mezzio\Router\Middleware\ImplicitOptionsMiddleware; +use Psr\Http\Message\ResponseFactoryInterface; +use Psr\Http\Message\ResponseInterface; class EmptyResponseImplicitOptionsMiddlewareFactory { public function __invoke(): ImplicitOptionsMiddleware { - return new ImplicitOptionsMiddleware(fn () => new EmptyResponse()); + return new ImplicitOptionsMiddleware(new class implements ResponseFactoryInterface { + public function createResponse(int $code = 200, string $reasonPhrase = ''): ResponseInterface + { + return new EmptyResponse(); + } + }); } } diff --git a/module/Rest/test/Middleware/EmptyResponseImplicitOptionsMiddlewareFactoryTest.php b/module/Rest/test/Middleware/EmptyResponseImplicitOptionsMiddlewareFactoryTest.php index 9d216913..4928f2ef 100644 --- a/module/Rest/test/Middleware/EmptyResponseImplicitOptionsMiddlewareFactoryTest.php +++ b/module/Rest/test/Middleware/EmptyResponseImplicitOptionsMiddlewareFactoryTest.php @@ -7,6 +7,7 @@ namespace ShlinkioTest\Shlink\Rest\Middleware; use Laminas\Diactoros\Response\EmptyResponse; use Mezzio\Router\Middleware\ImplicitOptionsMiddleware; use PHPUnit\Framework\TestCase; +use Psr\Http\Message\ResponseFactoryInterface; use ReflectionObject; use Shlinkio\Shlink\Rest\Middleware\EmptyResponseImplicitOptionsMiddlewareFactory; @@ -34,6 +35,10 @@ class EmptyResponseImplicitOptionsMiddlewareFactoryTest extends TestCase $ref = new ReflectionObject($instance); $prop = $ref->getProperty('responseFactory'); $prop->setAccessible(true); - self::assertInstanceOf(EmptyResponse::class, $prop->getValue($instance)()); + + /** @var ResponseFactoryInterface $value */ + $value = $prop->getValue($instance); + + self::assertInstanceOf(EmptyResponse::class, $value->createResponse()); } }