From 0b48370ee5fd3ca81743cee83e522ad6a2f376da Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 20 Feb 2023 01:47:02 +0000 Subject: [PATCH 1/5] Lock file maintenance Signed-off-by: Renovate Bot --- composer.lock | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/composer.lock b/composer.lock index a62176dd1..2277a0e53 100644 --- a/composer.lock +++ b/composer.lock @@ -1187,16 +1187,16 @@ }, { "name": "fidry/cpu-core-counter", - "version": "0.4.1", + "version": "0.5.1", "source": { "type": "git", "url": "https://github.com/theofidry/cpu-core-counter.git", - "reference": "79261cc280aded96d098e1b0e0ba0c4881b432c2" + "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/79261cc280aded96d098e1b0e0ba0c4881b432c2", - "reference": "79261cc280aded96d098e1b0e0ba0c4881b432c2", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/b58e5a3933e541dc286cc91fc4f3898bbc6f1623", + "reference": "b58e5a3933e541dc286cc91fc4f3898bbc6f1623", "shasum": "" }, "require": { @@ -1236,7 +1236,7 @@ ], "support": { "issues": "https://github.com/theofidry/cpu-core-counter/issues", - "source": "https://github.com/theofidry/cpu-core-counter/tree/0.4.1" + "source": "https://github.com/theofidry/cpu-core-counter/tree/0.5.1" }, "funding": [ { @@ -1244,7 +1244,7 @@ "type": "github" } ], - "time": "2022-12-16T22:01:02+00:00" + "time": "2022-12-24T12:35:10+00:00" }, { "name": "laminas/laminas-authentication", @@ -4728,26 +4728,25 @@ }, { "name": "spatie/array-to-xml", - "version": "2.17.1", + "version": "3.1.5", "source": { "type": "git", "url": "https://github.com/spatie/array-to-xml.git", - "reference": "5cbec9c6ab17e320c58a259f0cebe88bde4a7c46" + "reference": "13f76acef5362d15c71ae1ac6350cc3df5e25e43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/5cbec9c6ab17e320c58a259f0cebe88bde4a7c46", - "reference": "5cbec9c6ab17e320c58a259f0cebe88bde4a7c46", + "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/13f76acef5362d15c71ae1ac6350cc3df5e25e43", + "reference": "13f76acef5362d15c71ae1ac6350cc3df5e25e43", "shasum": "" }, "require": { "ext-dom": "*", - "php": "^7.4|^8.0" + "php": "^8.0" }, "require-dev": { "mockery/mockery": "^1.2", "pestphp/pest": "^1.21", - "phpunit/phpunit": "^9.0", "spatie/pest-plugin-snapshots": "^1.1" }, "type": "library", @@ -4776,7 +4775,7 @@ "xml" ], "support": { - "source": "https://github.com/spatie/array-to-xml/tree/2.17.1" + "source": "https://github.com/spatie/array-to-xml/tree/3.1.5" }, "funding": [ { @@ -4788,7 +4787,7 @@ "type": "github" } ], - "time": "2022-12-26T08:22:07+00:00" + "time": "2022-12-24T13:43:51+00:00" }, { "name": "squizlabs/php_codesniffer", @@ -5621,16 +5620,16 @@ }, { "name": "vimeo/psalm", - "version": "5.6.0", + "version": "5.7.1", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "e784128902dfe01d489c4123d69918a9f3c1eac5" + "reference": "8e0fd880141f236847ab49a06f94f788d41a4292" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/e784128902dfe01d489c4123d69918a9f3c1eac5", - "reference": "e784128902dfe01d489c4123d69918a9f3c1eac5", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/8e0fd880141f236847ab49a06f94f788d41a4292", + "reference": "8e0fd880141f236847ab49a06f94f788d41a4292", "shasum": "" }, "require": { @@ -5649,12 +5648,12 @@ "ext-tokenizer": "*", "felixfbecker/advanced-json-rpc": "^3.1", "felixfbecker/language-server-protocol": "^1.5.2", - "fidry/cpu-core-counter": "^0.4.0", + "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1", "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", "nikic/php-parser": "^4.13", "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0", "sebastian/diff": "^4.0 || ^5.0", - "spatie/array-to-xml": "^2.17.0", + "spatie/array-to-xml": "^2.17.0 || ^3.0", "symfony/console": "^4.1.6 || ^5.0 || ^6.0", "symfony/filesystem": "^5.4 || ^6.0" }, @@ -5663,13 +5662,13 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.4", - "brianium/paratest": "^6.0", + "brianium/paratest": "^6.9", "ext-curl": "*", "mockery/mockery": "^1.5", "nunomaduro/mock-final-classes": "^1.1", "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/phpdoc-parser": "^1.6", - "phpunit/phpunit": "^9.5", + "phpunit/phpunit": "^9.6", "psalm/plugin-mockery": "^1.1", "psalm/plugin-phpunit": "^0.18", "slevomat/coding-standard": "^8.4", @@ -5715,13 +5714,14 @@ "keywords": [ "code", "inspection", - "php" + "php", + "static analysis" ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/5.6.0" + "source": "https://github.com/vimeo/psalm/tree/5.7.1" }, - "time": "2023-01-23T20:32:47+00:00" + "time": "2023-02-20T00:48:41+00:00" }, { "name": "webimpress/coding-standard", From 3d6c02aeaa9f3742ad360e4b51931d3096797c5d Mon Sep 17 00:00:00 2001 From: George Steel Date: Mon, 29 May 2023 10:30:36 +0100 Subject: [PATCH 2/5] qa: Fix minor psalm issues to keep CI green and bump dev deps Signed-off-by: George Steel --- composer.json | 6 +- composer.lock | 191 ++++---- phpcs.xml | 2 +- psalm-baseline.xml | 580 +++++++++++------------ src/Helper/Navigation/AbstractHelper.php | 5 +- test/Model/ViewModelTest.php | 4 +- 6 files changed, 378 insertions(+), 410 deletions(-) diff --git a/composer.json b/composer.json index 0bdd9f382..54531b147 100644 --- a/composer.json +++ b/composer.json @@ -49,12 +49,12 @@ "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-permissions-acl": "^2.14", "laminas/laminas-router": "^3.11.1", "laminas/laminas-uri": "^2.10", - "phpunit/phpunit": "^9.5.28", + "phpunit/phpunit": "^9.6.3", "psalm/plugin-phpunit": "^0.18.4", - "vimeo/psalm": "^5.4" + "vimeo/psalm": "^5.7.1" }, "conflict": { "container-interop/container-interop": "<1.2", diff --git a/composer.lock b/composer.lock index 2277a0e53..46f6118c4 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": "dd2ee7c1a95d1b511f67a0eda4ea68ce", + "content-hash": "c4e79f4cfb9afcc71764a7bdca4c30b8", "packages": [ { "name": "laminas/laminas-escaper", @@ -1671,16 +1671,16 @@ }, { "name": "laminas/laminas-i18n", - "version": "2.21.0", + "version": "2.22.1", "source": { "type": "git", "url": "https://github.com/laminas/laminas-i18n.git", - "reference": "fbd2d0373aaced4769cba2bf3d1425d55f68abb1" + "reference": "075bec49f777698c6fc229eecefbe7a2364cd18e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-i18n/zipball/fbd2d0373aaced4769cba2bf3d1425d55f68abb1", - "reference": "fbd2d0373aaced4769cba2bf3d1425d55f68abb1", + "url": "https://api.github.com/repos/laminas/laminas-i18n/zipball/075bec49f777698c6fc229eecefbe7a2364cd18e", + "reference": "075bec49f777698c6fc229eecefbe7a2364cd18e", "shasum": "" }, "require": { @@ -1698,7 +1698,7 @@ "laminas/laminas-cache": "^3.8", "laminas/laminas-cache-storage-adapter-memory": "^2.2.0", "laminas/laminas-cache-storage-deprecated-factory": "^1.0.1", - "laminas/laminas-coding-standard": "~2.4.0", + "laminas/laminas-coding-standard": "~2.5.0", "laminas/laminas-config": "^3.8.0", "laminas/laminas-eventmanager": "^3.7", "laminas/laminas-filter": "^2.28.1", @@ -1753,7 +1753,7 @@ "type": "community_bridge" } ], - "time": "2022-12-02T17:15:52+00:00" + "time": "2023-03-31T12:31:38+00:00" }, { "name": "laminas/laminas-loader", @@ -1885,16 +1885,16 @@ }, { "name": "laminas/laminas-mvc", - "version": "3.6.0", + "version": "3.6.1", "source": { "type": "git", "url": "https://github.com/laminas/laminas-mvc.git", - "reference": "c54eaebe3810feaca834cc38ef0a962c89ff2431" + "reference": "f12e801c31c04a4b35017354ff84070f5573879f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-mvc/zipball/c54eaebe3810feaca834cc38ef0a962c89ff2431", - "reference": "c54eaebe3810feaca834cc38ef0a962c89ff2431", + "url": "https://api.github.com/repos/laminas/laminas-mvc/zipball/f12e801c31c04a4b35017354ff84070f5573879f", + "reference": "f12e801c31c04a4b35017354ff84070f5573879f", "shasum": "" }, "require": { @@ -1902,8 +1902,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", "php": "~8.0.0 || ~8.1.0 || ~8.2.0" @@ -1912,14 +1912,12 @@ "zendframework/zend-mvc": "*" }, "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" + "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", @@ -1964,7 +1962,7 @@ "type": "community_bridge" } ], - "time": "2022-12-05T14:02:56+00:00" + "time": "2023-03-15T10:21:03+00:00" }, { "name": "laminas/laminas-mvc-i18n", @@ -2634,16 +2632,16 @@ }, { "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": { @@ -2681,7 +2679,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": [ { @@ -2689,20 +2687,20 @@ "type": "tidelift" } ], - "time": "2022-03-03T13:19:32+00:00" + "time": "2023-03-08T13:26:56+00:00" }, { "name": "netresearch/jsonmapper", - "version": "v4.1.0", + "version": "v4.2.0", "source": { "type": "git", "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "cfa81ea1d35294d64adb9c68aa4cb9e92400e53f" + "reference": "f60565f8c0566a31acf06884cdaa591867ecc956" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/cfa81ea1d35294d64adb9c68aa4cb9e92400e53f", - "reference": "cfa81ea1d35294d64adb9c68aa4cb9e92400e53f", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/f60565f8c0566a31acf06884cdaa591867ecc956", + "reference": "f60565f8c0566a31acf06884cdaa591867ecc956", "shasum": "" }, "require": { @@ -2738,22 +2736,22 @@ "support": { "email": "cweiske@cweiske.de", "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v4.1.0" + "source": "https://github.com/cweiske/jsonmapper/tree/v4.2.0" }, - "time": "2022-12-08T20:46:14+00:00" + "time": "2023-04-09T17:37:40+00:00" }, { "name": "nikic/php-parser", - "version": "v4.15.3", + "version": "v4.15.5", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039" + "reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/570e980a201d8ed0236b0a62ddf2c9cbb2034039", - "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/11e2663a5bc9db5d714eedb4277ee300403b4a9e", + "reference": "11e2663a5bc9db5d714eedb4277ee300403b4a9e", "shasum": "" }, "require": { @@ -2794,9 +2792,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.3" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.5" }, - "time": "2023-01-16T22:05:37+00:00" + "time": "2023-05-19T20:20:00+00:00" }, { "name": "phar-io/manifest", @@ -3120,23 +3118,23 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.24", + "version": "9.2.26", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "2cf940ebc6355a9d430462811b5aaa308b174bed" + "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2cf940ebc6355a9d430462811b5aaa308b174bed", - "reference": "2cf940ebc6355a9d430462811b5aaa308b174bed", + "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", @@ -3151,8 +3149,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": { @@ -3185,7 +3183,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.24" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26" }, "funding": [ { @@ -3193,7 +3191,7 @@ "type": "github" } ], - "time": "2023-01-26T08:26:55+00:00" + "time": "2023-03-06T12:58:08+00:00" }, { "name": "phpunit/php-file-iterator", @@ -3438,16 +3436,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.3", + "version": "9.6.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "e7b1615e3e887d6c719121c6d4a44b0ab9645555" + "reference": "17d621b3aff84d0c8b62539e269e87d8d5baa76e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e7b1615e3e887d6c719121c6d4a44b0ab9645555", - "reference": "e7b1615e3e887d6c719121c6d4a44b0ab9645555", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/17d621b3aff84d0c8b62539e269e87d8d5baa76e", + "reference": "17d621b3aff84d0c8b62539e269e87d8d5baa76e", "shasum": "" }, "require": { @@ -3480,8 +3478,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" @@ -3520,7 +3518,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.3" + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.8" }, "funding": [ { @@ -3536,7 +3535,7 @@ "type": "tidelift" } ], - "time": "2023-02-04T13:37:15+00:00" + "time": "2023-05-11T05:14:45+00:00" }, { "name": "psalm/plugin-phpunit", @@ -3600,25 +3599,25 @@ }, { "name": "psr/http-message", - "version": "1.0.1", + "version": "1.1", "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { @@ -3647,9 +3646,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/master" + "source": "https://github.com/php-fig/http-message/tree/1.1" }, - "time": "2016-08-06T14:39:51+00:00" + "time": "2023-04-04T09:50:52+00:00" }, { "name": "psr/log", @@ -4001,16 +4000,16 @@ }, { "name": "sebastian/diff", - "version": "4.0.4", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", "shasum": "" }, "require": { @@ -4055,7 +4054,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" }, "funding": [ { @@ -4063,7 +4062,7 @@ "type": "github" } ], - "time": "2020-10-26T13:10:38+00:00" + "time": "2023-05-07T05:35:17+00:00" }, { "name": "sebastian/environment", @@ -4728,16 +4727,16 @@ }, { "name": "spatie/array-to-xml", - "version": "3.1.5", + "version": "3.1.6", "source": { "type": "git", "url": "https://github.com/spatie/array-to-xml.git", - "reference": "13f76acef5362d15c71ae1ac6350cc3df5e25e43" + "reference": "e210b98957987c755372465be105d32113f339a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/13f76acef5362d15c71ae1ac6350cc3df5e25e43", - "reference": "13f76acef5362d15c71ae1ac6350cc3df5e25e43", + "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/e210b98957987c755372465be105d32113f339a4", + "reference": "e210b98957987c755372465be105d32113f339a4", "shasum": "" }, "require": { @@ -4775,7 +4774,7 @@ "xml" ], "support": { - "source": "https://github.com/spatie/array-to-xml/tree/3.1.5" + "source": "https://github.com/spatie/array-to-xml/tree/3.1.6" }, "funding": [ { @@ -4787,20 +4786,20 @@ "type": "github" } ], - "time": "2022-12-24T13:43:51+00:00" + "time": "2023-05-11T14:04:07+00:00" }, { "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": { @@ -4836,14 +4835,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": "symfony/console", @@ -5620,22 +5620,22 @@ }, { "name": "vimeo/psalm", - "version": "5.7.1", + "version": "5.12.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "8e0fd880141f236847ab49a06f94f788d41a4292" + "reference": "f90118cdeacd0088e7215e64c0c99ceca819e176" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/8e0fd880141f236847ab49a06f94f788d41a4292", - "reference": "8e0fd880141f236847ab49a06f94f788d41a4292", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/f90118cdeacd0088e7215e64c0c99ceca819e176", + "reference": "f90118cdeacd0088e7215e64c0c99ceca819e176", "shasum": "" }, "require": { "amphp/amp": "^2.4.2", "amphp/byte-stream": "^1.5", - "composer/package-versions-deprecated": "^1.10.0", + "composer-runtime-api": "^2", "composer/semver": "^1.4 || ^2.0 || ^3.0", "composer/xdebug-handler": "^2.0 || ^3.0", "dnoegel/php-xdg-base-dir": "^0.1.1", @@ -5650,7 +5650,7 @@ "felixfbecker/language-server-protocol": "^1.5.2", "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1", "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "nikic/php-parser": "^4.13", + "nikic/php-parser": "^4.14", "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0", "sebastian/diff": "^4.0 || ^5.0", "spatie/array-to-xml": "^2.17.0 || ^3.0", @@ -5661,6 +5661,7 @@ "psalm/psalm": "self.version" }, "require-dev": { + "amphp/phpunit-util": "^2.0", "bamarni/composer-bin-plugin": "^1.4", "brianium/paratest": "^6.9", "ext-curl": "*", @@ -5719,30 +5720,30 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/5.7.1" + "source": "https://github.com/vimeo/psalm/tree/5.12.0" }, - "time": "2023-02-20T00:48:41+00:00" + "time": "2023-05-22T21:19:03+00:00" }, { "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": { @@ -5768,7 +5769,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": [ { @@ -5776,7 +5777,7 @@ "type": "github" } ], - "time": "2022-02-15T19:52:12+00:00" + "time": "2023-03-09T15:05:18+00:00" }, { "name": "webimpress/safe-writer", diff --git a/phpcs.xml b/phpcs.xml index 328d189d5..81b4a2556 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -7,7 +7,7 @@ - + src test diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 2077143a3..c710e8bb4 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,12 +1,12 @@ - + $templatePath $file - $file->getExtension() + getExtension()]]> $templatePath @@ -63,24 +63,24 @@ Iterator - $this->data[$this->name] - $this->data[$this->name] + data[$this->name]]]> + data[$this->name]]]> - $this->data[$this->name][$this->key()] - $this->data[$this->name][$this->key()] + data[$this->name][$this->key()]]]> + data[$this->name][$this->key()]]]> array int - $this->pointers[$this->name] - $this->pointers[$this->name] + pointers[$this->name]]]> + pointers[$this->name]]]> - $this->data[$this->name] - $this->pointers[$this->name] + data[$this->name]]]> + pointers[$this->name]]]> @@ -100,7 +100,7 @@ $vars - $vars->$key + $key]]> $view @@ -119,16 +119,16 @@ null === static::$registeredDoctypes - $this->registry['doctypes'][$type] + registry['doctypes'][$type]]]> array string - $doctypes[$this->getDoctype()] - $this->registry['doctype'] - $this->registry['doctypes'] + getDoctype()]]]> + registry['doctype']]]> + registry['doctypes']]]> $registry @@ -142,7 +142,7 @@ - null === $this->pluginFlashMessenger + pluginFlashMessenger]]> $item @@ -168,7 +168,7 @@ $classes $messagesToPrint[] $messagesToPrint[] - $this->escapeHtmlHelper + escapeHtmlHelper]]> (bool) $autoEscape @@ -177,7 +177,7 @@ (string) $messageSeparatorString - $this->escapeHtmlHelper + escapeHtmlHelper]]> @@ -202,10 +202,10 @@ string - $this->options['default_img'] - $this->options['img_size'] - $this->options['rating'] - $this->options['secure'] + options['default_img']]]> + options['img_size']]]> + options['rating']]]> + options['secure']]]> (bool) $flag @@ -220,7 +220,7 @@ $item - $this->getContainer()->set($value) + getContainer()->set($value)]]> HeadLink @@ -238,9 +238,9 @@ $index $item $item - $this->autoEscape ? $this->escapeAttribute($attributes[$itemKey]) : $attributes[$itemKey] - $this->autoEscape ? $this->escapeAttribute($value) : $value - $this->getSeparator() + autoEscape ? $this->escapeAttribute($attributes[$itemKey]) : $attributes[$itemKey]]]> + autoEscape ? $this->escapeAttribute($value) : $value]]> + getSeparator()]]> $value @@ -275,8 +275,8 @@ $indent - $item->href - $item->rel + href]]> + rel]]> call_user_func_array([$this, '__invoke'], func_get_args()) @@ -295,7 +295,7 @@ $index - $this->view + view]]> (string) $conditionalStylesheet @@ -324,14 +324,14 @@ $args[2] $index $item - $item->$type - $item->content - $item->type + $type]]> + content]]> + type]]> $key - $this->autoEscape ? $this->escapeAttribute($item->$type) : $item->$type - $this->autoEscape ? $this->escapeAttribute($item->content) : $item->content - $this->autoEscape ? $this->escapeAttribute($value) : $value - $this->getSeparator() + autoEscape ? $this->escapeAttribute($item->$type) : $item->$type]]> + autoEscape ? $this->escapeAttribute($item->content) : $item->content]]> + autoEscape ? $this->escapeAttribute($value) : $value]]> + getSeparator()]]> $type $value @@ -361,8 +361,8 @@ $indent - $item->type - $item->{$item->type} + type]]> + {$item->type}]]> parent::__call($method, $args) @@ -372,14 +372,14 @@ $value - $this->offsetSet($index, $item) + offsetSet($index, $item)]]> $index $index - $this->view + view]]> plugin @@ -408,13 +408,13 @@ $indent $index $index - $item->attributes - $item->attributes['conditional'] - $item->type - $item->type + attributes]]> + attributes['conditional']]]> + type]]> + type]]> $key - $this->autoEscape ? $this->escapeAttribute($value) : $value - $this->getSeparator() + autoEscape ? $this->escapeAttribute($value) : $value]]> + getSeparator()]]> $value @@ -425,7 +425,7 @@ $item $item $key - $this->captureType + captureType]]> $type $useCdata $value @@ -438,16 +438,16 @@ isXhtml - $item->attributes['conditional'] - $item->source + attributes['conditional']]]> + source]]> $type - $item->attributes - $item->attributes - $item->source - $item->source - $item->type + attributes]]> + attributes]]> + source]]> + source]]> + type]]> parent::__call($method, $args) @@ -468,7 +468,7 @@ (bool) $flag - (null !== $spec) && is_string($spec) + is_string($spec) @@ -486,20 +486,19 @@ $content $enc - $escaper->escapeHtmlAttr($value) + escapeHtmlAttr($value)]]> $indent $index $item - $item->attributes['conditional'] + attributes['conditional']]]> $key $value - $value $attributes['media'] - $item->attributes['conditional'] + attributes['conditional']]]> $content @@ -517,8 +516,8 @@ $indent $indent - $item->attributes['conditional'] - $item->content + attributes['conditional']]]> + content]]> $index @@ -537,7 +536,7 @@ $captureType - (null !== $content) && is_string($content) + is_string($content) @@ -553,7 +552,7 @@ $item - static fn($item) => $item + $item]]> $item @@ -662,7 +661,7 @@ $value - $this->view + view]]> (bool) $useNamespaces @@ -689,7 +688,7 @@ null - $this->response instanceof Response + response instanceof Response]]> @@ -729,10 +728,10 @@ - ! is_int($this->minDepth) + minDepth)]]> ! is_string($message) $container instanceof AbstractContainer - null === $this->container + container]]> AbstractHelper @@ -763,8 +762,8 @@ $minDepth - $page->getTextDomain() - $page->getTextDomain() + getTextDomain()]]> + getTextDomain()]]> $container @@ -779,7 +778,7 @@ $label - $results->last() + last()]]> $events @@ -788,7 +787,7 @@ strrpos($prefix, '\\') - $page->getTitle() + getTitle()]]> $maxDepth @@ -798,7 +797,6 @@ attach getParent plugin - translate (bool) $renderInvisible @@ -806,10 +804,10 @@ (string) $indent - $this->acl === null && static::$defaultAcl !== null + acl === null && static::$defaultAcl !== null]]> is_int($maxDepth) is_int($minDepth) - null !== $this->container + container]]> static::$defaultAcl !== null @@ -830,8 +828,8 @@ null === $partial - $this->renderPartialModel($params, $container, $partial) - $this->renderPartialModel([], $container, $partial) + renderPartialModel($params, $container, $partial)]]> + renderPartialModel([], $container, $partial)]]> string @@ -842,8 +840,8 @@ $active - $active->getLabel() - $active->getTextDomain() + getLabel()]]> + getTextDomain()]]> $model['pages'] $partial[0] @@ -908,7 +906,7 @@ $intermediate $page $page - $page->$meth() + $meth()]]> $type @@ -948,7 +946,7 @@ (int) $renderFlag - $this->root + root]]> null === $container @@ -979,8 +977,8 @@ null === $partial - $this->renderPartialModel($params, $container, $partial) - $this->renderPartialModel([], $container, $partial) + renderPartialModel($params, $container, $partial)]]> + renderPartialModel([], $container, $partial)]]> string @@ -1008,8 +1006,8 @@ $options['ulClass'] $page $page - $page->getTextDomain() - $page->getTextDomain() + getTextDomain()]]> + getTextDomain()]]> $partial[0] $subPage @@ -1052,7 +1050,7 @@ $container - $page->getTitle() + getTitle()]]> $minDepth @@ -1115,7 +1113,7 @@ $page $priority $serverUrlHelper - $this->serverUrl + serverUrl]]> $basePathHelper() @@ -1128,8 +1126,8 @@ $escaper($string) - $this->serverUrl - $this->serverUrl + serverUrl]]> + serverUrl]]> $container @@ -1155,7 +1153,7 @@ (string) $href - isset($this->serverUrl) + serverUrl)]]> plugin @@ -1184,7 +1182,7 @@ $partialHelper($partial[0], $pages) - $this->view->paginator + view->paginator]]> plugin @@ -1232,13 +1230,13 @@ $item - $this->objectKey + objectKey]]> array - $values->toArray() + toArray()]]> $name @@ -1256,16 +1254,16 @@ - new $this->containerClass($value) + containerClass($value)]]> - $this->items[$key] + items[$key]]]> AbstractContainer - $this->items + items]]> (string) $key @@ -1318,15 +1316,15 @@ (string) $separator - null !== $this->captureKey + captureKey]]> - new $this->containerClass() + containerClass()]]> - $this->container + container]]> ArrayAccess @@ -1345,8 +1343,8 @@ escapeHtmlAttr - $this->getEscaper()->escapeHtml((string) $string) - $this->getEscaper()->escapeHtmlAttr((string) $string) + getEscaper()->escapeHtml((string) $string)]]> + getEscaper()->escapeHtmlAttr((string) $string)]]> AbstractContainer @@ -1358,7 +1356,7 @@ null - new $this->containerClass() + containerClass()]]> (bool) $autoEscape @@ -1366,7 +1364,7 @@ (string) $string - null !== $this->container + container]]> @@ -1374,16 +1372,16 @@ null === static::$instance - new $this->containerClass($value) + containerClass($value)]]> - $this->items[$key] + items[$key]]]> AbstractContainer - $this->items[$key] + items[$key]]]> AbstractContainer @@ -1406,7 +1404,7 @@ $childModel - $this->viewModelHelper + viewModelHelper]]> ViewModel @@ -1417,13 +1415,13 @@ $childModel - $this->viewModelHelper + viewModelHelper]]> - $this->getView() + getView()]]> - $model = $this->getCurrent() + getCurrent()]]> getChildren @@ -1431,7 +1429,7 @@ render - $this->viewModelHelper + viewModelHelper]]> @@ -1464,8 +1462,8 @@ string - $this->host - $this->scheme + host]]> + scheme]]> $_SERVER['REQUEST_URI'] @@ -1544,7 +1542,7 @@ - 3 === func_num_args() && is_bool($options) + is_array($params) is_bool($options) @@ -1565,10 +1563,10 @@ ! $events - $container->get('EventManager') - $container->get('MvcTranslator') - $container->get('Translator') - $container->get(TranslatorInterface::class) + get('EventManager')]]> + get('MvcTranslator')]]> + get('Translator')]]> + get(TranslatorInterface::class)]]> $container @@ -1591,8 +1589,8 @@ parent::get($name, $options) - $this->initializers - $this->initializers + initializers]]> + initializers]]> getServiceLocator @@ -1623,7 +1621,7 @@ int - $this->options['errorLevel'] + options['errorLevel']]]> $captureTo @@ -1631,15 +1629,15 @@ - $this->type - $this->type + type]]> + type]]> false|string - $this->type - $this->type + type]]> + type]]> $variables @@ -1648,7 +1646,7 @@ $feed - $this->feed instanceof Feed + feed instanceof Feed]]> @@ -1689,7 +1687,7 @@ getChildrenByCaptureTo - $child->getChildrenByCaptureTo($capture) + getChildrenByCaptureTo($capture)]]> $children @@ -1698,9 +1696,6 @@ $variables[$name] - - $variables - (bool) $append (bool) $terminate @@ -1729,7 +1724,7 @@ $setting - $this->getFilterChain()->filter($values['result']) + getFilterChain()->filter($values['result'])]]> $model @@ -1791,7 +1786,7 @@ ! is_object($nameOrModel) - null !== $this->jsonpCallback + jsonpCallback]]> @@ -1804,9 +1799,9 @@ $__vars - $this->__template - $this->__template - array_pop($this->__varsCache) + __template]]> + __template]]> + __varsCache)]]> $vars[$name] @@ -1816,14 +1811,14 @@ $vars[$name] - $this->__vars[$key] - $this->__vars[$key] + __vars[$key]]]> + __vars[$key]]]> $includeReturn $setting - $this->__template - $this->__vars + __template]]> + __vars]]> $value $value $variablesAsArray[$key] @@ -1834,7 +1829,7 @@ $vars[$name] - clone $this->vars() + vars()]]> string @@ -1848,29 +1843,29 @@ $setting - $this->__filterChain->filter($this->__content) - $this->__templateResolver->resolve($name, $this) + __filterChain->filter($this->__content)]]> + __templateResolver->resolve($name, $this)]]> - $this->__templateResolver + __templateResolver]]> $variables - $this->__file + __file]]> $values - $this->resolver($this->__template) + resolver($this->__template)]]> - $this->__vars[$key] - $this->__vars[$key] + __vars[$key]]]> + __vars[$key]]]> - $this->__vars - $this->__vars + __vars]]> + __vars]]> resolve @@ -1881,7 +1876,7 @@ is_object($variables) - include $this->__file + __file]]> @@ -1891,9 +1886,9 @@ $resolver $resource - $this->lastLookupFailure - $this->lastLookupFailure - $this->lastSuccessfulResolver + lastLookupFailure]]> + lastLookupFailure]]> + lastSuccessfulResolver]]> false|string @@ -1921,8 +1916,8 @@ - ! is_array($map) && ! $map instanceof Traversable - ! is_array($map) && ! $map instanceof Traversable + + is_string($nameOrMap) @@ -1932,7 +1927,7 @@ false|string - $this->map[$name] + map[$name]]]> @@ -1950,12 +1945,12 @@ $value - $this->lastLookupFailure - $this->lastLookupFailure + lastLookupFailure]]> + lastLookupFailure]]> $value - $this->paths + paths]]> (bool) $flag @@ -2027,9 +2022,9 @@ $whence - $this->pos - $this->pos - $this->pos + pos]]> + pos]]> + pos]]> $offset @@ -2043,9 +2038,6 @@ - - ArrayIterator::class - Variables @@ -2126,7 +2118,7 @@ - (string) $this->helper->toString() + helper->toString()]]> @@ -2143,15 +2135,15 @@ $vars - $vars->varName1 - $vars->varName1 - $vars->varName2 - $vars->varName2 - $vars->varName3 - $vars->varName3 - $vars->varName4 - $vars->varName4 - $vars->varName5 + varName1]]> + varName1]]> + varName2]]> + varName2]]> + varName3]]> + varName3]]> + varName4]]> + varName4]]> + varName5]]> addPath @@ -2204,7 +2196,7 @@ $plugin $plugin - $this->mvcPluginClass + mvcPluginClass]]> FlashMessenger @@ -2327,17 +2319,17 @@ $attributeEscaper('/foo/bar') - $item->conditionalStylesheet - $item->conditionalStylesheet - $item->conditionalStylesheet - $item->conditionalStylesheet - $item->conditionalStylesheet - $item->media - $link->href - $link->href - $value->href - $value->href - $value->href + conditionalStylesheet]]> + conditionalStylesheet]]> + conditionalStylesheet]]> + conditionalStylesheet]]> + conditionalStylesheet]]> + media]]> + href]]> + href]]> + href]]> + href]]> + href]]> appendNext @@ -2377,9 +2369,9 @@ $item $item $item - $item->type - $item->type - $item->type + type]]> + type]]> + type]]> $modifiers $modifiers $value @@ -2418,22 +2410,22 @@ $attributeEscaper('foo bar') - $item->content - $item->content - $item->content - $item->content - $item->content - $item->name - $item->name - $item->type - $item->type - $item->type - $item->type - $item->type - $item->{$item->type} - $item->{$item->type} - $item->{$item->type} - $value->modifiers + content]]> + content]]> + content]]> + content]]> + content]]> + name]]> + name]]> + type]]> + type]]> + type]]> + type]]> + type]]> + {$item->type}]]> + {$item->type}]]> + {$item->type}]]> + modifiers]]> getArrayCopy @@ -2463,7 +2455,7 @@ $item $item $item - $item->source + source]]> $values $values $values @@ -2473,20 +2465,20 @@ $values - $first->attributes['src'] + attributes['src']]]> $items[$i] $values[$i] $values[$i] $values[$i] - $values[$i]->attributes['src'] + attributes['src']]]> $values[0] $values[0] $values[0] - $values[0]->attributes['src'] + attributes['src']]]> $values[5] $values[5] $values[5] - $values[5]->attributes['src'] + attributes['src']]]> $first @@ -2500,25 +2492,25 @@ $values - Generator<string, array<int, string> + ]]> - $first->attributes - $first->source - $first->type - $item->attributes - $item->source - $item->source - $item->source - $values[$i]->attributes - $values[$i]->source - $values[$i]->type - $values[0]->attributes - $values[0]->source - $values[0]->type - $values[5]->attributes - $values[5]->source - $values[5]->type + attributes]]> + source]]> + type]]> + attributes]]> + source]]> + source]]> + source]]> + attributes]]> + source]]> + type]]> + attributes]]> + source]]> + type]]> + attributes]]> + source]]> + type]]> getArrayCopy @@ -2533,8 +2525,8 @@ - $item->content - $item->content + content]]> + content]]> $value $values $values @@ -2544,9 +2536,9 @@ $values $values $values - $values[0]->content - $values[1]->content - $values[2]->content + content]]> + content]]> + content]]> $values[$i] @@ -2565,12 +2557,12 @@ $values - $item->content - $item->content - $value->attributes - $values[0]->content - $values[1]->content - $values[2]->content + content]]> + content]]> + attributes]]> + content]]> + content]]> + content]]> bogusMethod @@ -2610,7 +2602,7 @@ $acl $acl - $this->serviceManager->get('Navigation') + serviceManager->get('Navigation')]]> $acl @@ -2622,7 +2614,7 @@ $_helper - $this->_helper + _helper]]> @@ -2824,9 +2816,9 @@ - function (int $code, string $message) { - $this->errorHandlerMessage = $message; - } + errorHandlerMessage = $message; + }]]> $acl['acl'] @@ -2847,20 +2839,17 @@ $_helper - $this->errorHandlerMessage + errorHandlerMessage]]> - new Page\Uri([ - 'resource' => 'unknownresource', - 'privilege' => 'someprivilege', - ], false) + 'unknownresource', + 'privilege' => 'someprivilege', + ], false)]]> PsrContainerDecorator - - $code - @@ -2880,20 +2869,20 @@ plugin - $nav = clone $this->nav2; - $nav->addPage(['label' => 'Invalid', 'uri' => 'http://w.']); - static::fail('A Laminas\View\Exception\InvalidArgumentException was not thrown on invalid <loc />'); - try { - $this->_helper->render($nav); + nav2;]]> + addPage(['label' => 'Invalid', 'uri' => 'http://w.']);]]> + ');]]> + _helper->render($nav); } catch (View\Exception\ExceptionInterface $e) { $expected = sprintf( 'Encountered an invalid URL for Sitemap XML: "%s"', 'http://w.' ); - $actual = $e->getMessage(); + $actual = $e->getMessage(); static::assertEquals($expected, $actual); return; - } + }]]> @@ -2942,10 +2931,10 @@ $value - $item->message - $item->message - $item->objectKey - $item->objectKey + message]]> + message]]> + objectKey]]> + objectKey]]> $value $value @@ -3054,8 +3043,8 @@ addPath - $item->message - $item->message + message]]> + message]]> $data @@ -3082,11 +3071,11 @@ $value - $view->vars() + vars()]]> - $model->getVariables() - $model->getVariables() + getVariables()]]> + getVariables()]]> $return @@ -3131,7 +3120,7 @@ - $container->data + data]]> @@ -3142,7 +3131,7 @@ - $this->translations + translations]]> @@ -3165,6 +3154,9 @@ $value + + AllowDynamicProperties + @@ -3194,7 +3186,7 @@ $urlHelper('test') - $urlHelper('test', [], ['force_canonical' => true]) + true])]]> bootstrap @@ -3228,7 +3220,7 @@ $target - Generator<mixed, array{0: mixed, 1: mixed}, mixed, void> + ]]> @@ -3252,34 +3244,6 @@ new stdClass() new stdClass() - - [ - // variables default expected - - // if it is set always get the value - [['foo' => 'bar'], 'baz', 'bar'], - [['foo' => 'bar'], null, 'bar'], - [new ArrayObject(['foo' => 'bar']), 'baz', 'bar'], - [new ArrayObject(['foo' => 'bar']), null, 'bar'], - - // if it is null always get null value - [['foo' => null], null, null], - [['foo' => null], 'baz', null], - [new ArrayObject(['foo' => null]), null, null], - [new ArrayObject(['foo' => null]), 'baz', null], - - // when it is not set always get default value - [[], 'baz', 'baz'], - [new ArrayObject(), 'baz', 'baz'], - ] - - - array<array-key, array{ - * 0: array<string, null|string>|ArrayObject<string, null|string>, - * 1: null|string, - * 2: null|string - * }> - $variables['foo'] @@ -3302,7 +3266,7 @@ getArrayCopy - $this->renderer->vars()->foo + renderer->vars()->foo]]> $vars['foo'] @@ -3354,12 +3318,12 @@ - $headers->get('content-type')->getFieldValue() - $headers->get('content-type')->getFieldValue() - $headers->get('content-type')->getFieldValue() - $headers->get('content-type')->getFieldValue() - $headers->get('content-type')->getFieldValue() - $headers->get('content-type')->getFieldValue() + get('content-type')->getFieldValue()]]> + get('content-type')->getFieldValue()]]> + get('content-type')->getFieldValue()]]> + get('content-type')->getFieldValue()]]> + get('content-type')->getFieldValue()]]> + get('content-type')->getFieldValue()]]> $content @@ -3433,8 +3397,8 @@ $e - $result->content - $this->result->content + content]]> + result->content]]> $result[] diff --git a/src/Helper/Navigation/AbstractHelper.php b/src/Helper/Navigation/AbstractHelper.php index 39f5babd4..cfc4d446c 100644 --- a/src/Helper/Navigation/AbstractHelper.php +++ b/src/Helper/Navigation/AbstractHelper.php @@ -9,6 +9,7 @@ use Laminas\EventManager\EventManagerAwareInterface; use Laminas\EventManager\EventManagerInterface; use Laminas\EventManager\SharedEventManager; +use Laminas\I18n\Translator\TranslatorInterface; use Laminas\Navigation; use Laminas\Navigation\AbstractContainer; use Laminas\Navigation\Page\AbstractPage; @@ -21,6 +22,7 @@ use RecursiveIteratorIterator; use ReflectionClass; +use function assert; use function call_user_func_array; use function gettype; use function in_array; @@ -432,7 +434,7 @@ public function htmlify(AbstractPage $page) protected function translate($message, $textDomain = null) { if (! is_string($message) || empty($message)) { - return $message; + return ''; } if (! $this->isTranslatorEnabled() || ! $this->hasTranslator()) { @@ -440,6 +442,7 @@ protected function translate($message, $textDomain = null) } $translator = $this->getTranslator(); + assert($translator instanceof TranslatorInterface); $textDomain = $textDomain ?: $this->getTranslatorTextDomain(); return $translator->translate($message, $textDomain); diff --git a/test/Model/ViewModelTest.php b/test/Model/ViewModelTest.php index 234b78c37..a2a66922f 100644 --- a/test/Model/ViewModelTest.php +++ b/test/Model/ViewModelTest.php @@ -364,9 +364,9 @@ public function testCloneWithArray(): void /** * @psalm-return array|ArrayObject, + * 0: array|ArrayObject|ArrayObject, * 1: null|string, - * 2: null|string + * 2: null|string, * }> */ public function variableValue(): array From 1f6aa86be68b8ab29ad37f4d7e0d7b9f029a527e Mon Sep 17 00:00:00 2001 From: George Steel Date: Mon, 29 May 2023 10:42:36 +0100 Subject: [PATCH 3/5] Remove support for PHP 8.0. Bump ServiceManager to 3.21.x Includes commits from #201 Works around a BC break relating to tests introduced in `laminas-servicemanager` 3.21 where a protected method was made static. Resolves SA issues introduced by the PHP upgrade and baselines other (currently) unfixable SA issues Signed-off-by: George Steel --- composer.json | 6 +- composer.lock | 258 ++++++------- psalm-baseline.xml | 342 ++++++++++++------ test/Helper/Navigation/NavigationTest.php | 5 +- .../PluginManagerCompatibilityTest.php | 2 +- test/Helper/UrlIntegrationTest.php | 3 +- test/Helper/UrlTest.php | 10 +- test/HelperPluginManagerCompatibilityTest.php | 5 +- test/PhpRendererTest.php | 3 +- 9 files changed, 370 insertions(+), 264 deletions(-) diff --git a/composer.json b/composer.json index 54531b147..d694535e6 100644 --- a/composer.json +++ b/composer.json @@ -18,21 +18,21 @@ "config": { "sort-packages": true, "platform": { - "php": "8.0.99" + "php": "8.1.99" }, "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true } }, "require": { - "php": "~8.0.0 || ~8.1.0 || ~8.2.0", + "php": "~8.1.0 || ~8.2.0", "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.14.0", + "laminas/laminas-servicemanager": "^3.21.0", "laminas/laminas-stdlib": "^3.10.1", "psr/container": "^1 || ^2" }, diff --git a/composer.lock b/composer.lock index 46f6118c4..5930eed74 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": "c4e79f4cfb9afcc71764a7bdca4c30b8", + "content-hash": "48efa4a94478314d01d12cf284062b41", "packages": [ { "name": "laminas/laminas-escaper", @@ -199,26 +199,26 @@ }, { "name": "laminas/laminas-servicemanager", - "version": "3.20.0", + "version": "3.21.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-servicemanager.git", - "reference": "bc2c2cbe2dd90db8b9d16b0618f542692b76ab59" + "reference": "625f2aa3bc6dd02688b2da5155b3a69870812bda" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/bc2c2cbe2dd90db8b9d16b0618f542692b76ab59", - "reference": "bc2c2cbe2dd90db8b9d16b0618f542692b76ab59", + "url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/625f2aa3bc6dd02688b2da5155b3a69870812bda", + "reference": "625f2aa3bc6dd02688b2da5155b3a69870812bda", "shasum": "" }, "require": { - "laminas/laminas-stdlib": "^3.2.1", - "php": "~8.0.0 || ~8.1.0 || ~8.2.0", + "laminas/laminas-stdlib": "^3.17", + "php": "~8.1.0 || ~8.2.0", "psr/container": "^1.0" }, "conflict": { "ext-psr": "*", - "laminas/laminas-code": "<3.3.1", + "laminas/laminas-code": "<4.10.0", "zendframework/zend-code": "<3.3.1", "zendframework/zend-servicemanager": "*" }, @@ -230,18 +230,19 @@ }, "require-dev": { "composer/package-versions-deprecated": "^1.11.99.5", - "laminas/laminas-coding-standard": "~2.4.0", + "friendsofphp/proxy-manager-lts": "^1.0.14", + "laminas/laminas-code": "^4.10.0", + "laminas/laminas-coding-standard": "~2.5.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" + "mikey179/vfsstream": "^1.6.11", + "phpbench/phpbench": "^1.2.9", + "phpunit/phpunit": "^10.0.17", + "psalm/plugin-phpunit": "^0.18.4", + "vimeo/psalm": "^5.8.0" }, "suggest": { - "ocramius/proxy-manager": "ProxyManager ^2.1.1 to handle lazy initialization of services" + "friendsofphp/proxy-manager-lts": "ProxyManager ^2.1.1 to handle lazy initialization of services" }, "bin": [ "bin/generate-deps-for-config-factory", @@ -285,34 +286,34 @@ "type": "community_bridge" } ], - "time": "2022-12-01T17:03:38+00:00" + "time": "2023-05-14T12:24:54+00:00" }, { "name": "laminas/laminas-stdlib", - "version": "3.16.1", + "version": "3.17.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-stdlib.git", - "reference": "f4f773641807c7ccee59b758bfe4ac4ba33ecb17" + "reference": "dd35c868075bad80b6718959740913e178eb4274" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/f4f773641807c7ccee59b758bfe4ac4ba33ecb17", - "reference": "f4f773641807c7ccee59b758bfe4ac4ba33ecb17", + "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/dd35c868075bad80b6718959740913e178eb4274", + "reference": "dd35c868075bad80b6718959740913e178eb4274", "shasum": "" }, "require": { - "php": "~8.0.0 || ~8.1.0 || ~8.2.0" + "php": "~8.1.0 || ~8.2.0" }, "conflict": { "zendframework/zend-stdlib": "*" }, "require-dev": { - "laminas/laminas-coding-standard": "^2.4.0", - "phpbench/phpbench": "^1.2.7", - "phpunit/phpunit": "^9.5.26", - "psalm/plugin-phpunit": "^0.18.0", - "vimeo/psalm": "^5.0.0" + "laminas/laminas-coding-standard": "^2.5", + "phpbench/phpbench": "^1.2.9", + "phpunit/phpunit": "^10.0.16", + "psalm/plugin-phpunit": "^0.18.4", + "vimeo/psalm": "^5.8" }, "type": "library", "autoload": { @@ -344,7 +345,7 @@ "type": "community_bridge" } ], - "time": "2022-12-03T18:48:01+00:00" + "time": "2023-03-20T13:51:37+00:00" }, { "name": "psr/container", @@ -1016,30 +1017,30 @@ }, { "name": "doctrine/instantiator", - "version": "1.5.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^9 || ^11", + "doctrine/coding-standard": "^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.30 || ^5.4" + "phpbench/phpbench": "^1.2", + "phpstan/phpstan": "^1.9.4", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5.27", + "vimeo/psalm": "^5.4" }, "type": "library", "autoload": { @@ -1066,7 +1067,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.5.0" + "source": "https://github.com/doctrine/instantiator/tree/2.0.0" }, "funding": [ { @@ -1082,7 +1083,7 @@ "type": "tidelift" } ], - "time": "2022-12-30T00:15:36+00:00" + "time": "2022-12-30T00:23:10+00:00" }, { "name": "felixfbecker/advanced-json-rpc", @@ -1528,23 +1529,23 @@ }, { "name": "laminas/laminas-filter", - "version": "2.31.0", + "version": "2.32.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-filter.git", - "reference": "548a6597d357b0b0b139cc7bffea4dfbc50eb5a8" + "reference": "2b7e6b2b26a92412c38336ee3089251164edf141" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-filter/zipball/548a6597d357b0b0b139cc7bffea4dfbc50eb5a8", - "reference": "548a6597d357b0b0b139cc7bffea4dfbc50eb5a8", + "url": "https://api.github.com/repos/laminas/laminas-filter/zipball/2b7e6b2b26a92412c38336ee3089251164edf141", + "reference": "2b7e6b2b26a92412c38336ee3089251164edf141", "shasum": "" }, "require": { "ext-mbstring": "*", - "laminas/laminas-servicemanager": "^3.14.0", + "laminas/laminas-servicemanager": "^3.21.0", "laminas/laminas-stdlib": "^3.13.0", - "php": "~8.0.0 || ~8.1.0 || ~8.2.0" + "php": "~8.1.0 || ~8.2.0" }, "conflict": { "laminas/laminas-validator": "<2.10.1", @@ -1552,13 +1553,13 @@ }, "require-dev": { "laminas/laminas-coding-standard": "~2.5.0", - "laminas/laminas-crypt": "^3.9", + "laminas/laminas-crypt": "^3.10", "laminas/laminas-uri": "^2.10", "pear/archive_tar": "^1.4.14", - "phpunit/phpunit": "^9.5.27", + "phpunit/phpunit": "^10.1.3", "psalm/plugin-phpunit": "^0.18.4", - "psr/http-factory": "^1.0.1", - "vimeo/psalm": "^5.3" + "psr/http-factory": "^1.0.2", + "vimeo/psalm": "^5.11" }, "suggest": { "laminas/laminas-crypt": "Laminas\\Crypt component, for encryption filters", @@ -1602,7 +1603,7 @@ "type": "community_bridge" } ], - "time": "2023-01-12T06:17:48+00:00" + "time": "2023-05-16T23:25:05+00:00" }, { "name": "laminas/laminas-http", @@ -1671,42 +1672,41 @@ }, { "name": "laminas/laminas-i18n", - "version": "2.22.1", + "version": "2.23.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-i18n.git", - "reference": "075bec49f777698c6fc229eecefbe7a2364cd18e" + "reference": "bb844a1141bb6e65d8889f5a08383f761a8270b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-i18n/zipball/075bec49f777698c6fc229eecefbe7a2364cd18e", - "reference": "075bec49f777698c6fc229eecefbe7a2364cd18e", + "url": "https://api.github.com/repos/laminas/laminas-i18n/zipball/bb844a1141bb6e65d8889f5a08383f761a8270b2", + "reference": "bb844a1141bb6e65d8889f5a08383f761a8270b2", "shasum": "" }, "require": { "ext-intl": "*", - "laminas/laminas-servicemanager": "^3.14.0", - "laminas/laminas-stdlib": "^2.7 || ^3.0", - "php": "~8.0.0 || ~8.1.0 || ~8.2.0" + "laminas/laminas-servicemanager": "^3.21.0", + "laminas/laminas-stdlib": "^3.0", + "php": "~8.1.0 || ~8.2.0" }, "conflict": { "laminas/laminas-view": "<2.20.0", - "phpspec/prophecy": "<1.9.0", "zendframework/zend-i18n": "*" }, "require-dev": { - "laminas/laminas-cache": "^3.8", + "laminas/laminas-cache": "^3.10.1", "laminas/laminas-cache-storage-adapter-memory": "^2.2.0", - "laminas/laminas-cache-storage-deprecated-factory": "^1.0.1", + "laminas/laminas-cache-storage-deprecated-factory": "^1.1", "laminas/laminas-coding-standard": "~2.5.0", "laminas/laminas-config": "^3.8.0", - "laminas/laminas-eventmanager": "^3.7", - "laminas/laminas-filter": "^2.28.1", - "laminas/laminas-validator": "^2.28", - "laminas/laminas-view": "^2.25", - "phpunit/phpunit": "^9.5.26", - "psalm/plugin-phpunit": "^0.18.3", - "vimeo/psalm": "^5.0.0" + "laminas/laminas-eventmanager": "^3.10", + "laminas/laminas-filter": "^2.31", + "laminas/laminas-validator": "^2.30.1", + "laminas/laminas-view": "^2.27", + "phpunit/phpunit": "^10.1.3", + "psalm/plugin-phpunit": "^0.18.4", + "vimeo/psalm": "^5.11" }, "suggest": { "laminas/laminas-cache": "You should install this package to cache the translations", @@ -1753,7 +1753,7 @@ "type": "community_bridge" } ], - "time": "2023-03-31T12:31:38+00:00" + "time": "2023-05-16T23:22:24+00:00" }, { "name": "laminas/laminas-loader", @@ -2547,40 +2547,40 @@ }, { "name": "laminas/laminas-validator", - "version": "2.30.1", + "version": "2.31.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-validator.git", - "reference": "b7d217b5e4951955fda9a3a5ada91b717b5c8d5c" + "reference": "7dc274aa5afd5e23be0dbea13363e3d66ba5808b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-validator/zipball/b7d217b5e4951955fda9a3a5ada91b717b5c8d5c", - "reference": "b7d217b5e4951955fda9a3a5ada91b717b5c8d5c", + "url": "https://api.github.com/repos/laminas/laminas-validator/zipball/7dc274aa5afd5e23be0dbea13363e3d66ba5808b", + "reference": "7dc274aa5afd5e23be0dbea13363e3d66ba5808b", "shasum": "" }, "require": { - "laminas/laminas-servicemanager": "^3.12.0", + "laminas/laminas-servicemanager": "^3.21.0", "laminas/laminas-stdlib": "^3.13", - "php": "~8.0.0 || ~8.1.0 || ~8.2.0", - "psr/http-message": "^1.0.1" + "php": "~8.1.0 || ~8.2.0", + "psr/http-message": "^1.0.1 || ^2.0.0" }, "conflict": { "zendframework/zend-validator": "*" }, "require-dev": { - "laminas/laminas-coding-standard": "^2.4.0", - "laminas/laminas-db": "^2.16", - "laminas/laminas-filter": "^2.28.1", + "laminas/laminas-coding-standard": "^2.5", + "laminas/laminas-db": "^2.18", + "laminas/laminas-filter": "^2.32", "laminas/laminas-http": "^2.18", - "laminas/laminas-i18n": "^2.19", - "laminas/laminas-session": "^2.15", + "laminas/laminas-i18n": "^2.23", + "laminas/laminas-session": "^2.16", "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" + "phpunit/phpunit": "^10.1.3", + "psalm/plugin-phpunit": "^0.18.4", + "psr/http-client": "^1.0.2", + "psr/http-factory": "^1.0.2", + "vimeo/psalm": "^5.11" }, "suggest": { "laminas/laminas-db": "Laminas\\Db component, required by the (No)RecordExists validator", @@ -2628,7 +2628,7 @@ "type": "community_bridge" } ], - "time": "2023-01-30T22:41:19+00:00" + "time": "2023-05-19T09:42:26+00:00" }, { "name": "myclabs/deep-copy", @@ -3599,16 +3599,16 @@ }, { "name": "psr/http-message", - "version": "1.1", + "version": "2.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", - "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", "shasum": "" }, "require": { @@ -3617,7 +3617,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -3632,7 +3632,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP messages", @@ -3646,9 +3646,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/1.1" + "source": "https://github.com/php-fig/http-message/tree/2.0" }, - "time": "2023-04-04T09:50:52+00:00" + "time": "2023-04-04T09:54:51+00:00" }, { "name": "psr/log", @@ -4847,20 +4847,21 @@ }, { "name": "symfony/console", - "version": "v6.0.19", + "version": "v6.2.11", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed" + "reference": "5aa03db8ef0a5457c316ec580e69562d97734c77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/c3ebc83d031b71c39da318ca8b7a07ecc67507ed", - "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed", + "url": "https://api.github.com/repos/symfony/console/zipball/5aa03db8ef0a5457c316ec580e69562d97734c77", + "reference": "5aa03db8ef0a5457c316ec580e69562d97734c77", "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^1.1|^2|^3", "symfony/string": "^5.4|^6.0" @@ -4917,12 +4918,12 @@ "homepage": "https://symfony.com", "keywords": [ "cli", - "command line", + "command-line", "console", "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.0.19" + "source": "https://github.com/symfony/console/tree/v6.2.11" }, "funding": [ { @@ -4938,29 +4939,29 @@ "type": "tidelift" } ], - "time": "2023-01-01T08:36:10+00:00" + "time": "2023-05-26T08:16:21+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.0.2", + "version": "v3.2.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c" + "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", - "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e", + "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e", "shasum": "" }, "require": { - "php": ">=8.0.2" + "php": ">=8.1" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "3.3-dev" }, "thanks": { "name": "symfony/contracts", @@ -4989,7 +4990,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.2" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.1" }, "funding": [ { @@ -5005,24 +5006,24 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:55:41+00:00" + "time": "2023-03-01T10:25:55+00:00" }, { "name": "symfony/filesystem", - "version": "v6.0.19", + "version": "v6.2.10", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "3d49eec03fda1f0fc19b7349fbbe55ebc1004214" + "reference": "fd588debf7d1bc16a2c84b4b3b71145d9946b894" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/3d49eec03fda1f0fc19b7349fbbe55ebc1004214", - "reference": "3d49eec03fda1f0fc19b7349fbbe55ebc1004214", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/fd588debf7d1bc16a2c84b4b3b71145d9946b894", + "reference": "fd588debf7d1bc16a2c84b4b3b71145d9946b894", "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8" }, @@ -5052,7 +5053,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.0.19" + "source": "https://github.com/symfony/filesystem/tree/v6.2.10" }, "funding": [ { @@ -5068,7 +5069,7 @@ "type": "tidelift" } ], - "time": "2023-01-20T17:44:14+00:00" + "time": "2023-04-18T13:46:08+00:00" }, { "name": "symfony/polyfill-ctype", @@ -5485,20 +5486,20 @@ }, { "name": "symfony/string", - "version": "v6.0.19", + "version": "v6.2.8", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a" + "reference": "193e83bbd6617d6b2151c37fff10fa7168ebddef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/d9e72497367c23e08bf94176d2be45b00a9d232a", - "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a", + "url": "https://api.github.com/repos/symfony/string/zipball/193e83bbd6617d6b2151c37fff10fa7168ebddef", + "reference": "193e83bbd6617d6b2151c37fff10fa7168ebddef", "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", @@ -5510,6 +5511,7 @@ "require-dev": { "symfony/error-handler": "^5.4|^6.0", "symfony/http-client": "^5.4|^6.0", + "symfony/intl": "^6.2", "symfony/translation-contracts": "^2.0|^3.0", "symfony/var-exporter": "^5.4|^6.0" }, @@ -5550,7 +5552,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.0.19" + "source": "https://github.com/symfony/string/tree/v6.2.8" }, "funding": [ { @@ -5566,7 +5568,7 @@ "type": "tidelift" } ], - "time": "2023-01-01T08:36:10+00:00" + "time": "2023-03-20T16:06:02+00:00" }, { "name": "theseer/tokenizer", @@ -5903,14 +5905,14 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "~8.0.0 || ~8.1.0 || ~8.2.0", + "php": "~8.1.0 || ~8.2.0", "ext-dom": "*", "ext-filter": "*", "ext-json": "*" }, "platform-dev": [], "platform-overrides": { - "php": "8.0.99" + "php": "8.1.99" }, "plugin-api-version": "2.3.0" } diff --git a/psalm-baseline.xml b/psalm-baseline.xml index c710e8bb4..2ee875cf3 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -59,6 +59,9 @@ Cycle Cycle + + __toString + Iterator @@ -118,6 +121,9 @@ null === static::$registeredDoctypes + + __toString + registry['doctypes'][$type]]]> @@ -184,6 +190,9 @@ $flag === null + + __toString + $attributes $email @@ -228,6 +237,9 @@ (object) $attributes + + offsetSet + $args $args @@ -244,7 +256,7 @@ $value - $extras['media'] + $media @@ -279,7 +291,7 @@ rel]]> - call_user_func_array([$this, '__invoke'], func_get_args()) + $value @@ -318,6 +330,10 @@ $item + + offsetSet + offsetUnset + $args[0] $args[1] @@ -400,8 +416,11 @@ - ['type'] + + + offsetSet + $content $content @@ -418,7 +437,7 @@ $value - $attrs['src'] + $content $indent $index @@ -483,6 +502,9 @@ + + offsetSet + $content $enc @@ -495,7 +517,7 @@ $value - $attributes['media'] + attributes['conditional']]]> @@ -740,6 +762,9 @@ Navigation\Exception\ExceptionInterface + + __toString + $container $container @@ -784,7 +809,7 @@ $events - strrpos($prefix, '\\') + getTitle()]]> @@ -820,7 +845,7 @@ setSharedManager - return ''; + @@ -842,19 +867,19 @@ $active getLabel()]]> getTextDomain()]]> - $model['pages'] + $partial[0] - $model['pages'][] - $model['pages'][] + + $active $active $active $label - $model['pages'][] + $parent @@ -967,9 +992,9 @@ isAllowed - $params['acl'] - $params['page'] - $params['role'] + + + @@ -988,22 +1013,22 @@ $partial - $options['addClassToListItem'] - $options['addClassToListItem'] - $options['escapeLabels'] - $options['escapeLabels'] - $options['indent'] - $options['indent'] - $options['indent'] - $options['liActiveClass'] - $options['liActiveClass'] - $options['maxDepth'] - $options['maxDepth'] - $options['minDepth'] - $options['minDepth'] - $options['onlyActiveBranch'] - $options['ulClass'] - $options['ulClass'] + + + + + + + + + + + + + + + + $page $page getTextDomain()]]> @@ -1015,8 +1040,8 @@ $liClasses - $active['page'] - $active['page'] + + $foundDepth $foundPage $isActive @@ -1038,12 +1063,12 @@ isActive - $active['depth'] + $escaper($label) $escaper($ulClass) $escaper($ulClass) - $escaper(implode(' ', $liClasses)) - $escaper(implode(' ', $liClasses)) + + $foundDepth @@ -1283,6 +1308,9 @@ self + + __toString + AbstractContainer @@ -1326,6 +1354,9 @@ container]]> + + __toString + ArrayAccess IteratorAggregate @@ -1454,7 +1485,7 @@ - $_SERVER['SERVER_PORT'] + $port @@ -1466,13 +1497,13 @@ scheme]]> - $_SERVER['REQUEST_URI'] + (bool) $useProxy - $_SERVER['HTTPS'] === true + @@ -1482,11 +1513,11 @@ - $config['view_helper_config']['doctype'] + - $config['view_helper_config'] - $config['view_helper_config']['doctype'] + + $config @@ -1502,17 +1533,17 @@ FlashMessengerFactory - $configHelper['message_close_string'] - $configHelper['message_open_format'] - $configHelper['message_separator_string'] + + + $flashMessenger - $configHelper['message_close_string'] - $configHelper['message_open_format'] - $configHelper['message_separator_string'] - $config['view_helper_config'] - $config['view_helper_config']['flashmessenger'] + + + + + $config @@ -1547,21 +1578,27 @@ is_bool($options) - $options['name'] + $reuseMatchedParams - $routeMatchParams['controller'] + $options + + null|ConfigInterface|ContainerInterface + ! $events ! $events + + get + get('EventManager')]]> get('MvcTranslator')]]> @@ -1735,7 +1772,7 @@ - $options['feed_type'] + $resolver @@ -2109,7 +2146,7 @@ $value - $params['result'] + $name @@ -2200,6 +2237,20 @@ FlashMessenger + [ + 'config' => $config, + ], + 'factories' => [ + 'ControllerPluginManager' => fn(ContainerInterface $services) => new PluginManager($services, [ + 'invokables' => [ + 'flashmessenger' => $this->mvcPluginClass, + ], + ]), + 'ViewHelperManager' => static fn(ContainerInterface $services) + => new HelperPluginManager($services), + ], + ])]]> new FlashMessenger() new FlashMessenger() new FlashMessenger() @@ -2259,19 +2310,19 @@ - 'foo' - 'foo' + + - $attributeEscaper('/styles.css') - $attributeEscaper('/styles.css') - $attributeEscaper('/styles.css') - $attributeEscaper('/styles.css') - $attributeEscaper('/test1.css') - $attributeEscaper('/test2.css') - $attributeEscaper('/test3.css') - $attributeEscaper('/test4.css') - $attributeEscaper('text/css') + + + + + + + + + $item $item $item @@ -2306,17 +2357,17 @@ iterable - $attributeEscaper($link['href']) - $attributeEscaper($link['href']) - $attributeEscaper($link['href']) - $attributeEscaper($link['rel']) - $attributeEscaper($link['rel']) - $attributeEscaper($link['title']) - $attributeEscaper($link['type']) - $attributeEscaper($link['type']) - $attributeEscaper($link['type']) - $attributeEscaper('/foo/bar') - $attributeEscaper('/foo/bar') + + + + + + + + + + + conditionalStylesheet]]> @@ -2347,16 +2398,16 @@ - 'foo' - 'foo' - 'foo' - [$this, 'handleErrors'] + + + + - $attributeEscaper('HeadMeta with Microdata') - $attributeEscaper('og:title') - $attributeEscaper('some content') - $attributeEscaper('some content') + + + + $item $item $item @@ -2386,8 +2437,8 @@ $values - $modifiers['lang'] - $modifiers['scheme'] + + $values[$i] $values[100] @@ -2406,8 +2457,8 @@ $values - $attributeEscaper('boo bah') - $attributeEscaper('foo bar') + + content]]> @@ -2447,11 +2498,11 @@ public function booleanAttributeDataProvider(): Generator - $attributeEscaper('test1.js') - $attributeEscaper('test2.js') - $attributeEscaper('test3.js') - $attributeEscaper('test4.js') - $attributeEscaper('text/javascript') + + + + + $item $item $item @@ -2595,7 +2646,7 @@ $escape($value) $escape($value) - $escape('http://www.w3.org/1999/xhtml') + @@ -2618,6 +2669,9 @@ + + getDependencyConfig())]]> + $app @@ -2633,16 +2687,16 @@ null - new GenericResource('admin_foo', 'member_foo') + - 'Navigation' - 'Navigation' + + - $acl['acl'] + $_helper @@ -2791,15 +2845,15 @@ - 'Navigation' - 'Navigation' + + - $acl['acl'] - $acl['acl'] - $acl['acl'] - $acl['acl'] - $acl['acl'] + + + + + $p @@ -2821,9 +2875,9 @@ }]]> - $acl['acl'] - $acl['acl'] - $acl['acl'] + + + $actual @@ -2851,10 +2905,19 @@ PsrContainerDecorator + + + [ + 'default' => [], + ], + ])]]> + + - $acl['acl'] - $acl['acl'] + + setBasePath @@ -2889,7 +2952,7 @@ $all $paginator - ['partial.phtml', 'test'] + null @@ -2911,8 +2974,8 @@ $rIterator $rIterator $rIterator - 'foo' - 'foo' + + new stdClass() new stdClass() @@ -3170,6 +3233,9 @@ + + getDependencyConfig())]]> + $serviceConfig $test @@ -3185,7 +3251,7 @@ $viewHelpers - $urlHelper('test') + true])]]> @@ -3204,12 +3270,20 @@ $it $router $router - 'invalid params' + true true + + [ + 'config' => [], + ], + 'factories' => $factories, + ])]]> + $target $target @@ -3224,6 +3298,42 @@ + + [ + 'foo' => static fn($container) => $helper, + ], + ] + )]]> + [ + Url::class => static fn($container) => $helper, + ], + ] + )]]> + [ + 'MvcTranslator' => $translator, + ], + ])]]> + [ + 'Translator' => $translator, + ], + ])]]> + [ + 'Translator' => $translatorB, + ], + ])]]> + [ + TranslatorInterface::class => $translator, + ], + ])]]> + $container $container @@ -3245,7 +3355,7 @@ new stdClass() - $variables['foo'] + @@ -3269,7 +3379,7 @@ renderer->vars()->foo]]> - $vars['foo'] + $errno diff --git a/test/Helper/Navigation/NavigationTest.php b/test/Helper/Navigation/NavigationTest.php index ccce72bf7..2ce626115 100644 --- a/test/Helper/Navigation/NavigationTest.php +++ b/test/Helper/Navigation/NavigationTest.php @@ -577,9 +577,8 @@ public function testInjectsLazyInstantiatedPluginManagerWithCurrentServiceLocato $plugins = $helper->getPluginManager(); $this->assertInstanceOf(Navigation\PluginManager::class, $plugins); - $pluginsReflection = new ReflectionObject($plugins); - $creationContext = $pluginsReflection->getProperty('creationContext'); - $creationContext->setAccessible(true); + $pluginsReflection = new ReflectionObject($plugins); + $creationContext = $pluginsReflection->getProperty('creationContext'); $creationContextValue = $creationContext->getValue($plugins); /** Later versions of AbstractPluginManager Decorate Psr Containers */ diff --git a/test/Helper/Navigation/PluginManagerCompatibilityTest.php b/test/Helper/Navigation/PluginManagerCompatibilityTest.php index 083f154fe..a073c2565 100644 --- a/test/Helper/Navigation/PluginManagerCompatibilityTest.php +++ b/test/Helper/Navigation/PluginManagerCompatibilityTest.php @@ -17,7 +17,7 @@ class PluginManagerCompatibilityTest extends TestCase { use CommonPluginManagerTrait; - protected function getPluginManager(): PluginManager + protected static function getPluginManager(): PluginManager { return new PluginManager(new ServiceManager()); } diff --git a/test/Helper/UrlIntegrationTest.php b/test/Helper/UrlIntegrationTest.php index 865eed7f9..e1bdfdeaa 100644 --- a/test/Helper/UrlIntegrationTest.php +++ b/test/Helper/UrlIntegrationTest.php @@ -39,8 +39,7 @@ protected function setUp(): void $serviceListenerFactory = new ServiceListenerFactory(); $serviceListenerFactoryReflection = new ReflectionObject($serviceListenerFactory); $serviceConfigReflection = $serviceListenerFactoryReflection->getProperty('defaultServiceConfig'); - $serviceConfigReflection->setAccessible(true); - $serviceConfig = $serviceConfigReflection->getValue($serviceListenerFactory); + $serviceConfig = $serviceConfigReflection->getValue($serviceListenerFactory); $this->serviceManager = new ServiceManager(); (new ServiceManagerConfig($serviceConfig))->configureServiceManager($this->serviceManager); diff --git a/test/Helper/UrlTest.php b/test/Helper/UrlTest.php index 2fd92266d..3378b598b 100644 --- a/test/Helper/UrlTest.php +++ b/test/Helper/UrlTest.php @@ -197,9 +197,8 @@ public function testAcceptsNextGenRouterToSetRouter(): void $url = new UrlHelper(); $url->setRouter($router); - $urlReflection = new ReflectionObject($url); - $routerProperty = $urlReflection->getProperty('router'); - $routerProperty->setAccessible(true); + $urlReflection = new ReflectionObject($url); + $routerProperty = $urlReflection->getProperty('router'); $routerPropertyValue = $routerProperty->getValue($url); $this->assertSame($router, $routerPropertyValue); @@ -211,9 +210,8 @@ public function testAcceptsNextGenRouteMatche(): void $url = new UrlHelper(); $url->setRouteMatch($routeMatch); - $routeMatchReflection = new ReflectionObject($url); - $routeMatchProperty = $routeMatchReflection->getProperty('routeMatch'); - $routeMatchProperty->setAccessible(true); + $routeMatchReflection = new ReflectionObject($url); + $routeMatchProperty = $routeMatchReflection->getProperty('routeMatch'); $routeMatchPropertyValue = $routeMatchProperty->getValue($url); $this->assertSame($routeMatch, $routeMatchPropertyValue); diff --git a/test/HelperPluginManagerCompatibilityTest.php b/test/HelperPluginManagerCompatibilityTest.php index 79d6dd694..85ce4f6ae 100644 --- a/test/HelperPluginManagerCompatibilityTest.php +++ b/test/HelperPluginManagerCompatibilityTest.php @@ -23,7 +23,7 @@ class HelperPluginManagerCompatibilityTest extends TestCase { use CommonPluginManagerTrait; - protected function getPluginManager(): HelperPluginManager + protected static function getPluginManager(): HelperPluginManager { $factories = []; @@ -59,8 +59,7 @@ public function aliasProvider(): Generator { $pluginManager = $this->getPluginManager(); $r = new ReflectionProperty($pluginManager, 'aliases'); - $r->setAccessible(true); - $aliases = $r->getValue($pluginManager); + $aliases = $r->getValue($pluginManager); foreach ($aliases as $alias => $target) { // Skipping conditionally since it depends on laminas-mvc diff --git a/test/PhpRendererTest.php b/test/PhpRendererTest.php index a2de21256..9f0fde52c 100644 --- a/test/PhpRendererTest.php +++ b/test/PhpRendererTest.php @@ -466,8 +466,7 @@ public function testDoesNotCallFilterChainIfNoFilterChainWasSet(): void $this->assertStringContainsString('Empty view', $result); $rendererReflection = new ReflectionObject($this->renderer); $method = $rendererReflection->getProperty('__filterChain'); - $method->setAccessible(true); - $filterChain = $method->getValue($this->renderer); + $filterChain = $method->getValue($this->renderer); $this->assertEmpty($filterChain); } From 375dad3c582b62ad7998bf7f7dd2062a53b97d8d Mon Sep 17 00:00:00 2001 From: George Steel Date: Mon, 29 May 2023 10:51:07 +0100 Subject: [PATCH 4/5] Bump dev deps for 8.1 and refresh lock Signed-off-by: George Steel --- composer.json | 10 +++++----- composer.lock | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.json b/composer.json index d694535e6..6b192de79 100644 --- a/composer.json +++ b/composer.json @@ -40,11 +40,11 @@ "laminas/laminas-authentication": "^2.13", "laminas/laminas-coding-standard": "~2.5.0", "laminas/laminas-feed": "^2.20", - "laminas/laminas-filter": "^2.31", + "laminas/laminas-filter": "^2.32", "laminas/laminas-http": "^2.18", - "laminas/laminas-i18n": "^2.21", + "laminas/laminas-i18n": "^2.23", "laminas/laminas-modulemanager": "^2.14", - "laminas/laminas-mvc": "^3.6", + "laminas/laminas-mvc": "^3.6.1", "laminas/laminas-mvc-i18n": "^1.7", "laminas/laminas-mvc-plugin-flashmessenger": "^1.9", "laminas/laminas-navigation": "^2.18.1", @@ -52,9 +52,9 @@ "laminas/laminas-permissions-acl": "^2.14", "laminas/laminas-router": "^3.11.1", "laminas/laminas-uri": "^2.10", - "phpunit/phpunit": "^9.6.3", + "phpunit/phpunit": "^9.6.8", "psalm/plugin-phpunit": "^0.18.4", - "vimeo/psalm": "^5.7.1" + "vimeo/psalm": "^5.12" }, "conflict": { "container-interop/container-interop": "<1.2", diff --git a/composer.lock b/composer.lock index 5930eed74..fa9b56f8a 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": "48efa4a94478314d01d12cf284062b41", + "content-hash": "8196e88e34920255fc335907afd446ce", "packages": [ { "name": "laminas/laminas-escaper", From 2e7b60d5bb42c82043b1a77e8901fdbeef6d56bc Mon Sep 17 00:00:00 2001 From: George Steel Date: Tue, 30 May 2023 11:56:30 +0100 Subject: [PATCH 5/5] Revert potential BC break in protected method Signed-off-by: George Steel --- psalm-baseline.xml | 3 +++ src/Helper/Navigation/AbstractHelper.php | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 2ee875cf3..e94c9d9fe 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -798,11 +798,14 @@ bool + string $label + $message + $message last()]]> diff --git a/src/Helper/Navigation/AbstractHelper.php b/src/Helper/Navigation/AbstractHelper.php index cfc4d446c..68cf5ac0b 100644 --- a/src/Helper/Navigation/AbstractHelper.php +++ b/src/Helper/Navigation/AbstractHelper.php @@ -434,7 +434,7 @@ public function htmlify(AbstractPage $page) protected function translate($message, $textDomain = null) { if (! is_string($message) || empty($message)) { - return ''; + return $message; } if (! $this->isTranslatorEnabled() || ! $this->hasTranslator()) {