From 6b7c70d3f5d9392c455516537c065e01b5c0793e Mon Sep 17 00:00:00 2001 From: Aleksei Khudiakov Date: Wed, 15 Mar 2023 09:02:37 +1000 Subject: [PATCH 1/4] Remove platform ignore ci rules Signed-off-by: Aleksei Khudiakov --- .laminas-ci.json | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.laminas-ci.json b/.laminas-ci.json index 1ee9e6ab..0967ef42 100644 --- a/.laminas-ci.json +++ b/.laminas-ci.json @@ -1,7 +1 @@ -{ - "ignore_php_platform_requirements": { - "8.0": true, - "8.1": true, - "8.2": true - } -} +{} From b1b08f434aa51e3367dc42c7114bb91434a05e5c Mon Sep 17 00:00:00 2001 From: Aleksei Khudiakov Date: Wed, 15 Mar 2023 09:28:44 +1000 Subject: [PATCH 2/4] Drop dev dependencies and tests for deprecated middleware Optional dependencies for deprecated middleware functionality are not installable on PHP 8 unless platform is ignored. Drop optional dev dependencies and tests depending on them. Signed-off-by: Aleksei Khudiakov --- composer.json | 3 - composer.lock | 764 ++++--------------- test/Controller/MiddlewareControllerTest.php | 135 ---- test/MiddlewareListenerTest.php | 545 ------------- 4 files changed, 133 insertions(+), 1314 deletions(-) delete mode 100644 test/Controller/MiddlewareControllerTest.php delete mode 100644 test/MiddlewareListenerTest.php diff --git a/composer.json b/composer.json index 5ff4a842..1415d3af 100644 --- a/composer.json +++ b/composer.json @@ -39,11 +39,8 @@ "laminas/laminas-view": "^2.14" }, "require-dev": { - "http-interop/http-middleware": "^0.4.1", "laminas/laminas-coding-standard": "^2.4.0", "laminas/laminas-json": "^3.3", - "laminas/laminas-psr7bridge": "^1.8", - "laminas/laminas-stratigility": ">=2.0.1 <2.2", "phpspec/prophecy" : "^1.15.0", "phpspec/prophecy-phpunit": "^2.0.1", "phpunit/phpunit": "^9.5.25" diff --git a/composer.lock b/composer.lock index 8bdc3fc6..a46415eb 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "f25152bf98f27b943b019037c30523b6", + "content-hash": "3b66108e2135164e54081b99667620d3", "packages": [ { "name": "brick/varexporter", - "version": "0.3.7", + "version": "0.3.8", "source": { "type": "git", "url": "https://github.com/brick/varexporter.git", - "reference": "3e263cd718d242594c52963760fee2059fd5833c" + "reference": "b5853edea6204ff8fa10633c3a4cccc4058410ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/varexporter/zipball/3e263cd718d242594c52963760fee2059fd5833c", - "reference": "3e263cd718d242594c52963760fee2059fd5833c", + "url": "https://api.github.com/repos/brick/varexporter/zipball/b5853edea6204ff8fa10633c3a4cccc4058410ed", + "reference": "b5853edea6204ff8fa10633c3a4cccc4058410ed", "shasum": "" }, "require": { @@ -45,7 +45,7 @@ ], "support": { "issues": "https://github.com/brick/varexporter/issues", - "source": "https://github.com/brick/varexporter/tree/0.3.7" + "source": "https://github.com/brick/varexporter/tree/0.3.8" }, "funding": [ { @@ -53,7 +53,7 @@ "type": "github" } ], - "time": "2022-06-29T23:37:57+00:00" + "time": "2023-01-21T23:05:38+00:00" }, { "name": "container-interop/container-interop", @@ -223,16 +223,16 @@ }, { "name": "laminas/laminas-eventmanager", - "version": "3.6.0", + "version": "3.10.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-eventmanager.git", - "reference": "3f1afbad86cd34a431fdc069f265cfe6f8fc8308" + "reference": "5a5114ab2d3fa4424faa46a2fb0a4e49a61f6eba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-eventmanager/zipball/3f1afbad86cd34a431fdc069f265cfe6f8fc8308", - "reference": "3f1afbad86cd34a431fdc069f265cfe6f8fc8308", + "url": "https://api.github.com/repos/laminas/laminas-eventmanager/zipball/5a5114ab2d3fa4424faa46a2fb0a4e49a61f6eba", + "reference": "5a5114ab2d3fa4424faa46a2fb0a4e49a61f6eba", "shasum": "" }, "require": { @@ -243,13 +243,13 @@ "zendframework/zend-eventmanager": "*" }, "require-dev": { - "laminas/laminas-coding-standard": "~2.4.0", + "laminas/laminas-coding-standard": "~2.5.0", "laminas/laminas-stdlib": "^3.15", - "phpbench/phpbench": "^1.2.6", - "phpunit/phpunit": "^9.5.25", - "psalm/plugin-phpunit": "^0.17.0", + "phpbench/phpbench": "^1.2.7", + "phpunit/phpunit": "^9.5.26", + "psalm/plugin-phpunit": "^0.18.0", "psr/container": "^1.1.2 || ^2.0.2", - "vimeo/psalm": "^4.28" + "vimeo/psalm": "^5.0.0" }, "suggest": { "laminas/laminas-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature", @@ -287,20 +287,20 @@ "type": "community_bridge" } ], - "time": "2022-10-11T12:46:13+00:00" + "time": "2023-01-11T19:52:45+00:00" }, { "name": "laminas/laminas-http", - "version": "2.17.0", + "version": "2.18.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-http.git", - "reference": "ac4588d698c93b56bb7c0608d9a7537a3f057239" + "reference": "76de9008f889bc7088f85a41d0d2b06c2b59c53d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-http/zipball/ac4588d698c93b56bb7c0608d9a7537a3f057239", - "reference": "ac4588d698c93b56bb7c0608d9a7537a3f057239", + "url": "https://api.github.com/repos/laminas/laminas-http/zipball/76de9008f889bc7088f85a41d0d2b06c2b59c53d", + "reference": "76de9008f889bc7088f85a41d0d2b06c2b59c53d", "shasum": "" }, "require": { @@ -352,7 +352,7 @@ "type": "community_bridge" } ], - "time": "2022-10-16T15:51:48+00:00" + "time": "2022-11-23T15:45:41+00:00" }, { "name": "laminas/laminas-json", @@ -473,16 +473,16 @@ }, { "name": "laminas/laminas-modulemanager", - "version": "2.12.0", + "version": "2.14.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-modulemanager.git", - "reference": "cd2dd3b3dc59e75a9f2117374222c0d84b25bf19" + "reference": "fb0a2c34423f7d3321dd7c42dc5fc4db905a99ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-modulemanager/zipball/cd2dd3b3dc59e75a9f2117374222c0d84b25bf19", - "reference": "cd2dd3b3dc59e75a9f2117374222c0d84b25bf19", + "url": "https://api.github.com/repos/laminas/laminas-modulemanager/zipball/fb0a2c34423f7d3321dd7c42dc5fc4db905a99ac", + "reference": "fb0a2c34423f7d3321dd7c42dc5fc4db905a99ac", "shasum": "" }, "require": { @@ -490,7 +490,7 @@ "laminas/laminas-config": "^3.7", "laminas/laminas-eventmanager": "^3.4", "laminas/laminas-stdlib": "^3.6", - "php": "^7.3 || ~8.0.0 || ~8.1.0", + "php": "~8.0.0 || ~8.1.0 || ~8.2.0", "webimpress/safe-writer": "^1.0.2 || ^2.1" }, "conflict": { @@ -498,12 +498,12 @@ }, "require-dev": { "laminas/laminas-coding-standard": "^2.3", - "laminas/laminas-loader": "^2.8", - "laminas/laminas-mvc": "^3.1.1", - "laminas/laminas-servicemanager": "^3.7", - "phpunit/phpunit": "^9.5.5", - "psalm/plugin-phpunit": "^0.16.1", - "vimeo/psalm": "^4.10" + "laminas/laminas-loader": "^2.9.0", + "laminas/laminas-mvc": "^3.5.0", + "laminas/laminas-servicemanager": "^3.19.0", + "phpunit/phpunit": "^9.5.25", + "psalm/plugin-phpunit": "^0.17.0", + "vimeo/psalm": "^4.29" }, "suggest": { "laminas/laminas-console": "Laminas\\Console component", @@ -541,7 +541,7 @@ "type": "community_bridge" } ], - "time": "2022-09-07T11:22:27+00:00" + "time": "2022-10-28T09:21:04+00:00" }, { "name": "laminas/laminas-router", @@ -703,16 +703,16 @@ }, { "name": "laminas/laminas-stdlib", - "version": "3.15.0", + "version": "3.16.1", "source": { "type": "git", "url": "https://github.com/laminas/laminas-stdlib.git", - "reference": "63b66bd4b696f024f42616b9d95cdb10e5109c27" + "reference": "f4f773641807c7ccee59b758bfe4ac4ba33ecb17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/63b66bd4b696f024f42616b9d95cdb10e5109c27", - "reference": "63b66bd4b696f024f42616b9d95cdb10e5109c27", + "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/f4f773641807c7ccee59b758bfe4ac4ba33ecb17", + "reference": "f4f773641807c7ccee59b758bfe4ac4ba33ecb17", "shasum": "" }, "require": { @@ -723,10 +723,10 @@ }, "require-dev": { "laminas/laminas-coding-standard": "^2.4.0", - "phpbench/phpbench": "^1.2.6", - "phpunit/phpunit": "^9.5.25", - "psalm/plugin-phpunit": "^0.17.0", - "vimeo/psalm": "^4.28" + "phpbench/phpbench": "^1.2.7", + "phpunit/phpunit": "^9.5.26", + "psalm/plugin-phpunit": "^0.18.0", + "vimeo/psalm": "^5.0.0" }, "type": "library", "autoload": { @@ -758,7 +758,7 @@ "type": "community_bridge" } ], - "time": "2022-10-10T19:10:24+00:00" + "time": "2022-12-03T18:48:01+00:00" }, { "name": "laminas/laminas-uri", @@ -1017,16 +1017,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.15.1", + "version": "v4.15.4", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900" + "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", - "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290", + "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290", "shasum": "" }, "require": { @@ -1067,9 +1067,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.4" }, - "time": "2022-09-04T07:30:47+00:00" + "time": "2023-03-05T19:49:14+00:00" }, { "name": "psr/container", @@ -1257,30 +1257,30 @@ }, { "name": "doctrine/instantiator", - "version": "1.4.1", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9", + "doctrine/coding-standard": "^9 || ^11", "ext-pdo": "*", "ext-phar": "*", "phpbench/phpbench": "^0.16 || ^1", "phpstan/phpstan": "^1.4", "phpstan/phpstan-phpunit": "^1", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.22" + "vimeo/psalm": "^4.30 || ^5.4" }, "type": "library", "autoload": { @@ -1307,7 +1307,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.1" + "source": "https://github.com/doctrine/instantiator/tree/1.5.0" }, "funding": [ { @@ -1323,81 +1323,24 @@ "type": "tidelift" } ], - "time": "2022-03-03T08:28:38+00:00" - }, - { - "name": "http-interop/http-middleware", - "version": "0.4.1", - "source": { - "type": "git", - "url": "https://github.com/http-interop/http-middleware.git", - "reference": "9a801fe60e70d5d608b61d56b2dcde29516c81b9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/http-interop/http-middleware/zipball/9a801fe60e70d5d608b61d56b2dcde29516c81b9", - "reference": "9a801fe60e70d5d608b61d56b2dcde29516c81b9", - "shasum": "" - }, - "require": { - "php": ">=5.3.0", - "psr/http-message": "^1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Interop\\Http\\ServerMiddleware\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP server-side middleware", - "keywords": [ - "factory", - "http", - "middleware", - "psr", - "psr-17", - "psr-7", - "request", - "response" - ], - "support": { - "issues": "https://github.com/http-interop/http-middleware/issues", - "source": "https://github.com/http-interop/http-middleware/tree/master" - }, - "abandoned": "http-interop/http-server-middleware", - "time": "2017-01-14T15:23:42+00:00" + "time": "2022-12-30T00:15:36+00:00" }, { "name": "laminas/laminas-coding-standard", - "version": "2.4.0", + "version": "2.5.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-coding-standard.git", - "reference": "eb076dd86aa93dd424856b150c9b6f76c1fdfabc" + "reference": "c1aaa18a7c860c6932677a3e4ec13161f9fc7d61" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-coding-standard/zipball/eb076dd86aa93dd424856b150c9b6f76c1fdfabc", - "reference": "eb076dd86aa93dd424856b150c9b6f76c1fdfabc", + "url": "https://api.github.com/repos/laminas/laminas-coding-standard/zipball/c1aaa18a7c860c6932677a3e4ec13161f9fc7d61", + "reference": "c1aaa18a7c860c6932677a3e4ec13161f9fc7d61", "shasum": "" }, "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.7", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7 || ^1.0", "php": "^7.4 || ^8.0", "slevomat/coding-standard": "^7.0", "squizlabs/php_codesniffer": "^3.6", @@ -1436,310 +1379,20 @@ "type": "community_bridge" } ], - "time": "2022-08-24T17:45:47+00:00" - }, - { - "name": "laminas/laminas-diactoros", - "version": "2.19.0", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-diactoros.git", - "reference": "b3c7e9262b4fbec801d8df2370cdebb4f5d3a0ae" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/b3c7e9262b4fbec801d8df2370cdebb4f5d3a0ae", - "reference": "b3c7e9262b4fbec801d8df2370cdebb4f5d3a0ae", - "shasum": "" - }, - "require": { - "php": "~8.0.0 || ~8.1.0 || ~8.2.0", - "psr/http-factory": "^1.0", - "psr/http-message": "^1.0" - }, - "conflict": { - "zendframework/zend-diactoros": "*" - }, - "provide": { - "psr/http-factory-implementation": "1.0", - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "ext-curl": "*", - "ext-dom": "*", - "ext-gd": "*", - "ext-libxml": "*", - "http-interop/http-factory-tests": "^0.9.0", - "laminas/laminas-coding-standard": "^2.4.0", - "php-http/psr7-integration-tests": "^1.1.1", - "phpunit/phpunit": "^9.5.25", - "psalm/plugin-phpunit": "^0.17.0", - "vimeo/psalm": "^4.28" - }, - "type": "library", - "extra": { - "laminas": { - "config-provider": "Laminas\\Diactoros\\ConfigProvider", - "module": "Laminas\\Diactoros" - } - }, - "autoload": { - "files": [ - "src/functions/create_uploaded_file.php", - "src/functions/marshal_headers_from_sapi.php", - "src/functions/marshal_method_from_sapi.php", - "src/functions/marshal_protocol_version_from_sapi.php", - "src/functions/marshal_uri_from_sapi.php", - "src/functions/normalize_server.php", - "src/functions/normalize_uploaded_files.php", - "src/functions/parse_cookie_header.php", - "src/functions/create_uploaded_file.legacy.php", - "src/functions/marshal_headers_from_sapi.legacy.php", - "src/functions/marshal_method_from_sapi.legacy.php", - "src/functions/marshal_protocol_version_from_sapi.legacy.php", - "src/functions/marshal_uri_from_sapi.legacy.php", - "src/functions/normalize_server.legacy.php", - "src/functions/normalize_uploaded_files.legacy.php", - "src/functions/parse_cookie_header.legacy.php" - ], - "psr-4": { - "Laminas\\Diactoros\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "PSR HTTP Message implementations", - "homepage": "https://laminas.dev", - "keywords": [ - "http", - "laminas", - "psr", - "psr-17", - "psr-7" - ], - "support": { - "chat": "https://laminas.dev/chat", - "docs": "https://docs.laminas.dev/laminas-diactoros/", - "forum": "https://discourse.laminas.dev", - "issues": "https://github.com/laminas/laminas-diactoros/issues", - "rss": "https://github.com/laminas/laminas-diactoros/releases.atom", - "source": "https://github.com/laminas/laminas-diactoros" - }, - "funding": [ - { - "url": "https://funding.communitybridge.org/projects/laminas-project", - "type": "community_bridge" - } - ], - "time": "2022-10-10T21:28:03+00:00" - }, - { - "name": "laminas/laminas-psr7bridge", - "version": "1.8.0", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-psr7bridge.git", - "reference": "6a653713d0b08b0b2e3fc89b61e0516ebe1966f5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-psr7bridge/zipball/6a653713d0b08b0b2e3fc89b61e0516ebe1966f5", - "reference": "6a653713d0b08b0b2e3fc89b61e0516ebe1966f5", - "shasum": "" - }, - "require": { - "laminas/laminas-diactoros": "^2.0", - "laminas/laminas-http": "^2.15", - "php": "~8.0.0 || ~8.1.0 || ~8.2.0", - "psr/http-message": "^1.0" - }, - "conflict": { - "laminas/laminas-stdlib": "< 3.2.1", - "zendframework/zend-psr7bridge": "*" - }, - "require-dev": { - "laminas/laminas-coding-standard": "~2.4.0", - "phpunit/phpunit": "^9.5.25", - "psalm/plugin-phpunit": "^0.17.0", - "vimeo/psalm": "^4.28" - }, - "type": "library", - "autoload": { - "psr-4": { - "Laminas\\Psr7Bridge\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Bidirectional conversions between PSR-7 and laminas-http messages", - "homepage": "https://laminas.dev", - "keywords": [ - "http", - "laminas", - "psr", - "psr-7" - ], - "support": { - "chat": "https://laminas.dev/chat", - "docs": "https://docs.laminas.dev/laminas-psr7bridge/", - "forum": "https://discourse.laminas.dev", - "issues": "https://github.com/laminas/laminas-psr7bridge/issues", - "rss": "https://github.com/laminas/laminas-psr7bridge/releases.atom", - "source": "https://github.com/laminas/laminas-psr7bridge" - }, - "funding": [ - { - "url": "https://funding.communitybridge.org/projects/laminas-project", - "type": "community_bridge" - } - ], - "time": "2022-10-11T00:15:30+00:00" - }, - { - "name": "laminas/laminas-stratigility", - "version": "2.1.1", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-stratigility.git", - "reference": "cf1f56d56fc061128149d70c38cc6ee0beef9d79" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-stratigility/zipball/cf1f56d56fc061128149d70c38cc6ee0beef9d79", - "reference": "cf1f56d56fc061128149d70c38cc6ee0beef9d79", - "shasum": "" - }, - "require": { - "laminas/laminas-escaper": "^2.3", - "laminas/laminas-zendframework-bridge": "^1.0", - "php": "^5.6 || ^7.0", - "psr/http-message": "^1.0", - "webimpress/http-middleware-compatibility": "^0.1.1" - }, - "replace": { - "zendframework/zend-stratigility": "self.version" - }, - "require-dev": { - "laminas/laminas-coding-standard": "~1.0.0", - "laminas/laminas-diactoros": "^1.0", - "malukenho/docheader": "^0.1.5", - "phpunit/phpunit": "^6.0.8 || ^5.7.15" - }, - "suggest": { - "psr/http-message-implementation": "Please install a psr/http-message-implementation to consume Stratigility; e.g., laminas/laminas-diactoros" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1.0-dev", - "dev-develop": "2.2.0-dev" - } - }, - "autoload": { - "psr-4": { - "Laminas\\Stratigility\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Middleware for PHP", - "homepage": "https://laminas.dev", - "keywords": [ - "http", - "laminas", - "middleware", - "psr-7" - ], - "support": { - "chat": "https://laminas.dev/chat", - "docs": "https://docs.laminas.dev/laminas-stratigility/", - "forum": "https://discourse.laminas.dev", - "issues": "https://github.com/laminas/laminas-stratigility/issues", - "rss": "https://github.com/laminas/laminas-stratigility/releases.atom", - "source": "https://github.com/laminas/laminas-stratigility" - }, - "time": "2019-12-31T17:51:34+00:00" - }, - { - "name": "laminas/laminas-zendframework-bridge", - "version": "1.6.1", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-zendframework-bridge.git", - "reference": "e112dd2c099f4f6142c16fc65fda89a638e06885" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/e112dd2c099f4f6142c16fc65fda89a638e06885", - "reference": "e112dd2c099f4f6142c16fc65fda89a638e06885", - "shasum": "" - }, - "require": { - "php": ">=7.4, <8.2" - }, - "require-dev": { - "phpunit/phpunit": "^9.5.14", - "psalm/plugin-phpunit": "^0.15.2", - "squizlabs/php_codesniffer": "^3.6.2", - "vimeo/psalm": "^4.21.0" - }, - "type": "library", - "extra": { - "laminas": { - "module": "Laminas\\ZendFrameworkBridge" - } - }, - "autoload": { - "files": [ - "src/autoload.php" - ], - "psr-4": { - "Laminas\\ZendFrameworkBridge\\": "src//" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Alias legacy ZF class names to Laminas Project equivalents.", - "keywords": [ - "ZendFramework", - "autoloading", - "laminas", - "zf" - ], - "support": { - "forum": "https://discourse.laminas.dev/", - "issues": "https://github.com/laminas/laminas-zendframework-bridge/issues", - "rss": "https://github.com/laminas/laminas-zendframework-bridge/releases.atom", - "source": "https://github.com/laminas/laminas-zendframework-bridge" - }, - "funding": [ - { - "url": "https://funding.communitybridge.org/projects/laminas-project", - "type": "community_bridge" - } - ], - "time": "2022-07-29T13:28:29+00:00" + "time": "2023-01-05T15:53:40+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.11.0", + "version": "1.11.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", "shasum": "" }, "require": { @@ -1777,7 +1430,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" }, "funding": [ { @@ -1785,7 +1438,7 @@ "type": "tidelift" } ], - "time": "2022-03-03T13:19:32+00:00" + "time": "2023-03-08T13:26:56+00:00" }, { "name": "phar-io/manifest", @@ -2065,27 +1718,28 @@ }, { "name": "phpspec/prophecy", - "version": "v1.15.0", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" + "reference": "15873c65b207b07765dbc3c95d20fdf4a320cbe2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/15873c65b207b07765dbc3c95d20fdf4a320cbe2", + "reference": "15873c65b207b07765dbc3c95d20fdf4a320cbe2", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.2", + "doctrine/instantiator": "^1.2 || ^2.0", + "php": "^7.2 || 8.0.* || 8.1.* || 8.2.*", "phpdocumentor/reflection-docblock": "^5.2", "sebastian/comparator": "^3.0 || ^4.0", "sebastian/recursion-context": "^3.0 || ^4.0" }, "require-dev": { "phpspec/phpspec": "^6.0 || ^7.0", + "phpstan/phpstan": "^1.9", "phpunit/phpunit": "^8.0 || ^9.0" }, "type": "library", @@ -2126,9 +1780,9 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" + "source": "https://github.com/phpspec/prophecy/tree/v1.17.0" }, - "time": "2021-12-08T12:19:24+00:00" + "time": "2023-02-02T15:41:36+00:00" }, { "name": "phpspec/prophecy-phpunit", @@ -2228,23 +1882,23 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.17", + "version": "9.2.26", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8" + "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aa94dc41e8661fe90c7316849907cba3007b10d8", - "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", + "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.14", + "nikic/php-parser": "^4.15", "php": ">=7.3", "phpunit/php-file-iterator": "^3.0.3", "phpunit/php-text-template": "^2.0.2", @@ -2259,8 +1913,8 @@ "phpunit/phpunit": "^9.3" }, "suggest": { - "ext-pcov": "*", - "ext-xdebug": "*" + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, "type": "library", "extra": { @@ -2293,7 +1947,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.17" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26" }, "funding": [ { @@ -2301,7 +1955,7 @@ "type": "github" } ], - "time": "2022-08-30T12:24:04+00:00" + "time": "2023-03-06T12:58:08+00:00" }, { "name": "phpunit/php-file-iterator", @@ -2546,20 +2200,20 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.25", + "version": "9.6.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d" + "reference": "86e761949019ae83f49240b2f2123fb5ab3b2fc5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d", - "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/86e761949019ae83f49240b2f2123fb5ab3b2fc5", + "reference": "86e761949019ae83f49240b2f2123fb5ab3b2fc5", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1", + "doctrine/instantiator": "^1.3.1 || ^2", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", @@ -2588,8 +2242,8 @@ "sebastian/version": "^3.0.2" }, "suggest": { - "ext-soap": "*", - "ext-xdebug": "*" + "ext-soap": "To be able to generate mocks based on WSDL files", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, "bin": [ "phpunit" @@ -2597,7 +2251,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.5-dev" + "dev-master": "9.6-dev" } }, "autoload": { @@ -2628,7 +2282,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.25" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.5" }, "funding": [ { @@ -2644,115 +2298,7 @@ "type": "tidelift" } ], - "time": "2022-09-25T03:44:45+00:00" - }, - { - "name": "psr/http-factory", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-factory.git", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", - "shasum": "" - }, - "require": { - "php": ">=7.0.0", - "psr/http-message": "^1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interfaces for PSR-7 HTTP message factories", - "keywords": [ - "factory", - "http", - "message", - "psr", - "psr-17", - "psr-7", - "request", - "response" - ], - "support": { - "source": "https://github.com/php-fig/http-factory/tree/master" - }, - "time": "2019-04-30T12:38:16+00:00" - }, - { - "name": "psr/http-message", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "support": { - "source": "https://github.com/php-fig/http-message/tree/master" - }, - "time": "2016-08-06T14:39:51+00:00" + "time": "2023-03-09T06:34:10+00:00" }, { "name": "sebastian/cli-parser", @@ -3120,16 +2666,16 @@ }, { "name": "sebastian/environment", - "version": "5.1.4", + "version": "5.1.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", - "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", "shasum": "" }, "require": { @@ -3171,7 +2717,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" }, "funding": [ { @@ -3179,7 +2725,7 @@ "type": "github" } ], - "time": "2022-04-03T09:37:03+00:00" + "time": "2023-02-03T06:03:51+00:00" }, { "name": "sebastian/exporter", @@ -3493,16 +3039,16 @@ }, { "name": "sebastian/recursion-context", - "version": "4.0.4", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", - "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", "shasum": "" }, "require": { @@ -3541,10 +3087,10 @@ } ], "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" }, "funding": [ { @@ -3552,7 +3098,7 @@ "type": "github" } ], - "time": "2020-10-26T13:17:30+00:00" + "time": "2023-02-03T06:07:39+00:00" }, { "name": "sebastian/resource-operations", @@ -3611,16 +3157,16 @@ }, { "name": "sebastian/type", - "version": "3.2.0", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", - "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", "shasum": "" }, "require": { @@ -3655,7 +3201,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" + "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" }, "funding": [ { @@ -3663,7 +3209,7 @@ "type": "github" } ], - "time": "2022-09-12T14:47:03+00:00" + "time": "2023-02-03T06:13:03+00:00" }, { "name": "sebastian/version", @@ -3781,16 +3327,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.7.1", + "version": "3.7.2", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619" + "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/1359e176e9307e906dc3d890bcc9603ff6d90619", - "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ed8e00df0a83aa96acf703f8c2979ff33341f879", + "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879", "shasum": "" }, "require": { @@ -3826,14 +3372,15 @@ "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", "keywords": [ "phpcs", - "standards" + "standards", + "static analysis" ], "support": { "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", "source": "https://github.com/squizlabs/PHP_CodeSniffer", "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" }, - "time": "2022-06-18T07:21:10+00:00" + "time": "2023-02-22T23:07:41+00:00" }, { "name": "theseer/tokenizer", @@ -3887,24 +3434,24 @@ }, { "name": "webimpress/coding-standard", - "version": "1.2.4", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/webimpress/coding-standard.git", - "reference": "cd0c4b0b97440c337c1f7da17b524674ca2f9ca9" + "reference": "b26557e2386711ecb74f22718f4b4bde5ddbc899" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webimpress/coding-standard/zipball/cd0c4b0b97440c337c1f7da17b524674ca2f9ca9", - "reference": "cd0c4b0b97440c337c1f7da17b524674ca2f9ca9", + "url": "https://api.github.com/repos/webimpress/coding-standard/zipball/b26557e2386711ecb74f22718f4b4bde5ddbc899", + "reference": "b26557e2386711ecb74f22718f4b4bde5ddbc899", "shasum": "" }, "require": { "php": "^7.3 || ^8.0", - "squizlabs/php_codesniffer": "^3.6.2" + "squizlabs/php_codesniffer": "^3.7.2" }, "require-dev": { - "phpunit/phpunit": "^9.5.13" + "phpunit/phpunit": "^9.6.4" }, "type": "phpcodesniffer-standard", "extra": { @@ -3930,7 +3477,7 @@ ], "support": { "issues": "https://github.com/webimpress/coding-standard/issues", - "source": "https://github.com/webimpress/coding-standard/tree/1.2.4" + "source": "https://github.com/webimpress/coding-standard/tree/1.3.1" }, "funding": [ { @@ -3938,52 +3485,7 @@ "type": "github" } ], - "time": "2022-02-15T19:52:12+00:00" - }, - { - "name": "webimpress/http-middleware-compatibility", - "version": "0.1.1", - "source": { - "type": "git", - "url": "https://github.com/webimpress/http-middleware-compatibility.git", - "reference": "793d21864a0417bbe01437c33f902cac49c1788c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webimpress/http-middleware-compatibility/zipball/793d21864a0417bbe01437c33f902cac49c1788c", - "reference": "793d21864a0417bbe01437c33f902cac49c1788c", - "shasum": "" - }, - "require": { - "http-interop/http-middleware": "^0.1.1 || ^0.2 || ^0.3 || ^0.4.1 || ^0.5", - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.22 || ^6.3.1" - }, - "type": "library", - "autoload": { - "files": [ - "autoload/http-middleware.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "description": "Compatibility library for Draft PSR-15 HTTP Middleware", - "homepage": "https://github.com/webimpress/http-middleware-compatibility", - "keywords": [ - "middleware", - "psr-15", - "webimpress" - ], - "support": { - "issues": "https://github.com/webimpress/http-middleware-compatibility/issues", - "source": "https://github.com/webimpress/http-middleware-compatibility" - }, - "abandoned": "psr/http-server-middleware", - "time": "2017-10-05T15:55:30+00:00" + "time": "2023-03-09T15:05:18+00:00" }, { "name": "webmozart/assert", @@ -4047,7 +3549,7 @@ "aliases": [], "minimum-stability": "stable", "stability-flags": [], - "prefer-stable": true, + "prefer-stable": false, "prefer-lowest": false, "platform": { "php": "~8.0.0 || ~8.1.0 || ~8.2.0" @@ -4056,5 +3558,5 @@ "platform-overrides": { "php": "8.0.99" }, - "plugin-api-version": "2.2.0" + "plugin-api-version": "2.3.0" } diff --git a/test/Controller/MiddlewareControllerTest.php b/test/Controller/MiddlewareControllerTest.php deleted file mode 100644 index 776cea31..00000000 --- a/test/Controller/MiddlewareControllerTest.php +++ /dev/null @@ -1,135 +0,0 @@ -pipe = $this->createMock(MiddlewarePipe::class); - $this->responsePrototype = $this->createMock(ResponseInterface::class); - $this->eventManager = $this->createMock(EventManagerInterface::class); - $this->event = new MvcEvent(); - $this->eventManager = new EventManager(); - - $this->controller = new MiddlewareController( - $this->pipe, - $this->responsePrototype, - $this->eventManager, - $this->event - ); - } - - public function testWillAssignCorrectEventManagerIdentifiers() - { - $identifiers = $this->eventManager->getIdentifiers(); - - self::assertContains(MiddlewareController::class, $identifiers); - self::assertContains(AbstractController::class, $identifiers); - self::assertContains(DispatchableInterface::class, $identifiers); - } - - public function testWillDispatchARequestAndResponseWithAGivenPipe() - { - $request = new Request(); - $response = new Response(); - $result = $this->createMock(ResponseInterface::class); - /* @var $dispatchListener callable|\PHPUnit_Framework_MockObject_MockObject */ - $dispatchListener = $this->getMockBuilder(stdClass::class)->setMethods(['__invoke'])->getMock(); - - $this->eventManager->attach(MvcEvent::EVENT_DISPATCH, $dispatchListener, 100); - $this->eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, static function () : void { - self::fail('No dispatch error expected'); - }, 100); - - $dispatchListener - ->expects(self::once()) - ->method('__invoke') - ->with(self::callback(function (MvcEvent $event) use ($request, $response): bool { - self::assertSame($this->event, $event); - self::assertSame(MvcEvent::EVENT_DISPATCH, $event->getName()); - self::assertSame($this->controller, $event->getTarget()); - self::assertSame($request, $event->getRequest()); - self::assertSame($response, $event->getResponse()); - - return true; - })); - - $this->pipe->expects(self::once())->method('process')->willReturn($result); - - $controllerResult = $this->controller->dispatch($request, $response); - - self::assertSame($result, $controllerResult); - self::assertSame($result, $this->event->getResult()); - } - - public function testWillRefuseDispatchingInvalidRequestTypes() - { - /* @var $request RequestInterface */ - $request = $this->createMock(RequestInterface::class); - $response = new Response(); - /* @var $dispatchListener callable|\PHPUnit_Framework_MockObject_MockObject */ - $dispatchListener = $this->getMockBuilder(stdClass::class)->setMethods(['__invoke'])->getMock(); - - $this->eventManager->attach(MvcEvent::EVENT_DISPATCH, $dispatchListener, 100); - - $dispatchListener - ->expects(self::once()) - ->method('__invoke') - ->with(self::callback(function (MvcEvent $event) use ($request, $response): bool { - self::assertSame($this->event, $event); - self::assertSame(MvcEvent::EVENT_DISPATCH, $event->getName()); - self::assertSame($this->controller, $event->getTarget()); - self::assertSame($request, $event->getRequest()); - self::assertSame($response, $event->getResponse()); - - return true; - })); - - $this->pipe->expects(self::never())->method('process'); - - $this->expectException(RuntimeException::class); - - $this->controller->dispatch($request, $response); - } -} diff --git a/test/MiddlewareListenerTest.php b/test/MiddlewareListenerTest.php deleted file mode 100644 index 84479b74..00000000 --- a/test/MiddlewareListenerTest.php +++ /dev/null @@ -1,545 +0,0 @@ -errorReporting = error_reporting(); - error_reporting($this->errorReporting & ~E_USER_DEPRECATED); - } - - protected function tearDown(): void - { - error_reporting($this->errorReporting); - } - - /** - * Create an MvcEvent, populated with everything it needs. - * - * @param string $middlewareMatched Middleware service matched by routing - * @param mixed $middleware Value to return for middleware service - * @return MvcEvent - */ - public function createMvcEvent($middlewareMatched, mixed $middleware = null) - { - $response = new Response(); - $this->routeMatch = $this->prophesize(RouteMatch::class); - $this->routeMatch->getParam('middleware', false)->willReturn($middlewareMatched); - $this->routeMatch->getParams()->willReturn([]); - - $eventManager = new EventManager(); - $serviceManager = new ServiceManager([ - 'factories' => [ - 'EventManager' => static fn(): EventManager => new EventManager(), - ], - 'services' => [ - $middlewareMatched => $middleware, - ], - ]); - - $application = $this->prophesize(Application::class); - $application->getEventManager()->willReturn($eventManager); - $application->getServiceManager()->willReturn($serviceManager); - $application->getResponse()->willReturn($response); - - $event = new MvcEvent(); - $event->setRequest(new Request()); - $event->setResponse($response); - $event->setApplication($application->reveal()); - $event->setRouteMatch($this->routeMatch->reveal()); - - return $event; - } - - /** - * Stratigility v2 does not support PHP 8 - */ - public function testSuccessfullyDispatchesMiddleware() - { - error_reporting($this->errorReporting & E_USER_DEPRECATED); - $this->expectDeprecation(); - $this->expectDeprecationMessage('use the laminas/laminas-mvc-middleware package'); - - $event = $this->createMvcEvent('path', function ($request, $response) { - $this->assertInstanceOf(ServerRequestInterface::class, $request); - $this->assertInstanceOf(ResponseInterface::class, $response); - $response->getBody()->write('Test!'); - return $response; - }); - $application = $event->getApplication(); - - $application->getEventManager()->attach(MvcEvent::EVENT_DISPATCH_ERROR, function ($e): void { - $this->fail(sprintf('dispatch.error triggered when it should not be: %s', var_export($e->getError(), 1))); - }); - - $listener = new MiddlewareListener(); - $return = $listener->onDispatch($event); - $this->assertInstanceOf(Response::class, $return); - - $this->assertInstanceOf(Response::class, $return); - $this->assertSame(200, $return->getStatusCode()); - $this->assertEquals('Test!', $return->getBody()); - } - - /** - * @doesNotPerformAssertions - */ - public function testDeprecationIsNotTriggeredWhenMiddlewareListenerShortCircuits(): void - { - error_reporting($this->errorReporting & E_USER_DEPRECATED); - - $this->routeMatch = $this->prophesize(RouteMatch::class); - $routeMatch = new RouteMatch(['middleware' => false]); - - $event = new MvcEvent(); - $event->setRouteMatch($routeMatch); - - $listener = new MiddlewareListener(); - $listener->onDispatch($event); - } - - /** - * Stratigility v2 does not support PHP 8 - */ - public function testSuccessfullyDispatchesHttpInteropMiddleware() - { - $expectedOutput = uniqid('expectedOutput', true); - - $middleware = $this->createMock(MiddlewareInterface::class); - $middleware->expects($this->once())->method('process')->willReturn(new HtmlResponse($expectedOutput)); - - $event = $this->createMvcEvent('path', $middleware); - $application = $event->getApplication(); - - $application->getEventManager()->attach(MvcEvent::EVENT_DISPATCH_ERROR, function ($e): void { - $this->fail(sprintf('dispatch.error triggered when it should not be: %s', var_export($e->getError(), 1))); - }); - - $listener = new MiddlewareListener(); - $return = $listener->onDispatch($event); - $this->assertInstanceOf(Response::class, $return); - - $this->assertInstanceOf(Response::class, $return); - $this->assertSame(200, $return->getStatusCode()); - $this->assertEquals($expectedOutput, $return->getBody()); - } - - public function testMatchedRouteParamsAreInjectedToRequestAsAttributes() - { - error_reporting($this->errorReporting & E_USER_DEPRECATED); - $this->expectDeprecation(); - $this->expectDeprecationMessage('use the laminas/laminas-mvc-middleware package'); - $matchedRouteParam = uniqid('matched param', true); - $routeAttribute = null; - - $event = $this->createMvcEvent( - 'foo', - static function ( - ServerRequestInterface $request, - ResponseInterface $response - ) use (&$routeAttribute) : ResponseInterface { - $routeAttribute = $request->getAttribute(RouteMatch::class); - $response->getBody()->write($request->getAttribute('myParam', 'param did not exist')); - return $response; - } - ); - - $this->routeMatch->getParams()->willReturn([ - 'myParam' => $matchedRouteParam, - ]); - - $listener = new MiddlewareListener(); - $return = $listener->onDispatch($event); - $this->assertInstanceOf(Response::class, $return); - $this->assertSame($matchedRouteParam, $return->getBody()); - $this->assertSame($this->routeMatch->reveal(), $routeAttribute); - } - - public function testSuccessfullyDispatchesPipeOfCallableAndHttpInteropStyleMiddlewares() - { - $response = new Response(); - $routeMatch = $this->prophesize(RouteMatch::class); - $routeMatch->getParams()->willReturn([]); - $routeMatch->getParam('middleware', false)->willReturn([ - 'firstMiddleware', - 'secondMiddleware', - ]); - - $eventManager = new EventManager(); - - $serviceManager = $this->prophesize(ContainerInterface::class); - $serviceManager->get('EventManager')->willReturn($eventManager); - $serviceManager->has('firstMiddleware')->willReturn(true); - $serviceManager->get('firstMiddleware')->willReturn(function ($request, $response, $next) { - $this->assertInstanceOf(ServerRequestInterface::class, $request); - $this->assertInstanceOf(ResponseInterface::class, $response); - $this->assertTrue(is_callable($next)); - return $next($request->withAttribute('firstMiddlewareAttribute', 'firstMiddlewareValue'), $response); - }); - - $secondMiddleware = $this->createMock(MiddlewareInterface::class); - $secondMiddleware->expects($this->once()) - ->method('process') - ->willReturnCallback(static fn(ServerRequestInterface $request): HtmlResponse => - new HtmlResponse($request->getAttribute('firstMiddlewareAttribute'))); - - $serviceManager->has('secondMiddleware')->willReturn(true); - $serviceManager->get('secondMiddleware')->willReturn($secondMiddleware); - - $application = $this->prophesize(Application::class); - $application->getEventManager()->willReturn($eventManager); - $application->getServiceManager()->will(static fn(): object => $serviceManager->reveal()); - $application->getResponse()->willReturn($response); - - $event = new MvcEvent(); - $event->setRequest(new Request()); - $event->setResponse($response); - $event->setApplication($application->reveal()); - $event->setRouteMatch($routeMatch->reveal()); - - $event->getApplication()->getEventManager()->attach(MvcEvent::EVENT_DISPATCH_ERROR, function ($e): void { - $this->fail(sprintf('dispatch.error triggered when it should not be: %s', var_export($e->getError(), 1))); - }); - - $listener = new MiddlewareListener(); - $return = $listener->onDispatch($event); - $this->assertInstanceOf(Response::class, $return); - - $this->assertInstanceOf('Laminas\Http\Response', $return); - $this->assertSame(200, $return->getStatusCode()); - $this->assertEquals('firstMiddlewareValue', $return->getBody()); - } - - public function testTriggersErrorForUncallableMiddleware() - { - $event = $this->createMvcEvent('path'); - $application = $event->getApplication(); - - $application->getEventManager()->attach(MvcEvent::EVENT_DISPATCH_ERROR, function ($e): string { - $this->assertEquals(Application::ERROR_MIDDLEWARE_CANNOT_DISPATCH, $e->getError()); - $this->assertEquals('path', $e->getController()); - return 'FAILED'; - }); - - $listener = new MiddlewareListener(); - $return = $listener->onDispatch($event); - $this->assertEquals('FAILED', $return); - } - - public function testTriggersErrorForExceptionRaisedInMiddleware() - { - error_reporting($this->errorReporting & E_USER_DEPRECATED); - $this->expectDeprecation(); - $this->expectDeprecationMessage('use the laminas/laminas-mvc-middleware package'); - $exception = new Exception(); - $event = $this->createMvcEvent('path', static function ($request, $response) use ($exception) : void { - throw $exception; - }); - - $application = $event->getApplication(); - $application->getEventManager()->attach(MvcEvent::EVENT_DISPATCH_ERROR, function ($e) use ($exception): string { - $this->assertEquals(Application::ERROR_EXCEPTION, $e->getError()); - $this->assertSame($exception, $e->getParam('exception')); - return 'FAILED'; - }); - - $listener = new MiddlewareListener(); - $return = $listener->onDispatch($event); - $this->assertEquals('FAILED', $return); - } - - /** - * Ensure that the listener tests for services in abstract factories. - */ - public function testCanLoadFromAbstractFactory() - { - $response = new Response(); - $routeMatch = $this->prophesize(RouteMatch::class); - $routeMatch->getParam('middleware', false)->willReturn('test'); - $routeMatch->getParams()->willReturn([]); - - $eventManager = new EventManager(); - - $serviceManager = new ServiceManager(); - $serviceManager->addAbstractFactory(MiddlewareAbstractFactory::class); - $serviceManager->setFactory( - 'EventManager', - static fn(): EventManager => new EventManager() - ); - - $application = $this->prophesize(Application::class); - $application->getEventManager()->willReturn($eventManager); - $application->getServiceManager()->willReturn($serviceManager); - $application->getResponse()->willReturn($response); - - $event = new MvcEvent(); - $event->setRequest(new Request()); - $event->setResponse($response); - $event->setApplication($application->reveal()); - $event->setRouteMatch($routeMatch->reveal()); - - $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, function ($e): void { - $this->fail(sprintf('dispatch.error triggered when it should not be: %s', var_export($e->getError(), 1))); - }); - - $listener = new MiddlewareListener(); - $return = $listener->onDispatch($event); - - $this->assertInstanceOf(Response::class, $return); - $this->assertSame(200, $return->getStatusCode()); - $this->assertEquals(Middleware::class, $return->getBody()); - } - - public function testMiddlewareWithNothingPipedReachesFinalHandlerException() - { - $response = new Response(); - $routeMatch = $this->prophesize(RouteMatch::class); - $routeMatch->getParams()->willReturn([]); - $routeMatch->getParam('middleware', false)->willReturn([]); - - $eventManager = new EventManager(); - - $serviceManager = $this->prophesize(ContainerInterface::class); - $application = $this->prophesize(Application::class); - $application->getEventManager()->willReturn($eventManager); - $application->getServiceManager()->will(static fn(): object => $serviceManager->reveal()); - $application->getResponse()->willReturn($response); - - $serviceManager->get('EventManager')->willReturn($eventManager); - - $event = new MvcEvent(); - $event->setRequest(new Request()); - $event->setResponse($response); - $event->setApplication($application->reveal()); - $event->setRouteMatch($routeMatch->reveal()); - - $event->getApplication()->getEventManager()->attach(MvcEvent::EVENT_DISPATCH_ERROR, function ($e): string { - $this->assertEquals(Application::ERROR_EXCEPTION, $e->getError()); - $this->assertInstanceOf(ReachedFinalHandlerException::class, $e->getParam('exception')); - return 'FAILED'; - }); - - $listener = new MiddlewareListener(); - $return = $listener->onDispatch($event); - $this->assertEquals('FAILED', $return); - } - - public function testNullMiddlewareThrowsInvalidMiddlewareException() - { - $response = new Response(); - $routeMatch = $this->prophesize(RouteMatch::class); - $routeMatch->getParams()->willReturn([]); - $routeMatch->getParam('middleware', false)->willReturn([null]); - - $eventManager = new EventManager(); - - $serviceManager = $this->prophesize(ContainerInterface::class); - $application = $this->prophesize(Application::class); - $application->getEventManager()->willReturn($eventManager); - $application->getServiceManager()->will(static fn(): object => $serviceManager->reveal()); - $application->getResponse()->willReturn($response); - - $event = new MvcEvent(); - $event->setRequest(new Request()); - $event->setResponse($response); - $event->setApplication($application->reveal()); - $event->setRouteMatch($routeMatch->reveal()); - - $event->getApplication()->getEventManager()->attach(MvcEvent::EVENT_DISPATCH_ERROR, function ($e): string { - $this->assertEquals(Application::ERROR_MIDDLEWARE_CANNOT_DISPATCH, $e->getError()); - $this->assertInstanceOf(InvalidMiddlewareException::class, $e->getParam('exception')); - return 'FAILED'; - }); - - $listener = new MiddlewareListener(); - - $return = $listener->onDispatch($event); - $this->assertEquals('FAILED', $return); - } - - public function testValidMiddlewareDispatchCancelsPreviousDispatchFailures() - { - $middlewareName = uniqid('middleware', true); - $routeMatch = new RouteMatch(['middleware' => $middlewareName]); - $response = new DiactorosResponse(); - /* @var $application Application|\PHPUnit_Framework_MockObject_MockObject */ - $application = $this->createMock(Application::class); - $eventManager = new EventManager(); - $middleware = $this->getMockBuilder(stdClass::class)->setMethods(['__invoke'])->getMock(); - $serviceManager = new ServiceManager([ - 'factories' => [ - 'EventManager' => static fn(): EventManager => new EventManager(), - ], - 'services' => [ - $middlewareName => $middleware, - ], - ]); - - $application->expects(self::any())->method('getRequest')->willReturn(new Request()); - $application->expects(self::any())->method('getEventManager')->willReturn($eventManager); - $application->expects(self::any())->method('getServiceManager')->willReturn($serviceManager); - $application->expects(self::any())->method('getResponse')->willReturn(new Response()); - $middleware->expects(self::once())->method('__invoke')->willReturn($response); - - $event = new MvcEvent(); - - $event->setRequest(new Request()); - $event->setApplication($application); - $event->setError(Application::ERROR_CONTROLLER_CANNOT_DISPATCH); - $event->setRouteMatch($routeMatch); - - $listener = new MiddlewareListener(); - $result = $listener->onDispatch($event); - - self::assertInstanceOf(Response::class, $result); - self::assertInstanceOf(Response::class, $event->getResult()); - self::assertEmpty($event->getError(), 'Previously set MVC errors are canceled by a successful dispatch'); - } - - public function testValidMiddlewareFiresDispatchableInterfaceEventListeners() - { - $middlewareName = uniqid('middleware', true); - $routeMatch = new RouteMatch(['middleware' => $middlewareName]); - $response = new DiactorosResponse(); - /* @var $application Application|\PHPUnit_Framework_MockObject_MockObject */ - $application = $this->createMock(Application::class); - $sharedManager = new SharedEventManager(); - /* @var $sharedListener callable|\PHPUnit_Framework_MockObject_MockObject */ - $sharedListener = $this->getMockBuilder(stdClass::class)->setMethods(['__invoke'])->getMock(); - $eventManager = new EventManager(); - $middleware = $this->getMockBuilder(stdClass::class)->setMethods(['__invoke'])->getMock(); - $serviceManager = new ServiceManager([ - 'factories' => [ - 'EventManager' => static fn(): EventManager => new EventManager($sharedManager), - ], - 'services' => [ - $middlewareName => $middleware, - ], - ]); - - $application->expects(self::any())->method('getRequest')->willReturn(new Request()); - $application->expects(self::any())->method('getEventManager')->willReturn($eventManager); - $application->expects(self::any())->method('getServiceManager')->willReturn($serviceManager); - $application->expects(self::any())->method('getResponse')->willReturn(new Response()); - $middleware->expects(self::once())->method('__invoke')->willReturn($response); - - $event = new MvcEvent(); - - $event->setRequest(new Request()); - $event->setApplication($application); - $event->setError(Application::ERROR_CONTROLLER_CANNOT_DISPATCH); - $event->setRouteMatch($routeMatch); - - $listener = new MiddlewareListener(); - - $sharedManager->attach(DispatchableInterface::class, MvcEvent::EVENT_DISPATCH, $sharedListener); - $sharedListener->expects(self::once())->method('__invoke')->with($event); - - $listener->onDispatch($event); - } - - /** - * @dataProvider alreadySetMvcEventResultProvider - */ - public function testWillNotDispatchWhenAnMvcEventResultIsAlreadySet(mixed $alreadySetResult) - { - $middlewareName = uniqid('middleware', true); - $routeMatch = new RouteMatch(['middleware' => $middlewareName]); - /* @var $application Application|\PHPUnit_Framework_MockObject_MockObject */ - $application = $this->createMock(Application::class); - $eventManager = new EventManager(); - $middleware = $this->getMockBuilder(stdClass::class)->setMethods(['__invoke'])->getMock(); - $serviceManager = new ServiceManager([ - 'factories' => [ - 'EventManager' => static fn(): EventManager => new EventManager(), - ], - 'services' => [ - $middlewareName => $middleware, - ], - ]); - - $application->expects(self::any())->method('getRequest')->willReturn(new Request()); - $application->expects(self::any())->method('getEventManager')->willReturn($eventManager); - $application->expects(self::any())->method('getServiceManager')->willReturn($serviceManager); - $application->expects(self::any())->method('getResponse')->willReturn(new Response()); - $middleware->expects(self::never())->method('__invoke'); - - $event = new MvcEvent(); - - $event->setResult($alreadySetResult); // a result is already there - listener should bail out early - $event->setRequest(new Request()); - $event->setApplication($application); - $event->setError(Application::ERROR_CONTROLLER_CANNOT_DISPATCH); - $event->setRouteMatch($routeMatch); - - $listener = new MiddlewareListener(); - - $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, static function () : void { - self::fail('No dispatch failures should be raised - dispatch should be skipped'); - }); - - $listener->onDispatch($event); - - self::assertSame($alreadySetResult, $event->getResult(), 'The event result was not replaced'); - } - - /** - * @return mixed[][] - */ - public function alreadySetMvcEventResultProvider() - { - return [ - [123], - [true], - [false], - [[]], - [new stdClass()], - [$this], - [$this->createMock(ModelInterface::class)], - [$this->createMock(Response::class)], - [['view model data' => 'as an array']], - [['foo' => new stdClass()]], - ['a response string'], - ]; - } -} From 2280ebd03ca647489c0fb673de9d2ef91e48e952 Mon Sep 17 00:00:00 2001 From: Aleksei Khudiakov Date: Wed, 15 Mar 2023 09:37:49 +1000 Subject: [PATCH 3/4] Fix PHP 8.2 dynamic property deprecations in tests Signed-off-by: Aleksei Khudiakov --- composer.json | 4 +- composer.lock | 268 +++++++++--------- test/Controller/ActionControllerTest.php | 3 + test/Controller/ControllerManagerTest.php | 5 + test/Controller/IntegrationTest.php | 3 + .../AcceptableViewModelSelectorTest.php | 6 + test/Controller/Plugin/ForwardTest.php | 1 + test/Controller/Plugin/LayoutTest.php | 4 + test/Controller/Plugin/ParamsTest.php | 5 + test/Controller/Plugin/RedirectTest.php | 7 + test/Controller/Plugin/UrlTest.php | 4 + test/Controller/RestfulControllerTest.php | 2 + test/ModuleRouteListenerTest.php | 6 + test/Service/ControllerManagerFactoryTest.php | 1 + test/Service/ServiceListenerFactoryTest.php | 3 + test/Service/ViewHelperManagerFactoryTest.php | 4 +- test/View/CreateViewModelListenerTest.php | 3 + test/View/ExceptionStrategyTest.php | 2 + test/View/InjectTemplateListenerTest.php | 4 + test/View/InjectViewModelListenerTest.php | 4 + 20 files changed, 206 insertions(+), 133 deletions(-) diff --git a/composer.json b/composer.json index 1415d3af..b6272569 100644 --- a/composer.json +++ b/composer.json @@ -33,8 +33,8 @@ "laminas/laminas-eventmanager": "^3.4", "laminas/laminas-http": "^2.15", "laminas/laminas-modulemanager": "^2.8", - "laminas/laminas-router": "^3.5", - "laminas/laminas-servicemanager": "^3.7", + "laminas/laminas-router": "^3.11.1", + "laminas/laminas-servicemanager": "^3.20.0", "laminas/laminas-stdlib": "^3.6", "laminas/laminas-view": "^2.14" }, diff --git a/composer.lock b/composer.lock index a46415eb..0dae7b63 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "3b66108e2135164e54081b99667620d3", + "content-hash": "61f41b67e49bdbfff3c453ff0a83598e", "packages": [ { "name": "brick/varexporter", @@ -55,42 +55,6 @@ ], "time": "2023-01-21T23:05:38+00:00" }, - { - "name": "container-interop/container-interop", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/container-interop/container-interop.git", - "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8", - "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8", - "shasum": "" - }, - "require": { - "psr/container": "^1.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Interop\\Container\\": "src/Interop/Container/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Promoting the interoperability of container objects (DIC, SL, etc.)", - "homepage": "https://github.com/container-interop/container-interop", - "support": { - "issues": "https://github.com/container-interop/container-interop/issues", - "source": "https://github.com/container-interop/container-interop/tree/master" - }, - "abandoned": "psr/container", - "time": "2017-02-14T19:40:03+00:00" - }, { "name": "laminas/laminas-config", "version": "3.8.0", @@ -545,37 +509,36 @@ }, { "name": "laminas/laminas-router", - "version": "3.5.0", + "version": "3.11.1", "source": { "type": "git", "url": "https://github.com/laminas/laminas-router.git", - "reference": "44759e71620030c93d99e40b394fe9fff8f0beda" + "reference": "3512c28cb4ffd64a62bc9e8b685a50a6547b0a11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-router/zipball/44759e71620030c93d99e40b394fe9fff8f0beda", - "reference": "44759e71620030c93d99e40b394fe9fff8f0beda", + "url": "https://api.github.com/repos/laminas/laminas-router/zipball/3512c28cb4ffd64a62bc9e8b685a50a6547b0a11", + "reference": "3512c28cb4ffd64a62bc9e8b685a50a6547b0a11", "shasum": "" }, "require": { - "container-interop/container-interop": "^1.2", "laminas/laminas-http": "^2.15", - "laminas/laminas-servicemanager": "^3.7", - "laminas/laminas-stdlib": "^3.6", - "php": "^7.3 || ~8.0.0 || ~8.1.0" + "laminas/laminas-servicemanager": "^3.14.0", + "laminas/laminas-stdlib": "^3.10.1", + "php": "~8.0.0 || ~8.1.0 || ~8.2.0" }, "conflict": { "zendframework/zend-router": "*" }, "require-dev": { - "laminas/laminas-coding-standard": "~2.2.1", - "laminas/laminas-i18n": "^2.7.4", - "phpunit/phpunit": "^9.5.5", - "psalm/plugin-phpunit": "^0.15.1", - "vimeo/psalm": "^4.7" + "laminas/laminas-coding-standard": "~2.4.0", + "laminas/laminas-i18n": "^2.19.0", + "phpunit/phpunit": "^9.5.26", + "psalm/plugin-phpunit": "^0.18.0", + "vimeo/psalm": "^5.0.0" }, "suggest": { - "laminas/laminas-i18n": "^2.7.4, if defining translatable HTTP path segments" + "laminas/laminas-i18n": "^2.15.0 if defining translatable HTTP path segments" }, "type": "library", "extra": { @@ -613,49 +576,50 @@ "type": "community_bridge" } ], - "time": "2021-10-13T16:02:43+00:00" + "time": "2022-12-29T14:47:23+00:00" }, { "name": "laminas/laminas-servicemanager", - "version": "3.10.0", + "version": "3.20.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-servicemanager.git", - "reference": "e52b985909e0940bf22d34f322eb3f48bbef6bd1" + "reference": "bc2c2cbe2dd90db8b9d16b0618f542692b76ab59" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/e52b985909e0940bf22d34f322eb3f48bbef6bd1", - "reference": "e52b985909e0940bf22d34f322eb3f48bbef6bd1", + "url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/bc2c2cbe2dd90db8b9d16b0618f542692b76ab59", + "reference": "bc2c2cbe2dd90db8b9d16b0618f542692b76ab59", "shasum": "" }, "require": { - "container-interop/container-interop": "^1.2", "laminas/laminas-stdlib": "^3.2.1", - "php": "~7.4.0 || ~8.0.0 || ~8.1.0", + "php": "~8.0.0 || ~8.1.0 || ~8.2.0", "psr/container": "^1.0" }, "conflict": { + "ext-psr": "*", "laminas/laminas-code": "<3.3.1", "zendframework/zend-code": "<3.3.1", "zendframework/zend-servicemanager": "*" }, "provide": { - "container-interop/container-interop-implementation": "^1.2", "psr/container-implementation": "^1.0" }, + "replace": { + "container-interop/container-interop": "^1.2.0" + }, "require-dev": { - "composer/package-versions-deprecated": "^1.0", - "laminas/laminas-coding-standard": "~2.2.1", - "laminas/laminas-container-config-test": "^0.3", - "laminas/laminas-dependency-plugin": "^2.1.2", - "mikey179/vfsstream": "^1.6.10@alpha", - "ocramius/proxy-manager": "^2.11", - "phpbench/phpbench": "^1.1", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.5.5", - "psalm/plugin-phpunit": "^0.16.1", - "vimeo/psalm": "^4.8" + "composer/package-versions-deprecated": "^1.11.99.5", + "laminas/laminas-coding-standard": "~2.4.0", + "laminas/laminas-container-config-test": "^0.8", + "laminas/laminas-dependency-plugin": "^2.2", + "mikey179/vfsstream": "^1.6.11@alpha", + "ocramius/proxy-manager": "^2.14.1", + "phpbench/phpbench": "^1.2.7", + "phpunit/phpunit": "^9.5.26", + "psalm/plugin-phpunit": "^0.18.0", + "vimeo/psalm": "^5.0.0" }, "suggest": { "ocramius/proxy-manager": "ProxyManager ^2.1.1 to handle lazy initialization of services" @@ -666,6 +630,9 @@ ], "type": "library", "autoload": { + "files": [ + "src/autoload.php" + ], "psr-4": { "Laminas\\ServiceManager\\": "src/" } @@ -699,7 +666,7 @@ "type": "community_bridge" } ], - "time": "2021-09-18T20:19:36+00:00" + "time": "2022-12-01T17:03:38+00:00" }, { "name": "laminas/laminas-stdlib", @@ -820,51 +787,46 @@ }, { "name": "laminas/laminas-validator", - "version": "2.19.0", + "version": "2.30.1", "source": { "type": "git", "url": "https://github.com/laminas/laminas-validator.git", - "reference": "4875d4e58b6f728981bb767a60530540f82ee1df" + "reference": "b7d217b5e4951955fda9a3a5ada91b717b5c8d5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-validator/zipball/4875d4e58b6f728981bb767a60530540f82ee1df", - "reference": "4875d4e58b6f728981bb767a60530540f82ee1df", + "url": "https://api.github.com/repos/laminas/laminas-validator/zipball/b7d217b5e4951955fda9a3a5ada91b717b5c8d5c", + "reference": "b7d217b5e4951955fda9a3a5ada91b717b5c8d5c", "shasum": "" }, "require": { - "container-interop/container-interop": "^1.1", - "laminas/laminas-stdlib": "^3.10", - "php": "^7.3 || ~8.0.0 || ~8.1.0" + "laminas/laminas-servicemanager": "^3.12.0", + "laminas/laminas-stdlib": "^3.13", + "php": "~8.0.0 || ~8.1.0 || ~8.2.0", + "psr/http-message": "^1.0.1" }, "conflict": { "zendframework/zend-validator": "*" }, "require-dev": { - "laminas/laminas-cache": "^2.6.1", - "laminas/laminas-coding-standard": "~2.2.1", - "laminas/laminas-db": "^2.7", - "laminas/laminas-filter": "^2.6", - "laminas/laminas-http": "^2.14.2", - "laminas/laminas-i18n": "^2.6", - "laminas/laminas-math": "^2.6", - "laminas/laminas-servicemanager": "^2.7.11 || ^3.0.3", - "laminas/laminas-session": "^2.8", - "laminas/laminas-uri": "^2.7", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.5.5", - "psalm/plugin-phpunit": "^0.15.0", - "psr/http-client": "^1.0", - "psr/http-factory": "^1.0", - "psr/http-message": "^1.0", - "vimeo/psalm": "^4.3" + "laminas/laminas-coding-standard": "^2.4.0", + "laminas/laminas-db": "^2.16", + "laminas/laminas-filter": "^2.28.1", + "laminas/laminas-http": "^2.18", + "laminas/laminas-i18n": "^2.19", + "laminas/laminas-session": "^2.15", + "laminas/laminas-uri": "^2.10.0", + "phpunit/phpunit": "^9.5.26", + "psalm/plugin-phpunit": "^0.18.3", + "psr/http-client": "^1.0.1", + "psr/http-factory": "^1.0.1", + "vimeo/psalm": "^5.0" }, "suggest": { "laminas/laminas-db": "Laminas\\Db component, required by the (No)RecordExists validator", "laminas/laminas-filter": "Laminas\\Filter component, required by the Digits validator", "laminas/laminas-i18n": "Laminas\\I18n component to allow translation of validation error messages", "laminas/laminas-i18n-resources": "Translations of validator messages", - "laminas/laminas-math": "Laminas\\Math component, required by the Csrf validator", "laminas/laminas-servicemanager": "Laminas\\ServiceManager component to allow using the ValidatorPluginManager and validator chains", "laminas/laminas-session": "Laminas\\Session component, ^2.8; required by the Csrf validator", "laminas/laminas-uri": "Laminas\\Uri component, required by the Uri and Sitemap\\Loc validators", @@ -906,68 +868,62 @@ "type": "community_bridge" } ], - "time": "2022-06-09T21:49:40+00:00" + "time": "2023-01-30T22:41:19+00:00" }, { "name": "laminas/laminas-view", - "version": "2.20.0", + "version": "2.27.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-view.git", - "reference": "2cd6973a3e042be3d244260fe93f435668f5c2b4" + "reference": "b7e66e148ccd55c815b9626ee0cfd358dbb28be4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-view/zipball/2cd6973a3e042be3d244260fe93f435668f5c2b4", - "reference": "2cd6973a3e042be3d244260fe93f435668f5c2b4", + "url": "https://api.github.com/repos/laminas/laminas-view/zipball/b7e66e148ccd55c815b9626ee0cfd358dbb28be4", + "reference": "b7e66e148ccd55c815b9626ee0cfd358dbb28be4", "shasum": "" }, "require": { - "container-interop/container-interop": "^1.2", "ext-dom": "*", "ext-filter": "*", "ext-json": "*", "laminas/laminas-escaper": "^2.5", "laminas/laminas-eventmanager": "^3.4", "laminas/laminas-json": "^3.3", - "laminas/laminas-servicemanager": "^3.10", - "laminas/laminas-stdlib": "^3.6", - "php": "^7.4 || ~8.0.0 || ~8.1.0", + "laminas/laminas-servicemanager": "^3.14.0", + "laminas/laminas-stdlib": "^3.10.1", + "php": "~8.0.0 || ~8.1.0 || ~8.2.0", "psr/container": "^1 || ^2" }, "conflict": { "container-interop/container-interop": "<1.2", "laminas/laminas-router": "<3.0.1", - "laminas/laminas-servicemanager": "<3.3", "laminas/laminas-session": "<2.12", "zendframework/zend-view": "*" }, "require-dev": { - "laminas/laminas-authentication": "^2.5", - "laminas/laminas-coding-standard": "~2.3.0", - "laminas/laminas-console": "^2.6", - "laminas/laminas-feed": "^2.15", - "laminas/laminas-filter": "^2.13.0", - "laminas/laminas-http": "^2.15", - "laminas/laminas-i18n": "^2.6", - "laminas/laminas-modulemanager": "^2.7.1", - "laminas/laminas-mvc": "^3.0", - "laminas/laminas-mvc-i18n": "^1.1", - "laminas/laminas-mvc-plugin-flashmessenger": "^1.5.0", - "laminas/laminas-navigation": "^2.13.1", - "laminas/laminas-paginator": "^2.11.0", - "laminas/laminas-permissions-acl": "^2.6", - "laminas/laminas-router": "^3.0.1", - "laminas/laminas-uri": "^2.5", - "phpspec/prophecy": "^1.12", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.5.5", - "psalm/plugin-phpunit": "^0.16.1", - "vimeo/psalm": "^4.10" + "laminas/laminas-authentication": "^2.13", + "laminas/laminas-coding-standard": "~2.5.0", + "laminas/laminas-feed": "^2.20", + "laminas/laminas-filter": "^2.31", + "laminas/laminas-http": "^2.18", + "laminas/laminas-i18n": "^2.21", + "laminas/laminas-modulemanager": "^2.14", + "laminas/laminas-mvc": "^3.6", + "laminas/laminas-mvc-i18n": "^1.7", + "laminas/laminas-mvc-plugin-flashmessenger": "^1.9", + "laminas/laminas-navigation": "^2.18.1", + "laminas/laminas-paginator": "^2.17", + "laminas/laminas-permissions-acl": "^2.13", + "laminas/laminas-router": "^3.11.1", + "laminas/laminas-uri": "^2.10", + "phpunit/phpunit": "^9.5.28", + "psalm/plugin-phpunit": "^0.18.4", + "vimeo/psalm": "^5.4" }, "suggest": { "laminas/laminas-authentication": "Laminas\\Authentication component", - "laminas/laminas-escaper": "Laminas\\Escaper component", "laminas/laminas-feed": "Laminas\\Feed component", "laminas/laminas-filter": "Laminas\\Filter component", "laminas/laminas-http": "Laminas\\Http component", @@ -977,7 +933,6 @@ "laminas/laminas-navigation": "Laminas\\Navigation component", "laminas/laminas-paginator": "Laminas\\Paginator component", "laminas/laminas-permissions-acl": "Laminas\\Permissions\\Acl component", - "laminas/laminas-servicemanager": "Laminas\\ServiceManager component", "laminas/laminas-uri": "Laminas\\Uri component" }, "bin": [ @@ -1013,7 +968,7 @@ "type": "community_bridge" } ], - "time": "2022-02-22T13:52:44+00:00" + "time": "2023-02-09T16:07:15+00:00" }, { "name": "nikic/php-parser", @@ -1119,6 +1074,59 @@ }, "time": "2021-11-05T16:50:12+00:00" }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "time": "2016-08-06T14:39:51+00:00" + }, { "name": "webimpress/safe-writer", "version": "2.2.0", diff --git a/test/Controller/ActionControllerTest.php b/test/Controller/ActionControllerTest.php index 496323d0..73ce7975 100644 --- a/test/Controller/ActionControllerTest.php +++ b/test/Controller/ActionControllerTest.php @@ -26,6 +26,9 @@ class ActionControllerTest extends TestCase public $event; public $request; public $response; + private RouteMatch $routeMatch; + private SharedEventManager $sharedEvents; + private EventManager $events; public function setUp(): void { diff --git a/test/Controller/ControllerManagerTest.php b/test/Controller/ControllerManagerTest.php index 5839b2c2..1d3c63b2 100644 --- a/test/Controller/ControllerManagerTest.php +++ b/test/Controller/ControllerManagerTest.php @@ -16,6 +16,11 @@ class ControllerManagerTest extends TestCase { + private SharedEventManager $sharedEvents; + private EventManager $events; + private ServiceManager $services; + private ControllerManager $controllers; + public function setUp(): void { $this->sharedEvents = new SharedEventManager; diff --git a/test/Controller/IntegrationTest.php b/test/Controller/IntegrationTest.php index c29efaf5..7d7aac15 100644 --- a/test/Controller/IntegrationTest.php +++ b/test/Controller/IntegrationTest.php @@ -13,6 +13,9 @@ class IntegrationTest extends TestCase { + private SharedEventManager $sharedEvents; + private ServiceManager $services; + public function setUp(): void { $this->sharedEvents = new SharedEventManager(); diff --git a/test/Controller/Plugin/AcceptableViewModelSelectorTest.php b/test/Controller/Plugin/AcceptableViewModelSelectorTest.php index 0d4b7518..ffe13aa9 100644 --- a/test/Controller/Plugin/AcceptableViewModelSelectorTest.php +++ b/test/Controller/Plugin/AcceptableViewModelSelectorTest.php @@ -2,6 +2,7 @@ namespace LaminasTest\Mvc\Controller\Plugin; +use Laminas\Mvc\Controller\Plugin\AcceptableViewModelSelector; use Laminas\View\Model\JsonModel; use Laminas\View\Model\FeedModel; use Laminas\View\Model\ViewModel; @@ -16,6 +17,11 @@ class AcceptableViewModelSelectorTest extends TestCase { + private Request $request; + private MvcEvent $event; + private SampleController $controller; + private AcceptableViewModelSelector $plugin; + public function setUp(): void { $this->request = new Request(); diff --git a/test/Controller/Plugin/ForwardTest.php b/test/Controller/Plugin/ForwardTest.php index d6211d6d..5d1d4294 100644 --- a/test/Controller/Plugin/ForwardTest.php +++ b/test/Controller/Plugin/ForwardTest.php @@ -41,6 +41,7 @@ class ForwardTest extends TestCase * @var Forward */ private $plugin; + private ServiceManager $services; public function setUp(): void { diff --git a/test/Controller/Plugin/LayoutTest.php b/test/Controller/Plugin/LayoutTest.php index 4aecc6c5..8313d52d 100644 --- a/test/Controller/Plugin/LayoutTest.php +++ b/test/Controller/Plugin/LayoutTest.php @@ -11,6 +11,10 @@ class LayoutTest extends TestCase { + private MvcEvent $event; + private SampleController $controller; + private LayoutPlugin $plugin; + public function setUp(): void { $this->event = $event = new MvcEvent(); diff --git a/test/Controller/Plugin/ParamsTest.php b/test/Controller/Plugin/ParamsTest.php index 31dae3d4..c520536e 100644 --- a/test/Controller/Plugin/ParamsTest.php +++ b/test/Controller/Plugin/ParamsTest.php @@ -5,6 +5,7 @@ use Laminas\Http\Header\GenericHeader; use Laminas\Http\Request; use Laminas\Http\Response; +use Laminas\Mvc\Controller\Plugin\Params; use Laminas\Mvc\MvcEvent; use Laminas\Router\RouteMatch; use LaminasTest\Mvc\Controller\TestAsset\SampleController; @@ -12,6 +13,10 @@ class ParamsTest extends TestCase { + private Request $request; + private SampleController $controller; + private Params $plugin; + public function setUp(): void { $this->request = new Request; diff --git a/test/Controller/Plugin/RedirectTest.php b/test/Controller/Plugin/RedirectTest.php index 6bb87466..ff543d99 100644 --- a/test/Controller/Plugin/RedirectTest.php +++ b/test/Controller/Plugin/RedirectTest.php @@ -16,6 +16,13 @@ class RedirectTest extends TestCase { + private Response $response; + private SimpleRouteStack $router; + private RouteMatch $routeMatch; + private MvcEvent $event; + private SampleController $controller; + private RedirectPlugin $plugin; + public function setUp(): void { $this->response = new Response(); diff --git a/test/Controller/Plugin/UrlTest.php b/test/Controller/Plugin/UrlTest.php index 3bdcd871..fbe50cb6 100644 --- a/test/Controller/Plugin/UrlTest.php +++ b/test/Controller/Plugin/UrlTest.php @@ -20,6 +20,10 @@ class UrlTest extends TestCase { + private SimpleRouteStack $router; + private SampleController $controller; + private UrlPlugin $plugin; + public function setUp(): void { $router = new SimpleRouteStack; diff --git a/test/Controller/RestfulControllerTest.php b/test/Controller/RestfulControllerTest.php index e7518a86..81ef3d9b 100644 --- a/test/Controller/RestfulControllerTest.php +++ b/test/Controller/RestfulControllerTest.php @@ -28,6 +28,8 @@ class RestfulControllerTest extends TestCase public $response; public $routeMatch; public $event; + private SharedEventManager $sharedEvents; + private EventManager $events; public function setUp(): void { diff --git a/test/ModuleRouteListenerTest.php b/test/ModuleRouteListenerTest.php index 872ebb49..e804e780 100644 --- a/test/ModuleRouteListenerTest.php +++ b/test/ModuleRouteListenerTest.php @@ -14,6 +14,12 @@ class ModuleRouteListenerTest extends TestCase { + private Request $request; + private EventManager $events; + private TreeRouteStack $router; + private RouteListener $routeListener; + private ModuleRouteListener $moduleRouteListener; + public function setUp(): void { $this->request = new Request(); diff --git a/test/Service/ControllerManagerFactoryTest.php b/test/Service/ControllerManagerFactoryTest.php index f4306e48..de7e8bd4 100644 --- a/test/Service/ControllerManagerFactoryTest.php +++ b/test/Service/ControllerManagerFactoryTest.php @@ -29,6 +29,7 @@ class ControllerManagerFactoryTest extends TestCase * @var ControllerManager */ protected $loader; + private array $defaultServiceConfig; public function setUp(): void { diff --git a/test/Service/ServiceListenerFactoryTest.php b/test/Service/ServiceListenerFactoryTest.php index 28de7f0a..eb9a5893 100644 --- a/test/Service/ServiceListenerFactoryTest.php +++ b/test/Service/ServiceListenerFactoryTest.php @@ -9,6 +9,9 @@ class ServiceListenerFactoryTest extends TestCase { + private ServiceManager $sm; + private ServiceListenerFactory $factory; + public function setUp(): void { $this->sm = $this->getMockBuilder(ServiceManager::class) diff --git a/test/Service/ViewHelperManagerFactoryTest.php b/test/Service/ViewHelperManagerFactoryTest.php index acf0d1fc..57ec81e2 100644 --- a/test/Service/ViewHelperManagerFactoryTest.php +++ b/test/Service/ViewHelperManagerFactoryTest.php @@ -12,12 +12,14 @@ use Laminas\Router\RouteMatch; use Laminas\Router\RouteStackInterface; use Laminas\ServiceManager\ServiceManager; -use Laminas\View\Helper; use Laminas\View\HelperPluginManager; use PHPUnit\Framework\TestCase; class ViewHelperManagerFactoryTest extends TestCase { + private ServiceManager $services; + private ViewHelperManagerFactory $factory; + public function setUp(): void { $this->services = new ServiceManager(); diff --git a/test/View/CreateViewModelListenerTest.php b/test/View/CreateViewModelListenerTest.php index e41e53b0..8b54d702 100644 --- a/test/View/CreateViewModelListenerTest.php +++ b/test/View/CreateViewModelListenerTest.php @@ -14,6 +14,9 @@ class CreateViewModelListenerTest extends TestCase { use EventListenerIntrospectionTrait; + private CreateViewModelListener $listener; + private MvcEvent $event; + public function setUp(): void { $this->listener = new CreateViewModelListener(); diff --git a/test/View/ExceptionStrategyTest.php b/test/View/ExceptionStrategyTest.php index d1e2670e..ddfd9b9a 100644 --- a/test/View/ExceptionStrategyTest.php +++ b/test/View/ExceptionStrategyTest.php @@ -16,6 +16,8 @@ class ExceptionStrategyTest extends TestCase { use EventListenerIntrospectionTrait; + private ExceptionStrategy $strategy; + public function setUp(): void { $this->strategy = new ExceptionStrategy(); diff --git a/test/View/InjectTemplateListenerTest.php b/test/View/InjectTemplateListenerTest.php index fbce1304..9210c08b 100644 --- a/test/View/InjectTemplateListenerTest.php +++ b/test/View/InjectTemplateListenerTest.php @@ -16,6 +16,10 @@ class InjectTemplateListenerTest extends TestCase { use EventListenerIntrospectionTrait; + private InjectTemplateListener $listener; + private MvcEvent $event; + private RouteMatch $routeMatch; + public function setUp(): void { $controllerMap = [ diff --git a/test/View/InjectViewModelListenerTest.php b/test/View/InjectViewModelListenerTest.php index cbd7775e..0542031f 100644 --- a/test/View/InjectViewModelListenerTest.php +++ b/test/View/InjectViewModelListenerTest.php @@ -14,6 +14,10 @@ class InjectViewModelListenerTest extends TestCase { use EventListenerIntrospectionTrait; + private InjectViewModelListener $listener; + private MvcEvent $event; + private RouteMatch $routeMatch; + public function setUp(): void { $this->listener = new InjectViewModelListener(); From 9a85857a7e53db9418646fdda19b9ef3363dddc7 Mon Sep 17 00:00:00 2001 From: Aleksei Khudiakov Date: Wed, 15 Mar 2023 10:09:01 +1000 Subject: [PATCH 4/4] Add transient dependency as dev to avoid deprecation errors in CI at lowest Signed-off-by: Aleksei Khudiakov --- composer.json | 5 +++-- composer.lock | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index b6272569..312b55ba 100644 --- a/composer.json +++ b/composer.json @@ -41,9 +41,10 @@ "require-dev": { "laminas/laminas-coding-standard": "^2.4.0", "laminas/laminas-json": "^3.3", - "phpspec/prophecy" : "^1.15.0", + "phpspec/prophecy": "^1.15.0", "phpspec/prophecy-phpunit": "^2.0.1", - "phpunit/phpunit": "^9.5.25" + "phpunit/phpunit": "^9.5.25", + "webmozart/assert": "^1.11" }, "suggest": { "laminas/laminas-json": "(^2.6.1 || ^3.0) To auto-deserialize JSON body content in AbstractRestfulController extensions, when json_decode is unavailable", diff --git a/composer.lock b/composer.lock index 0dae7b63..4cd1f66e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "61f41b67e49bdbfff3c453ff0a83598e", + "content-hash": "a0558b00616dd0607f6e63791abf7262", "packages": [ { "name": "brick/varexporter",