diff --git a/.coveralls.yml b/.coveralls.yml deleted file mode 100644 index bc71b62f..00000000 --- a/.coveralls.yml +++ /dev/null @@ -1,2 +0,0 @@ -coverage_clover: clover.xml -json_path: coveralls-upload.json diff --git a/.gitignore b/.gitignore index 0163d3c1..b48ab0d4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,6 @@ /.phpcs-cache /.phpunit.result.cache /.psalm-cache -/clover.xml -/coveralls-upload.json /docs/html/ /laminas-mkdoc-theme.tgz /laminas-mkdoc-theme/ diff --git a/.laminas-ci.json b/.laminas-ci.json index 7a73a41b..6238f6f3 100644 --- a/.laminas-ci.json +++ b/.laminas-ci.json @@ -1,2 +1,6 @@ { -} \ No newline at end of file + "ignore_php_platform_requirements": { + "8.4": true + }, + "backwardCompatibilityCheck": true +} diff --git a/composer.json b/composer.json index 4068c7e0..e5866c70 100644 --- a/composer.json +++ b/composer.json @@ -38,7 +38,7 @@ } }, "require": { - "php": "~8.1.0 || ~8.2.0 || ~8.3.0", + "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0", "ext-dom": "*", "ext-json": "*", "psr/container": "^1.1.2 || ^2.0.2", @@ -49,15 +49,15 @@ "willdurand/negotiation": "^3.0" }, "require-dev": { - "doctrine/orm": "^2.14.1", + "doctrine/orm": "^2.19.8", "laminas/laminas-coding-standard": "~2.5.0", - "laminas/laminas-hydrator": "^4.12", - "laminas/laminas-paginator": "^2.17", - "mezzio/mezzio-helpers": "^5.12", - "phpspec/prophecy-phpunit": "^2.0.1", - "phpunit/phpunit": "^9.5.28", - "psalm/plugin-phpunit": "^0.18.4", - "vimeo/psalm": "^5.18" + "laminas/laminas-hydrator": "^4.15", + "laminas/laminas-paginator": "^2.18.1", + "mezzio/mezzio-helpers": "^5.16", + "phpspec/prophecy-phpunit": "^2.2.0", + "phpunit/phpunit": "^9.6.21", + "psalm/plugin-phpunit": "^0.19.0", + "vimeo/psalm": "^5.26.1" }, "provide": { "psr/link-implementation": "1.0" diff --git a/composer.lock b/composer.lock index de2105f4..1da8a1b9 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": "aa494206308860461861ac5f84187ecd", + "content-hash": "6944b9a6395afd0144bec2ab54512975", "packages": [ { "name": "psr/container", @@ -61,20 +61,20 @@ }, { "name": "psr/http-factory", - "version": "1.0.2", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-factory.git", - "reference": "e616d01114759c4c489f93b099585439f795fe35" + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", - "reference": "e616d01114759c4c489f93b099585439f795fe35", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", "shasum": "" }, "require": { - "php": ">=7.0.0", + "php": ">=7.1", "psr/http-message": "^1.0 || ^2.0" }, "type": "library", @@ -98,7 +98,7 @@ "homepage": "https://www.php-fig.org/" } ], - "description": "Common interfaces for PSR-7 HTTP message factories", + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", "keywords": [ "factory", "http", @@ -110,22 +110,22 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-factory/tree/1.0.2" + "source": "https://github.com/php-fig/http-factory" }, - "time": "2023-04-10T20:10:41+00:00" + "time": "2024-04-15T12:06:14+00:00" }, { "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": { @@ -134,7 +134,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -149,7 +149,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP messages", @@ -163,9 +163,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/link", @@ -338,16 +338,16 @@ "packages-dev": [ { "name": "amphp/amp", - "version": "v2.6.2", + "version": "v2.6.4", "source": { "type": "git", "url": "https://github.com/amphp/amp.git", - "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb" + "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", - "reference": "9d5100cebffa729aaffecd3ad25dc5aeea4f13bb", + "url": "https://api.github.com/repos/amphp/amp/zipball/ded3d9be08f526089eb7ee8d9f16a9768f9dec2d", + "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d", "shasum": "" }, "require": { @@ -359,8 +359,8 @@ "ext-json": "*", "jetbrains/phpstorm-stubs": "^2019.3", "phpunit/phpunit": "^7 | ^8 | ^9", - "psalm/phar": "^3.11@dev", - "react/promise": "^2" + "react/promise": "^2", + "vimeo/psalm": "^3.12" }, "type": "library", "extra": { @@ -415,7 +415,7 @@ "support": { "irc": "irc://irc.freenode.org/amphp", "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v2.6.2" + "source": "https://github.com/amphp/amp/tree/v2.6.4" }, "funding": [ { @@ -423,20 +423,20 @@ "type": "github" } ], - "time": "2022-02-20T17:52:18+00:00" + "time": "2024-03-21T18:52:26+00:00" }, { "name": "amphp/byte-stream", - "version": "v1.8.1", + "version": "v1.8.2", "source": { "type": "git", "url": "https://github.com/amphp/byte-stream.git", - "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd" + "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/byte-stream/zipball/acbd8002b3536485c997c4e019206b3f10ca15bd", - "reference": "acbd8002b3536485c997c4e019206b3f10ca15bd", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/4f0e968ba3798a423730f567b1b50d3441c16ddc", + "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc", "shasum": "" }, "require": { @@ -452,11 +452,6 @@ "psalm/phar": "^3.11.4" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, "autoload": { "files": [ "lib/functions.php" @@ -480,7 +475,7 @@ } ], "description": "A stream abstraction to make working with non-blocking I/O simple.", - "homepage": "http://amphp.org/byte-stream", + "homepage": "https://amphp.org/byte-stream", "keywords": [ "amp", "amphp", @@ -490,9 +485,8 @@ "stream" ], "support": { - "irc": "irc://irc.freenode.org/amphp", "issues": "https://github.com/amphp/byte-stream/issues", - "source": "https://github.com/amphp/byte-stream/tree/v1.8.1" + "source": "https://github.com/amphp/byte-stream/tree/v1.8.2" }, "funding": [ { @@ -500,7 +494,7 @@ "type": "github" } ], - "time": "2021-03-30T17:13:30+00:00" + "time": "2024-04-13T18:00:56+00:00" }, { "name": "composer/package-versions-deprecated", @@ -577,30 +571,38 @@ }, { "name": "composer/pcre", - "version": "3.1.1", + "version": "3.3.1", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "url": "https://api.github.com/repos/composer/pcre/zipball/63aaeac21d7e775ff9bc9d45021e1745c97521c4", + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4", "shasum": "" }, "require": { "php": "^7.4 || ^8.0" }, + "conflict": { + "phpstan/phpstan": "<1.11.10" + }, "require-dev": { - "phpstan/phpstan": "^1.3", + "phpstan/phpstan": "^1.11.10", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^5" + "phpunit/phpunit": "^8 || ^9" }, "type": "library", "extra": { "branch-alias": { "dev-main": "3.x-dev" + }, + "phpstan": { + "includes": [ + "extension.neon" + ] } }, "autoload": { @@ -628,7 +630,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.1" + "source": "https://github.com/composer/pcre/tree/3.3.1" }, "funding": [ { @@ -644,28 +646,28 @@ "type": "tidelift" } ], - "time": "2023-10-11T07:11:09+00:00" + "time": "2024-08-27T18:44:43+00:00" }, { "name": "composer/semver", - "version": "3.4.0", + "version": "3.4.3", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", + "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^1.4", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" }, "type": "library", "extra": { @@ -709,7 +711,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.0" + "source": "https://github.com/composer/semver/tree/3.4.3" }, "funding": [ { @@ -725,20 +727,20 @@ "type": "tidelift" } ], - "time": "2023-08-31T09:50:34+00:00" + "time": "2024-09-19T14:15:21+00:00" }, { "name": "composer/xdebug-handler", - "version": "3.0.3", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", "shasum": "" }, "require": { @@ -749,7 +751,7 @@ "require-dev": { "phpstan/phpstan": "^1.0", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" }, "type": "library", "autoload": { @@ -773,9 +775,9 @@ "performance" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" }, "funding": [ { @@ -791,7 +793,7 @@ "type": "tidelift" } ], - "time": "2022-02-25T21:32:43+00:00" + "time": "2024-05-06T16:37:16+00:00" }, { "name": "dealerdirect/phpcodesniffer-composer-installer", @@ -1000,32 +1002,34 @@ }, { "name": "doctrine/collections", - "version": "1.8.0", + "version": "2.2.2", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e" + "reference": "d8af7f248c74f195f7347424600fd9e17b57af59" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/2b44dd4cbca8b5744327de78bafef5945c7e7b5e", - "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e", + "url": "https://api.github.com/repos/doctrine/collections/zipball/d8af7f248c74f195f7347424600fd9e17b57af59", + "reference": "d8af7f248c74f195f7347424600fd9e17b57af59", "shasum": "" }, "require": { - "doctrine/deprecations": "^0.5.3 || ^1", - "php": "^7.1.3 || ^8.0" + "doctrine/deprecations": "^1", + "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^9.0 || ^10.0", - "phpstan/phpstan": "^1.4.8", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5", - "vimeo/psalm": "^4.22" + "doctrine/coding-standard": "^12", + "ext-json": "*", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^10.5", + "vimeo/psalm": "^5.11" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" + "Doctrine\\Common\\Collections\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1064,22 +1068,36 @@ ], "support": { "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/1.8.0" + "source": "https://github.com/doctrine/collections/tree/2.2.2" }, - "time": "2022-09-01T20:12:10+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcollections", + "type": "tidelift" + } + ], + "time": "2024-04-18T06:56:21+00:00" }, { "name": "doctrine/common", - "version": "3.4.3", + "version": "3.4.5", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced" + "reference": "6c8fef961f67b8bc802ce3e32e3ebd1022907286" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/8b5e5650391f851ed58910b3e3d48a71062eeced", - "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced", + "url": "https://api.github.com/repos/doctrine/common/zipball/6c8fef961f67b8bc802ce3e32e3ebd1022907286", + "reference": "6c8fef961f67b8bc802ce3e32e3ebd1022907286", "shasum": "" }, "require": { @@ -1141,7 +1159,7 @@ ], "support": { "issues": "https://github.com/doctrine/common/issues", - "source": "https://github.com/doctrine/common/tree/3.4.3" + "source": "https://github.com/doctrine/common/tree/3.4.5" }, "funding": [ { @@ -1157,20 +1175,20 @@ "type": "tidelift" } ], - "time": "2022-10-09T11:47:59+00:00" + "time": "2024-10-08T15:53:43+00:00" }, { "name": "doctrine/dbal", - "version": "3.7.2", + "version": "3.9.3", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "0ac3c270590e54910715e9a1a044cc368df282b2" + "reference": "61446f07fcb522414d6cfd8b1c3e5f9e18c579ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/0ac3c270590e54910715e9a1a044cc368df282b2", - "reference": "0ac3c270590e54910715e9a1a044cc368df282b2", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/61446f07fcb522414d6cfd8b1c3e5f9e18c579ba", + "reference": "61446f07fcb522414d6cfd8b1c3e5f9e18c579ba", "shasum": "" }, "require": { @@ -1186,14 +1204,14 @@ "doctrine/coding-standard": "12.0.0", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "1.10.42", - "phpstan/phpstan-strict-rules": "^1.5", - "phpunit/phpunit": "9.6.13", + "phpstan/phpstan": "1.12.6", + "phpstan/phpstan-strict-rules": "^1.6", + "phpunit/phpunit": "9.6.20", "psalm/plugin-phpunit": "0.18.4", "slevomat/coding-standard": "8.13.1", - "squizlabs/php_codesniffer": "3.7.2", - "symfony/cache": "^5.4|^6.0", - "symfony/console": "^4.4|^5.4|^6.0", + "squizlabs/php_codesniffer": "3.10.2", + "symfony/cache": "^5.4|^6.0|^7.0", + "symfony/console": "^4.4|^5.4|^6.0|^7.0", "vimeo/psalm": "4.30.0" }, "suggest": { @@ -1254,7 +1272,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.7.2" + "source": "https://github.com/doctrine/dbal/tree/3.9.3" }, "funding": [ { @@ -1270,20 +1288,20 @@ "type": "tidelift" } ], - "time": "2023-11-19T08:06:58+00:00" + "time": "2024-10-10T17:56:43+00:00" }, { "name": "doctrine/deprecations", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", - "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", "shasum": "" }, "require": { @@ -1315,36 +1333,35 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.2" + "source": "https://github.com/doctrine/deprecations/tree/1.1.3" }, - "time": "2023-09-27T20:04:15+00:00" + "time": "2024-01-30T19:34:25+00:00" }, { "name": "doctrine/event-manager", - "version": "1.2.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/doctrine/event-manager.git", - "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520" + "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520", - "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/b680156fa328f1dfd874fd48c7026c41570b9c6e", + "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e", "shasum": "" }, "require": { - "doctrine/deprecations": "^0.5.3 || ^1", - "php": "^7.1 || ^8.0" + "php": "^8.1" }, "conflict": { "doctrine/common": "<2.9" }, "require-dev": { - "doctrine/coding-standard": "^9 || ^10", - "phpstan/phpstan": "~1.4.10 || ^1.8.8", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.24" + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.8.8", + "phpunit/phpunit": "^10.5", + "vimeo/psalm": "^5.24" }, "type": "library", "autoload": { @@ -1393,7 +1410,7 @@ ], "support": { "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/1.2.0" + "source": "https://github.com/doctrine/event-manager/tree/2.0.1" }, "funding": [ { @@ -1409,20 +1426,20 @@ "type": "tidelift" } ], - "time": "2022-10-12T20:51:15+00:00" + "time": "2024-05-22T20:47:39+00:00" }, { "name": "doctrine/inflector", - "version": "2.0.8", + "version": "2.0.10", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff" + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/f9301a5b2fb1216b2b08f02ba04dc45423db6bff", - "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc", + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc", "shasum": "" }, "require": { @@ -1484,7 +1501,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.8" + "source": "https://github.com/doctrine/inflector/tree/2.0.10" }, "funding": [ { @@ -1500,34 +1517,34 @@ "type": "tidelift" } ], - "time": "2023-06-16T13:40:37+00:00" + "time": "2024-02-18T20:23:39+00:00" }, { "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": { @@ -1554,7 +1571,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": [ { @@ -1570,32 +1587,31 @@ "type": "tidelift" } ], - "time": "2022-12-30T00:15:36+00:00" + "time": "2022-12-30T00:23:10+00:00" }, { "name": "doctrine/lexer", - "version": "2.1.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124" + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/39ab8fcf5a51ce4b85ca97c7a7d033eb12831124", - "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", "shasum": "" }, "require": { - "doctrine/deprecations": "^1.0", - "php": "^7.1 || ^8.0" + "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^9 || ^10", - "phpstan/phpstan": "^1.3", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5", "psalm/plugin-phpunit": "^0.18.3", - "vimeo/psalm": "^4.11 || ^5.0" + "vimeo/psalm": "^5.21" }, "type": "library", "autoload": { @@ -1632,7 +1648,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/2.1.0" + "source": "https://github.com/doctrine/lexer/tree/3.0.1" }, "funding": [ { @@ -1648,20 +1664,20 @@ "type": "tidelift" } ], - "time": "2022-12-14T08:49:07+00:00" + "time": "2024-02-05T11:56:58+00:00" }, { "name": "doctrine/orm", - "version": "2.17.2", + "version": "2.19.8", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "393679a4795e49b0b3ac317dce84d0f8888f2b77" + "reference": "c2c500077b1ec9d0a829fdf7c8d18e448b501605" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/393679a4795e49b0b3ac317dce84d0f8888f2b77", - "reference": "393679a4795e49b0b3ac317dce84d0f8888f2b77", + "url": "https://api.github.com/repos/doctrine/orm/zipball/c2c500077b1ec9d0a829fdf7c8d18e448b501605", + "reference": "c2c500077b1ec9d0a829fdf7c8d18e448b501605", "shasum": "" }, "require": { @@ -1674,7 +1690,7 @@ "doctrine/event-manager": "^1.2 || ^2", "doctrine/inflector": "^1.4 || ^2.0", "doctrine/instantiator": "^1.3 || ^2", - "doctrine/lexer": "^2", + "doctrine/lexer": "^2 || ^3", "doctrine/persistence": "^2.4 || ^3", "ext-ctype": "*", "php": "^7.1 || ^8.0", @@ -1690,14 +1706,14 @@ "doctrine/annotations": "^1.13 || ^2", "doctrine/coding-standard": "^9.0.2 || ^12.0", "phpbench/phpbench": "^0.16.10 || ^1.0", - "phpstan/phpstan": "~1.4.10 || 1.10.35", + "phpstan/phpstan": "~1.4.10 || 1.12.6", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6", "psr/log": "^1 || ^2 || ^3", "squizlabs/php_codesniffer": "3.7.2", "symfony/cache": "^4.4 || ^5.4 || ^6.4 || ^7.0", "symfony/var-exporter": "^4.4 || ^5.4 || ^6.2 || ^7.0", "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0 || ^7.0", - "vimeo/psalm": "4.30.0 || 5.16.0" + "vimeo/psalm": "4.30.0 || 5.24.0" }, "suggest": { "ext-dom": "Provides support for XSD validation for XML mapping files", @@ -1710,7 +1726,7 @@ "type": "library", "autoload": { "psr-4": { - "Doctrine\\ORM\\": "lib/Doctrine/ORM" + "Doctrine\\ORM\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1747,22 +1763,22 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.17.2" + "source": "https://github.com/doctrine/orm/tree/2.19.8" }, - "time": "2023-12-20T21:47:52+00:00" + "time": "2024-10-10T09:46:49+00:00" }, { "name": "doctrine/persistence", - "version": "3.2.0", + "version": "3.3.3", "source": { "type": "git", "url": "https://github.com/doctrine/persistence.git", - "reference": "63fee8c33bef740db6730eb2a750cd3da6495603" + "reference": "b337726451f5d530df338fc7f68dee8781b49779" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/63fee8c33bef740db6730eb2a750cd3da6495603", - "reference": "63fee8c33bef740db6730eb2a750cd3da6495603", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/b337726451f5d530df338fc7f68dee8781b49779", + "reference": "b337726451f5d530df338fc7f68dee8781b49779", "shasum": "" }, "require": { @@ -1774,15 +1790,14 @@ "doctrine/common": "<2.10" }, "require-dev": { - "composer/package-versions-deprecated": "^1.11", - "doctrine/coding-standard": "^11", + "doctrine/coding-standard": "^12", "doctrine/common": "^3.0", - "phpstan/phpstan": "1.9.4", + "phpstan/phpstan": "1.11.1", "phpstan/phpstan-phpunit": "^1", "phpstan/phpstan-strict-rules": "^1.1", "phpunit/phpunit": "^8.5 || ^9.5", "symfony/cache": "^4.4 || ^5.4 || ^6.0", - "vimeo/psalm": "4.30.0 || 5.3.0" + "vimeo/psalm": "4.30.0 || 5.24.0" }, "type": "library", "autoload": { @@ -1831,7 +1846,7 @@ ], "support": { "issues": "https://github.com/doctrine/persistence/issues", - "source": "https://github.com/doctrine/persistence/tree/3.2.0" + "source": "https://github.com/doctrine/persistence/tree/3.3.3" }, "funding": [ { @@ -1847,7 +1862,7 @@ "type": "tidelift" } ], - "time": "2023-05-17T18:32:04+00:00" + "time": "2024-06-20T10:14:30+00:00" }, { "name": "felixfbecker/advanced-json-rpc", @@ -1896,16 +1911,16 @@ }, { "name": "felixfbecker/language-server-protocol", - "version": "v1.5.2", + "version": "v1.5.3", "source": { "type": "git", "url": "https://github.com/felixfbecker/php-language-server-protocol.git", - "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842" + "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842", - "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/a9e113dbc7d849e35b8776da39edaf4313b7b6c9", + "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9", "shasum": "" }, "require": { @@ -1946,22 +1961,22 @@ ], "support": { "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", - "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2" + "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.3" }, - "time": "2022-03-02T22:36:06+00:00" + "time": "2024-04-30T00:40:11+00:00" }, { "name": "fidry/cpu-core-counter", - "version": "1.0.0", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/theofidry/cpu-core-counter.git", - "reference": "85193c0b0cb5c47894b5eaec906e946f054e7077" + "reference": "8520451a140d3f46ac33042715115e290cf5785f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/85193c0b0cb5c47894b5eaec906e946f054e7077", - "reference": "85193c0b0cb5c47894b5eaec906e946f054e7077", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f", + "reference": "8520451a140d3f46ac33042715115e290cf5785f", "shasum": "" }, "require": { @@ -2001,7 +2016,7 @@ ], "support": { "issues": "https://github.com/theofidry/cpu-core-counter/issues", - "source": "https://github.com/theofidry/cpu-core-counter/tree/1.0.0" + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0" }, "funding": [ { @@ -2009,7 +2024,7 @@ "type": "github" } ], - "time": "2023-09-17T21:38:23+00:00" + "time": "2024-08-06T10:04:20+00:00" }, { "name": "fig/http-message-util", @@ -2125,21 +2140,21 @@ }, { "name": "laminas/laminas-hydrator", - "version": "4.13.0", + "version": "4.15.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-hydrator.git", - "reference": "de6da92da20873d569532adec94afa7285f21157" + "reference": "43ccca88313fdcceca37865109dffc69ecd2cf8f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-hydrator/zipball/de6da92da20873d569532adec94afa7285f21157", - "reference": "de6da92da20873d569532adec94afa7285f21157", + "url": "https://api.github.com/repos/laminas/laminas-hydrator/zipball/43ccca88313fdcceca37865109dffc69ecd2cf8f", + "reference": "43ccca88313fdcceca37865109dffc69ecd2cf8f", "shasum": "" }, "require": { "laminas/laminas-stdlib": "^3.3", - "php": "~8.0.0 || ~8.1.0 || ~8.2.0", + "php": "~8.1.0 || ~8.2.0 || ~8.3.0", "webmozart/assert": "^1.10" }, "conflict": { @@ -2148,14 +2163,14 @@ }, "require-dev": { "laminas/laminas-coding-standard": "~2.5.0", - "laminas/laminas-eventmanager": "^3.10", - "laminas/laminas-modulemanager": "^2.14.0", - "laminas/laminas-serializer": "^2.14.0", - "laminas/laminas-servicemanager": "^3.20", - "phpbench/phpbench": "^1.2.8", - "phpunit/phpunit": "^9.5.28", + "laminas/laminas-eventmanager": "^3.12", + "laminas/laminas-modulemanager": "^2.15.0", + "laminas/laminas-serializer": "^2.17.0", + "laminas/laminas-servicemanager": "^3.22.1", + "phpbench/phpbench": "^1.2.14", + "phpunit/phpunit": "^10.4.2", "psalm/plugin-phpunit": "^0.18.4", - "vimeo/psalm": "^5.6" + "vimeo/psalm": "^5.15" }, "suggest": { "laminas/laminas-eventmanager": "^3.2, to support aggregate hydrator usage", @@ -2198,41 +2213,41 @@ "type": "community_bridge" } ], - "time": "2023-03-19T20:05:31+00:00" + "time": "2023-11-08T11:11:45+00:00" }, { "name": "laminas/laminas-paginator", - "version": "2.17.0", + "version": "2.18.1", "source": { "type": "git", "url": "https://github.com/laminas/laminas-paginator.git", - "reference": "d0fca60a32656fe095045d76af7ad3a3bfc297f9" + "reference": "6a03499a899fb8ba650594ddf4b4338d4235252a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-paginator/zipball/d0fca60a32656fe095045d76af7ad3a3bfc297f9", - "reference": "d0fca60a32656fe095045d76af7ad3a3bfc297f9", + "url": "https://api.github.com/repos/laminas/laminas-paginator/zipball/6a03499a899fb8ba650594ddf4b4338d4235252a", + "reference": "6a03499a899fb8ba650594ddf4b4338d4235252a", "shasum": "" }, "require": { "ext-json": "*", "laminas/laminas-stdlib": "^3.10.1", - "php": "~8.0.0 || ~8.1.0 || ~8.2.0" + "php": "~8.1.0 || ~8.2.0 || ~8.3.0" }, "conflict": { "zendframework/zend-paginator": "*" }, "require-dev": { - "laminas/laminas-cache": "^3.6.0", + "laminas/laminas-cache": "^3.9", "laminas/laminas-cache-storage-adapter-memory": "^2.2.0", "laminas/laminas-coding-standard": "^2.4.0", "laminas/laminas-config": "^3.8.0", - "laminas/laminas-filter": "^2.23.0", - "laminas/laminas-servicemanager": "^3.19.0", - "laminas/laminas-view": "^2.24.0", - "phpunit/phpunit": "^9.5.25", - "psalm/plugin-phpunit": "^0.18.0", - "vimeo/psalm": "^5.0.0" + "laminas/laminas-filter": "^2.30", + "laminas/laminas-servicemanager": "^3.22", + "laminas/laminas-view": "^2.25", + "phpunit/phpunit": "^9.5.27", + "psalm/plugin-phpunit": "^0.18.4", + "vimeo/psalm": "^5.4" }, "suggest": { "laminas/laminas-cache": "Laminas\\Cache component to support cache features", @@ -2277,34 +2292,34 @@ "type": "community_bridge" } ], - "time": "2022-12-05T16:02:38+00:00" + "time": "2024-01-11T11:00:36+00:00" }, { "name": "laminas/laminas-stdlib", - "version": "3.16.1", + "version": "3.19.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-stdlib.git", - "reference": "f4f773641807c7ccee59b758bfe4ac4ba33ecb17" + "reference": "6a192dd0882b514e45506f533b833b623b78fff3" }, "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/6a192dd0882b514e45506f533b833b623b78fff3", + "reference": "6a192dd0882b514e45506f533b833b623b78fff3", "shasum": "" }, "require": { - "php": "~8.0.0 || ~8.1.0 || ~8.2.0" + "php": "~8.1.0 || ~8.2.0 || ~8.3.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.15", + "phpunit/phpunit": "^10.5.8", + "psalm/plugin-phpunit": "^0.18.4", + "vimeo/psalm": "^5.20.0" }, "type": "library", "autoload": { @@ -2336,27 +2351,27 @@ "type": "community_bridge" } ], - "time": "2022-12-03T18:48:01+00:00" + "time": "2024-01-19T12:39:49+00:00" }, { "name": "mezzio/mezzio-helpers", - "version": "5.13.1", + "version": "5.16.0", "source": { "type": "git", "url": "https://github.com/mezzio/mezzio-helpers.git", - "reference": "b2489bb73f531eb32224bb8687858cb9445d8791" + "reference": "39ede1ba9ac6398d535339c1fbabcd6e40a55110" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mezzio/mezzio-helpers/zipball/b2489bb73f531eb32224bb8687858cb9445d8791", - "reference": "b2489bb73f531eb32224bb8687858cb9445d8791", + "url": "https://api.github.com/repos/mezzio/mezzio-helpers/zipball/39ede1ba9ac6398d535339c1fbabcd6e40a55110", + "reference": "39ede1ba9ac6398d535339c1fbabcd6e40a55110", "shasum": "" }, "require": { "mezzio/mezzio-router": "^3.0", - "php": "~8.0.0 || ~8.1.0 || ~8.2.0", + "php": "~8.1.0 || ~8.2.0 || ~8.3.0", "psr/container": "^1.0 || ^2.0", - "psr/http-message": "^1.0.1", + "psr/http-message": "^1.0.1 || ^2.0.0", "psr/http-server-middleware": "^1.0" }, "conflict": { @@ -2365,10 +2380,10 @@ "require-dev": { "ext-json": "*", "laminas/laminas-coding-standard": "~2.5.0", - "laminas/laminas-diactoros": "^2.19", - "phpunit/phpunit": "^9.5.25", - "psalm/plugin-phpunit": "^0.18.0", - "vimeo/psalm": "^5.0" + "laminas/laminas-diactoros": "^3.3", + "phpunit/phpunit": "^10.4.2", + "psalm/plugin-phpunit": "^0.18.4", + "vimeo/psalm": "^5.15" }, "suggest": { "ext-json": "If you wish to use the JsonStrategy with BodyParamsMiddleware" @@ -2412,30 +2427,30 @@ "type": "community_bridge" } ], - "time": "2023-03-14T10:49:28+00:00" + "time": "2023-11-01T11:19:55+00:00" }, { "name": "mezzio/mezzio-router", - "version": "3.13.0", + "version": "3.17.0", "source": { "type": "git", "url": "https://github.com/mezzio/mezzio-router.git", - "reference": "cb9e2476844074587e1ed849f53ef466a7e8d893" + "reference": "78573e16144a70ccf02039e1a2600788119c0dbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mezzio/mezzio-router/zipball/cb9e2476844074587e1ed849f53ef466a7e8d893", - "reference": "cb9e2476844074587e1ed849f53ef466a7e8d893", + "url": "https://api.github.com/repos/mezzio/mezzio-router/zipball/78573e16144a70ccf02039e1a2600788119c0dbb", + "reference": "78573e16144a70ccf02039e1a2600788119c0dbb", "shasum": "" }, "require": { - "fig/http-message-util": "^1.1.2", - "php": "~8.0.0 || ~8.1.0 || ~8.2.0", - "psr/container": "^1.0 || ^2.0", - "psr/http-factory": "^1.0", - "psr/http-message": "^1.0.1", - "psr/http-server-middleware": "^1.0", - "webmozart/assert": "^1.10" + "fig/http-message-util": "^1.1.5", + "php": "~8.1.0 || ~8.2.0 || ~8.3.0", + "psr/container": "^1.1.2 || ^2.0", + "psr/http-factory": "^1.0.2", + "psr/http-message": "^1.0.1 || ^2.0.0", + "psr/http-server-middleware": "^1.0.2", + "webmozart/assert": "^1.11" }, "conflict": { "mezzio/mezzio": "<3.5", @@ -2443,11 +2458,12 @@ }, "require-dev": { "laminas/laminas-coding-standard": "~2.5.0", - "laminas/laminas-diactoros": "^2.24", - "laminas/laminas-stratigility": "^3.9.0", - "phpunit/phpunit": "^9.5.27", + "laminas/laminas-diactoros": "^3.3.0", + "laminas/laminas-servicemanager": "^3.22.1", + "laminas/laminas-stratigility": "^3.11.0", + "phpunit/phpunit": "^10.4.2", "psalm/plugin-phpunit": "^0.18.4", - "vimeo/psalm": "^5.4" + "vimeo/psalm": "^5.15" }, "suggest": { "mezzio/mezzio-aurarouter": "^3.0 to use the Aura.Router routing adapter", @@ -2493,20 +2509,20 @@ "type": "community_bridge" } ], - "time": "2023-01-15T08:25:11+00:00" + "time": "2023-10-31T17:23:17+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.11.1", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", "shasum": "" }, "require": { @@ -2514,11 +2530,12 @@ }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "require-dev": { "doctrine/collections": "^1.6.8", "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", @@ -2544,7 +2561,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" }, "funding": [ { @@ -2552,20 +2569,20 @@ "type": "tidelift" } ], - "time": "2023-03-08T13:26:56+00:00" + "time": "2024-06-12T14:39:25+00:00" }, { "name": "netresearch/jsonmapper", - "version": "v4.2.0", + "version": "v4.5.0", "source": { "type": "git", "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "f60565f8c0566a31acf06884cdaa591867ecc956" + "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/f60565f8c0566a31acf06884cdaa591867ecc956", - "reference": "f60565f8c0566a31acf06884cdaa591867ecc956", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8e76efb98ee8b6afc54687045e1b8dba55ac76e5", + "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5", "shasum": "" }, "require": { @@ -2576,7 +2593,7 @@ "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0", + "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0", "squizlabs/php_codesniffer": "~3.5" }, "type": "library", @@ -2601,31 +2618,31 @@ "support": { "email": "cweiske@cweiske.de", "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v4.2.0" + "source": "https://github.com/cweiske/jsonmapper/tree/v4.5.0" }, - "time": "2023-04-09T17:37:40+00:00" + "time": "2024-09-08T10:13:13+00:00" }, { "name": "nikic/php-parser", - "version": "v4.18.0", + "version": "v4.19.4", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999" + "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999", - "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/715f4d25e225bc47b293a8b997fe6ce99bf987d2", + "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.1" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "bin": [ "bin/php-parse" @@ -2657,26 +2674,27 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.4" }, - "time": "2023-12-10T21:03:43+00:00" + "time": "2024-09-29T15:01:53+00:00" }, { "name": "phar-io/manifest", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "reference": "54750ef60c58e43759730615a392c31c80e23176" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-phar": "*", "ext-xmlwriter": "*", "phar-io/version": "^3.0.1", @@ -2717,9 +2735,15 @@ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" + "source": "https://github.com/phar-io/manifest/tree/2.0.4" }, - "time": "2021-07-20T11:28:43+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" }, { "name": "phar-io/version", @@ -2939,24 +2963,24 @@ }, { "name": "phpspec/prophecy", - "version": "v1.18.0", + "version": "v1.19.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "d4f454f7e1193933f04e6500de3e79191648ed0c" + "reference": "67a759e7d8746d501c41536ba40cd9c0a07d6a87" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/d4f454f7e1193933f04e6500de3e79191648ed0c", - "reference": "d4f454f7e1193933f04e6500de3e79191648ed0c", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/67a759e7d8746d501c41536ba40cd9c0a07d6a87", + "reference": "67a759e7d8746d501c41536ba40cd9c0a07d6a87", "shasum": "" }, "require": { "doctrine/instantiator": "^1.2 || ^2.0", "php": "^7.2 || 8.0.* || 8.1.* || 8.2.* || 8.3.*", "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0 || ^5.0", - "sebastian/recursion-context": "^3.0 || ^4.0 || ^5.0" + "sebastian/comparator": "^3.0 || ^4.0 || ^5.0 || ^6.0", + "sebastian/recursion-context": "^3.0 || ^4.0 || ^5.0 || ^6.0" }, "require-dev": { "phpspec/phpspec": "^6.0 || ^7.0", @@ -3002,33 +3026,33 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/v1.18.0" + "source": "https://github.com/phpspec/prophecy/tree/v1.19.0" }, - "time": "2023-12-07T16:22:33+00:00" + "time": "2024-02-29T11:52:51+00:00" }, { "name": "phpspec/prophecy-phpunit", - "version": "v2.1.0", + "version": "v2.2.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy-phpunit.git", - "reference": "29f8114c2c319a4308e6b070902211e062efa392" + "reference": "16e1247e139434bce0bac09848bc5c8d882940fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy-phpunit/zipball/29f8114c2c319a4308e6b070902211e062efa392", - "reference": "29f8114c2c319a4308e6b070902211e062efa392", + "url": "https://api.github.com/repos/phpspec/prophecy-phpunit/zipball/16e1247e139434bce0bac09848bc5c8d882940fc", + "reference": "16e1247e139434bce0bac09848bc5c8d882940fc", "shasum": "" }, "require": { "php": "^7.3 || ^8", "phpspec/prophecy": "^1.18", - "phpunit/phpunit": "^9.1 || ^10.1" + "phpunit/phpunit": "^9.1 || ^10.1 || ^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "2.x-dev" } }, "autoload": { @@ -3054,9 +3078,9 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy-phpunit/issues", - "source": "https://github.com/phpspec/prophecy-phpunit/tree/v2.1.0" + "source": "https://github.com/phpspec/prophecy-phpunit/tree/v2.2.0" }, - "time": "2023-12-08T12:48:02+00:00" + "time": "2024-03-01T08:33:58+00:00" }, { "name": "phpstan/phpdoc-parser", @@ -3104,35 +3128,35 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.30", + "version": "9.2.32", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089" + "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ca2bd87d2f9215904682a9cb9bb37dda98e76089", - "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5", + "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.18 || ^5.0", + "nikic/php-parser": "^4.19.1 || ^5.1.0", "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" + "phpunit/php-file-iterator": "^3.0.6", + "phpunit/php-text-template": "^2.0.4", + "sebastian/code-unit-reverse-lookup": "^2.0.3", + "sebastian/complexity": "^2.0.3", + "sebastian/environment": "^5.1.5", + "sebastian/lines-of-code": "^1.0.4", + "sebastian/version": "^3.0.2", + "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^9.6" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -3141,7 +3165,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.2-dev" + "dev-main": "9.2.x-dev" } }, "autoload": { @@ -3170,7 +3194,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.30" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32" }, "funding": [ { @@ -3178,7 +3202,7 @@ "type": "github" } ], - "time": "2023-12-22T06:47:57+00:00" + "time": "2024-08-22T04:23:01+00:00" }, { "name": "phpunit/php-file-iterator", @@ -3423,45 +3447,45 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.15", + "version": "9.6.21", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "05017b80304e0eb3f31d90194a563fd53a6021f1" + "reference": "de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/05017b80304e0eb3f31d90194a563fd53a6021f1", - "reference": "05017b80304e0eb3f31d90194a563fd53a6021f1", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa", + "reference": "de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1 || ^2", + "doctrine/instantiator": "^1.5.0 || ^2", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", + "myclabs/deep-copy": "^1.12.0", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.28", - "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-code-coverage": "^9.2.32", + "phpunit/php-file-iterator": "^3.0.6", "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", + "phpunit/php-text-template": "^2.0.4", + "phpunit/php-timer": "^5.0.3", + "sebastian/cli-parser": "^1.0.2", + "sebastian/code-unit": "^1.0.8", "sebastian/comparator": "^4.0.8", - "sebastian/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.5", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.2", + "sebastian/diff": "^4.0.6", + "sebastian/environment": "^5.1.5", + "sebastian/exporter": "^4.0.6", + "sebastian/global-state": "^5.0.7", + "sebastian/object-enumerator": "^4.0.4", + "sebastian/resource-operations": "^3.0.4", + "sebastian/type": "^3.2.1", "sebastian/version": "^3.0.2" }, "suggest": { @@ -3506,7 +3530,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.15" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.21" }, "funding": [ { @@ -3522,28 +3546,28 @@ "type": "tidelift" } ], - "time": "2023-12-01T16:55:19+00:00" + "time": "2024-09-19T10:50:18+00:00" }, { "name": "psalm/plugin-phpunit", - "version": "0.18.4", + "version": "0.19.0", "source": { "type": "git", "url": "https://github.com/psalm/psalm-plugin-phpunit.git", - "reference": "e4ab3096653d9eb6f6d0ea5f4461898d59ae4dbc" + "reference": "e344eaaa27871e79c6cb97b9efe52a735f9d1966" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/e4ab3096653d9eb6f6d0ea5f4461898d59ae4dbc", - "reference": "e4ab3096653d9eb6f6d0ea5f4461898d59ae4dbc", + "url": "https://api.github.com/repos/psalm/psalm-plugin-phpunit/zipball/e344eaaa27871e79c6cb97b9efe52a735f9d1966", + "reference": "e344eaaa27871e79c6cb97b9efe52a735f9d1966", "shasum": "" }, "require": { "composer/package-versions-deprecated": "^1.10", "composer/semver": "^1.4 || ^2.0 || ^3.0", "ext-simplexml": "*", - "php": "^7.1 || ^8.0", - "vimeo/psalm": "dev-master || dev-4.x || ^4.7.1 || ^5@beta || ^5.0" + "php": "^7.4 || ^8.0", + "vimeo/psalm": "dev-master || ^5@beta || ^5.0" }, "conflict": { "phpunit/phpunit": "<7.5" @@ -3580,9 +3604,9 @@ "description": "Psalm plugin for PHPUnit", "support": { "issues": "https://github.com/psalm/psalm-plugin-phpunit/issues", - "source": "https://github.com/psalm/psalm-plugin-phpunit/tree/0.18.4" + "source": "https://github.com/psalm/psalm-plugin-phpunit/tree/0.19.0" }, - "time": "2022-12-03T07:47:07+00:00" + "time": "2024-03-15T10:43:15+00:00" }, { "name": "psr/cache", @@ -3748,16 +3772,16 @@ }, { "name": "psr/log", - "version": "3.0.0", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", "shasum": "" }, "require": { @@ -3792,22 +3816,22 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/3.0.0" + "source": "https://github.com/php-fig/log/tree/3.0.2" }, - "time": "2021-07-14T16:46:02+00:00" + "time": "2024-09-11T13:17:53+00:00" }, { "name": "sebastian/cli-parser", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b", + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b", "shasum": "" }, "require": { @@ -3842,7 +3866,7 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2" }, "funding": [ { @@ -3850,7 +3874,7 @@ "type": "github" } ], - "time": "2020-09-28T06:08:49+00:00" + "time": "2024-03-02T06:27:43+00:00" }, { "name": "sebastian/code-unit", @@ -4096,16 +4120,16 @@ }, { "name": "sebastian/diff", - "version": "4.0.5", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc", + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc", "shasum": "" }, "require": { @@ -4150,7 +4174,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6" }, "funding": [ { @@ -4158,7 +4182,7 @@ "type": "github" } ], - "time": "2023-05-07T05:35:17+00:00" + "time": "2024-03-02T06:30:58+00:00" }, { "name": "sebastian/environment", @@ -4225,16 +4249,16 @@ }, { "name": "sebastian/exporter", - "version": "4.0.5", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72", + "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72", "shasum": "" }, "require": { @@ -4290,7 +4314,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6" }, "funding": [ { @@ -4298,20 +4322,20 @@ "type": "github" } ], - "time": "2022-09-14T06:03:37+00:00" + "time": "2024-03-02T06:33:00+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.6", + "version": "5.0.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bde739e7565280bda77be70044ac1047bc007e34" + "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", - "reference": "bde739e7565280bda77be70044ac1047bc007e34", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", + "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", "shasum": "" }, "require": { @@ -4354,7 +4378,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7" }, "funding": [ { @@ -4362,7 +4386,7 @@ "type": "github" } ], - "time": "2023-08-02T09:26:13+00:00" + "time": "2024-03-02T06:35:11+00:00" }, { "name": "sebastian/lines-of-code", @@ -4598,16 +4622,16 @@ }, { "name": "sebastian/resource-operations", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e", + "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e", "shasum": "" }, "require": { @@ -4619,7 +4643,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -4640,8 +4664,7 @@ "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4" }, "funding": [ { @@ -4649,7 +4672,7 @@ "type": "github" } ], - "time": "2020-09-28T06:45:17+00:00" + "time": "2024-03-14T16:00:52+00:00" }, { "name": "sebastian/type", @@ -4823,16 +4846,16 @@ }, { "name": "spatie/array-to-xml", - "version": "3.2.2", + "version": "3.3.0", "source": { "type": "git", "url": "https://github.com/spatie/array-to-xml.git", - "reference": "96be97e664c87613121d073ea39af4c74e57a7f8" + "reference": "f56b220fe2db1ade4c88098d83413ebdfc3bf876" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/96be97e664c87613121d073ea39af4c74e57a7f8", - "reference": "96be97e664c87613121d073ea39af4c74e57a7f8", + "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/f56b220fe2db1ade4c88098d83413ebdfc3bf876", + "reference": "f56b220fe2db1ade4c88098d83413ebdfc3bf876", "shasum": "" }, "require": { @@ -4845,6 +4868,11 @@ "spatie/pest-plugin-snapshots": "^1.1" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, "autoload": { "psr-4": { "Spatie\\ArrayToXml\\": "src" @@ -4870,7 +4898,7 @@ "xml" ], "support": { - "source": "https://github.com/spatie/array-to-xml/tree/3.2.2" + "source": "https://github.com/spatie/array-to-xml/tree/3.3.0" }, "funding": [ { @@ -4882,20 +4910,20 @@ "type": "github" } ], - "time": "2023-11-14T14:08:51+00:00" + "time": "2024-05-01T10:20:27+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.8.0", + "version": "3.10.3", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "5805f7a4e4958dbb5e944ef1e6edae0a303765e7" + "reference": "62d32998e820bddc40f99f8251958aed187a5c9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/5805f7a4e4958dbb5e944ef1e6edae0a303765e7", - "reference": "5805f7a4e4958dbb5e944ef1e6edae0a303765e7", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/62d32998e820bddc40f99f8251958aed187a5c9c", + "reference": "62d32998e820bddc40f99f8251958aed187a5c9c", "shasum": "" }, "require": { @@ -4905,11 +4933,11 @@ "php": ">=5.4.0" }, "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" }, "bin": [ - "bin/phpcs", - "bin/phpcbf" + "bin/phpcbf", + "bin/phpcs" ], "type": "library", "extra": { @@ -4962,27 +4990,28 @@ "type": "open_collective" } ], - "time": "2023-12-08T12:32:31+00:00" + "time": "2024-09-18T10:38:58+00:00" }, { "name": "symfony/console", - "version": "v6.0.19", + "version": "v6.4.12", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed" + "reference": "72d080eb9edf80e36c19be61f72c98ed8273b765" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/c3ebc83d031b71c39da318ca8b7a07ecc67507ed", - "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed", + "url": "https://api.github.com/repos/symfony/console/zipball/72d080eb9edf80e36c19be61f72c98ed8273b765", + "reference": "72d080eb9edf80e36c19be61f72c98ed8273b765", "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/string": "^5.4|^6.0" + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^5.4|^6.0|^7.0" }, "conflict": { "symfony/dependency-injection": "<5.4", @@ -4996,18 +5025,16 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/lock": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/lock": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -5036,12 +5063,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.4.12" }, "funding": [ { @@ -5057,27 +5084,97 @@ "type": "tidelift" } ], - "time": "2023-01-01T08:36:10+00:00" + "time": "2024-09-20T08:15:52+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/filesystem", - "version": "v6.0.19", + "version": "v6.4.12", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "3d49eec03fda1f0fc19b7349fbbe55ebc1004214" + "reference": "f810e3cbdf7fdc35983968523d09f349fa9ada12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/3d49eec03fda1f0fc19b7349fbbe55ebc1004214", - "reference": "3d49eec03fda1f0fc19b7349fbbe55ebc1004214", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/f810e3cbdf7fdc35983968523d09f349fa9ada12", + "reference": "f810e3cbdf7fdc35983968523d09f349fa9ada12", "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8" }, + "require-dev": { + "symfony/process": "^5.4|^6.4|^7.0" + }, "type": "library", "autoload": { "psr-4": { @@ -5104,7 +5201,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.4.12" }, "funding": [ { @@ -5120,24 +5217,24 @@ "type": "tidelift" } ], - "time": "2023-01-20T17:44:14+00:00" + "time": "2024-09-16T16:01:33+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.28.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-ctype": "*" @@ -5147,9 +5244,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -5186,7 +5280,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" }, "funding": [ { @@ -5202,33 +5296,30 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.28.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "875e90aeea2777b6f135677f618529449334a612" + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", - "reference": "875e90aeea2777b6f135677f618529449334a612", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -5267,7 +5358,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" }, "funding": [ { @@ -5283,33 +5374,30 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.28.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" + "reference": "3833d7255cc303546435cb650316bff708a1c75c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", + "reference": "3833d7255cc303546435cb650316bff708a1c75c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -5351,7 +5439,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" }, "funding": [ { @@ -5367,24 +5455,24 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.28.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "42292d99c55abe617799667f454222c54c60e229" + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", - "reference": "42292d99c55abe617799667f454222c54c60e229", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-mbstring": "*" @@ -5394,9 +5482,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -5434,7 +5519,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" }, "funding": [ { @@ -5450,43 +5535,32 @@ "type": "tidelift" } ], - "time": "2023-07-28T09:04:16+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.28.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179" + "reference": "fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179", - "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce", + "reference": "fa2ae56c44f03bed91a39bfc9822e31e7c5c38ce", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, - "type": "library", + "type": "metapackage", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" } }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - } - }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" @@ -5510,7 +5584,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.31.0" }, "funding": [ { @@ -5526,30 +5600,27 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.28.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -5593,7 +5664,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" }, "funding": [ { @@ -5609,36 +5680,34 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.0.2", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66" + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d78d39c1599bd1188b8e26bb341da52c3c6d8a66", - "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", "shasum": "" }, "require": { - "php": ">=8.0.2", - "psr/container": "^2.0" + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" }, "conflict": { "ext-psr": "<1.1|>=2" }, - "suggest": { - "symfony/service-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -5648,7 +5717,10 @@ "autoload": { "psr-4": { "Symfony\\Contracts\\Service\\": "" - } + }, + "exclude-from-classmap": [ + "/Test/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5675,7 +5747,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.0.2" + "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" }, "funding": [ { @@ -5691,37 +5763,38 @@ "type": "tidelift" } ], - "time": "2022-05-30T19:17:58+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/string", - "version": "v6.0.19", + "version": "v6.4.12", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a" + "reference": "f8a1ccebd0997e16112dfecfd74220b78e5b284b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/d9e72497367c23e08bf94176d2be45b00a9d232a", - "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a", + "url": "https://api.github.com/repos/symfony/string/zipball/f8a1ccebd0997e16112dfecfd74220b78e5b284b", + "reference": "f8a1ccebd0997e16112dfecfd74220b78e5b284b", "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", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/translation-contracts": "<2.0" + "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/error-handler": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/translation-contracts": "^2.0|^3.0", - "symfony/var-exporter": "^5.4|^6.0" + "symfony/error-handler": "^5.4|^6.0|^7.0", + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/intl": "^6.2|^7.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -5760,7 +5833,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.0.19" + "source": "https://github.com/symfony/string/tree/v6.4.12" }, "funding": [ { @@ -5776,20 +5849,20 @@ "type": "tidelift" } ], - "time": "2023-01-01T08:36:10+00:00" + "time": "2024-09-20T08:15:52+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.2", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", "shasum": "" }, "require": { @@ -5818,7 +5891,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.2" + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" }, "funding": [ { @@ -5826,20 +5899,20 @@ "type": "github" } ], - "time": "2023-11-20T00:12:19+00:00" + "time": "2024-03-03T12:36:25+00:00" }, { "name": "vimeo/psalm", - "version": "5.18.0", + "version": "5.26.1", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "b113f3ed0259fd6e212d87c3df80eec95a6abf19" + "reference": "d747f6500b38ac4f7dfc5edbcae6e4b637d7add0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/b113f3ed0259fd6e212d87c3df80eec95a6abf19", - "reference": "b113f3ed0259fd6e212d87c3df80eec95a6abf19", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/d747f6500b38ac4f7dfc5edbcae6e4b637d7add0", + "reference": "d747f6500b38ac4f7dfc5edbcae6e4b637d7add0", "shasum": "" }, "require": { @@ -5860,9 +5933,9 @@ "felixfbecker/language-server-protocol": "^1.5.2", "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1 || ^1.0.0", "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "nikic/php-parser": "^4.16", + "nikic/php-parser": "^4.17", "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", - "sebastian/diff": "^4.0 || ^5.0", + "sebastian/diff": "^4.0 || ^5.0 || ^6.0", "spatie/array-to-xml": "^2.17.0 || ^3.0", "symfony/console": "^4.1.6 || ^5.0 || ^6.0 || ^7.0", "symfony/filesystem": "^5.4 || ^6.0 || ^7.0" @@ -5936,7 +6009,7 @@ "issues": "https://github.com/vimeo/psalm/issues", "source": "https://github.com/vimeo/psalm" }, - "time": "2023-12-16T09:37:35+00:00" + "time": "2024-09-08T18:53:08+00:00" }, { "name": "webimpress/coding-standard", @@ -6000,7 +6073,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "~8.1.0 || ~8.2.0 || ~8.3.0", + "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0", "ext-dom": "*", "ext-json": "*" }, diff --git a/docs/book/v1/cookbook/generating-custom-resources.md b/docs/book/v1/cookbook/generating-custom-resources.md index 35e297bf..e15c236d 100644 --- a/docs/book/v1/cookbook/generating-custom-resources.md +++ b/docs/book/v1/cookbook/generating-custom-resources.md @@ -60,7 +60,7 @@ To facilitate common operations, this library provides two traits, `Mezzio\Hal\ResourceGenerator\ExtractInstanceTrait`; inspect these if you decide to write your own strategies. -In order for the `MetadataMap` to be able to use your `CustomMetadata` you need to register +In order for the `MetadataMap` to be able to use your `CustomMetadata` you need to register a factory (implementing `Mezzio\Hal\Metadata\MetadataFactoryInterface`) for it. You can register them via the configuration: diff --git a/docs/book/v1/factories.md b/docs/book/v1/factories.md index 44457940..e71403cf 100644 --- a/docs/book/v1/factories.md +++ b/docs/book/v1/factories.md @@ -9,23 +9,23 @@ configured instances for your use. - Registered as service: `Mezzio\Hal\HalResponseFactory` - Generates instance of: `Mezzio\Hal\HalResponseFactory` - Depends on: - - `Psr\Http\Message\ResponseInterface` service. The service must resolve to - a PHP callable capable of generating a [PSR-7](https://www.php-fig.org/psr/psr-7/) - `ResponseInterface` instance; it must not resolve to a `ResponseInterface` - instance directly. This service is **required**, and must be supplied by - the application. If you are using with mezzio v3 and above, the - service will already be registered. - - `Mezzio\Hal\Renderer\JsonRenderer` service. If the service is not - present, it instantiates an instance itself. - - `Mezzio\Hal\Renderer\XmlRenderer` service. If the service is not - present, it instantiates an instance itself. + - `Psr\Http\Message\ResponseInterface` service. The service must resolve to + a PHP callable capable of generating a [PSR-7](https://www.php-fig.org/psr/psr-7/) + `ResponseInterface` instance; it must not resolve to a `ResponseInterface` + instance directly. This service is **required**, and must be supplied by + the application. If you are using with mezzio v3 and above, the + service will already be registered. + - `Mezzio\Hal\Renderer\JsonRenderer` service. If the service is not + present, it instantiates an instance itself. + - `Mezzio\Hal\Renderer\XmlRenderer` service. If the service is not + present, it instantiates an instance itself. ## Mezzio\Hal\LinkGeneratorFactory - Registered as service: `Mezzio\Hal\LinkGenerator` - Generates instance of: `Mezzio\Hal\LinkGenerator` - Depends on: - - `Mezzio\Hal\LinkGenerator\UrlGeneratorInterface` service + - `Mezzio\Hal\LinkGenerator\UrlGeneratorInterface` service Since version 1.1.0, this factory allows an optional constructor argument, `$urlGeneratorServiceName`. It defaults to @@ -40,10 +40,10 @@ alternate URL generator that consumes it. - Registered as service: `Mezzio\Hal\LinkGenerator\MezzioUrlGenerator` - Generates instance of: `Mezzio\Hal\LinkGenerator\MezzioUrlGenerator` - Depends on: - - [mezzio/mezzio-helpers](https://github.com/mezzio/mezzio-helpers) package - - `Mezzio\Helper\UrlHelper` service - - `Mezzio\Helper\ServerUrlHelper` service (optional; if not provided, - URIs will be generated without authority information) + - [mezzio/mezzio-helpers](https://github.com/mezzio/mezzio-helpers) package + - `Mezzio\Helper\UrlHelper` service + - `Mezzio\Helper\ServerUrlHelper` service (optional; if not provided, + URIs will be generated without authority information) Since version 1.1.0, this factory allows an optional constructor argument, `$urlHelperServiceName`. It defaults to `Mezzio\Helper\UrlHelper`, but you may specify an @@ -64,7 +64,7 @@ directly to a factory that will return a valid instance. - Registered as service: `Mezzio\Hal\Metadata\MetadataMap` - Generates instance of: `Mezzio\Hal\Metadata\MetadataMap` - Depends on: - - `config` service; if not present, will use an empty array + - `config` service; if not present, will use an empty array This service uses the `Mezzio\Hal\Metadata\MetadataMap` key of the `config` service in order to configure and return a `Mezzio\Hal\Metadata\MetadataMap` instance. It expects @@ -80,55 +80,55 @@ that value to be an array of elements, each with the following structure: The additional pairs are as follows: - For `UrlBasedResourceMetadata`: - - `resource_class`: the resource class the metadata describes. - - `url`: the URL to use when generating a self-relational link for the - resource. - - `extractor`: the extractor/hydrator service to use to extract resource - data. + - `resource_class`: the resource class the metadata describes. + - `url`: the URL to use when generating a self-relational link for the + resource. + - `extractor`: the extractor/hydrator service to use to extract resource + data. - For `UrlBasedCollectionMetadata`: - - `collection_class`: the collection class the metadata describes. - - `collection_relation`: the embedded relation for the collection in the - generated resource. - - `url`: the URL to use when generating a self-relational link for the - collection resource. - - `pagination_param`: the name of the parameter indicating what page of data - is present. Defaults to "page". - - `pagination_param_type`: whether the pagination parameter is a query string - or path placeholder; use either `AbstractCollectionMetadata::TYPE_QUERY` - ("query") or `AbstractCollectionMetadata::TYPE_PLACEHOLDER` ("placeholder"); - default is "query". + - `collection_class`: the collection class the metadata describes. + - `collection_relation`: the embedded relation for the collection in the + generated resource. + - `url`: the URL to use when generating a self-relational link for the + collection resource. + - `pagination_param`: the name of the parameter indicating what page of data + is present. Defaults to "page". + - `pagination_param_type`: whether the pagination parameter is a query string + or path placeholder; use either `AbstractCollectionMetadata::TYPE_QUERY` + ("query") or `AbstractCollectionMetadata::TYPE_PLACEHOLDER` ("placeholder"); + default is "query". - For `RouteBasedResourceMetadata`: - - `resource_class`: the resource class the metadata describes. - - `route`: the route to use when generating a self relational link for the - resource. - - `extractor`: the extractor/hydrator service to use to extract resource - data. - - `resource_identifier`: what property in the resource represents its - identifier; defaults to "id". - - `route_identifier_placeholder`: what placeholder in the route string - represents the resource identifier; defaults to "id". Deprecated since - 1.4.0; use the `identifiers_to_placeholders_mapping` setting instead. - - `route_params`: an array of additional routing parameters to use when - generating the self relational link for the resource. - - `identifiers_to_placeholders_mapping` (associative array mapping resource properties to routing parameters, for use when generating the URI; since 1.4.0) + - `resource_class`: the resource class the metadata describes. + - `route`: the route to use when generating a self relational link for the + resource. + - `extractor`: the extractor/hydrator service to use to extract resource + data. + - `resource_identifier`: what property in the resource represents its + identifier; defaults to "id". + - `route_identifier_placeholder`: what placeholder in the route string + represents the resource identifier; defaults to "id". Deprecated since + 1.4.0; use the `identifiers_to_placeholders_mapping` setting instead. + - `route_params`: an array of additional routing parameters to use when + generating the self relational link for the resource. + - `identifiers_to_placeholders_mapping` (associative array mapping resource properties to routing parameters, for use when generating the URI; since 1.4.0) - For `RouteBasedCollectionMetadata`: - - `collection_class`: the collection class the metadata describes. - - `collection_relation`: the embedded relation for the collection in the - generated resource. - - `route`: the route to use when generating a self relational link for the - collection resource. - - `pagination_param`: the name of the parameter indicating what page of data - is present. Defaults to "page". - - `pagination_param_type`: whether the pagination parameter is a query string - or path placeholder; use either `AbstractCollectionMetadata::TYPE_QUERY` - ("query") or `AbstractCollectionMetadata::TYPE_PLACEHOLDER` ("placeholder"); - default is "query". - - `route_params`: an array of additional routing parameters to use when - generating the self relational link for the collection resource. Defaults - to an empty array. - - `query_string_arguments`: an array of query string parameters to include - when generating the self relational link for the collection resource. - Defaults to an empty array. + - `collection_class`: the collection class the metadata describes. + - `collection_relation`: the embedded relation for the collection in the + generated resource. + - `route`: the route to use when generating a self relational link for the + collection resource. + - `pagination_param`: the name of the parameter indicating what page of data + is present. Defaults to "page". + - `pagination_param_type`: whether the pagination parameter is a query string + or path placeholder; use either `AbstractCollectionMetadata::TYPE_QUERY` + ("query") or `AbstractCollectionMetadata::TYPE_PLACEHOLDER` ("placeholder"); + default is "query". + - `route_params`: an array of additional routing parameters to use when + generating the self relational link for the collection resource. Defaults + to an empty array. + - `query_string_arguments`: an array of query string parameters to include + when generating the self relational link for the collection resource. + Defaults to an empty array. If you have created custom metadata types, you can extend this class to support them. Create `create(array $metadata)` methods for each @@ -151,9 +151,9 @@ the namespace. - Registered as service: `Mezzio\Hal\ResourceGenerator` - Generates instance of: `Mezzio\Hal\ResourceGenerator` - Depends on: - - `Mezzio\Hal\Metadata\MetadataMap` service - - `Laminas\Hydrator\HydratorPluginManager` service - - `Mezzio\Hal\LinkGenerator` service + - `Mezzio\Hal\Metadata\MetadataMap` service + - `Laminas\Hydrator\HydratorPluginManager` service + - `Mezzio\Hal\LinkGenerator` service If you wish to use a container implementation other than the `Laminas\Hydrator\HydratorPluginManager`, either register it under that service diff --git a/docs/book/v1/resource-generator.md b/docs/book/v1/resource-generator.md index 5f778a88..5192c887 100644 --- a/docs/book/v1/resource-generator.md +++ b/docs/book/v1/resource-generator.md @@ -29,41 +29,41 @@ The component also provides four concrete metadata types, requiring the following information: - `Mezzio\Hal\Metadata\RouteBasedCollectionMetadata`: - - string `$class` - - string `$collectionRelation` - - string `$route` - - string `$paginationParam = 'page'` (name of the parameter indicating the - current page of results) - - string `$paginationParamType = self::TYPE_QUERY` (one of "query" or "placeholder") - - array `$routeParams = []` (associative array of substitutions to use with - the designated route) - - array `$queryStringArguments = []` (associative array of query string - arguments to include in the generated URI) + - string `$class` + - string `$collectionRelation` + - string `$route` + - string `$paginationParam = 'page'` (name of the parameter indicating the + current page of results) + - string `$paginationParamType = self::TYPE_QUERY` (one of "query" or "placeholder") + - array `$routeParams = []` (associative array of substitutions to use with + the designated route) + - array `$queryStringArguments = []` (associative array of query string + arguments to include in the generated URI) - `Mezzio\Hal\Metadata\RouteBasedResourceMetadata`: - - string `$class` - - string `$route` - - string `$extractor` (string service name of the laminas-hydrator hydrator to - use for extracting data from the instance) - - string `$resourceIdentifier = 'id'` (name of the property uniquely - identifying the resource) - - string `$routeIdentifierPlaceholder = 'id'` (name of the routing parameter - that maps to the resource identifier; deprecated since 1.4.0 in favor of - using the `$identifiersToPlacholdersMapping`) - - array `$routeParams = []` (associative array of additional routing - parameters to substitute when generating the URI) - - array `$identifiersToPlacholdersMapping = []` (associative array mapping resource properties to route parameters, for use when generating the URI; available since 1.4.0) + - string `$class` + - string `$route` + - string `$extractor` (string service name of the laminas-hydrator hydrator to + use for extracting data from the instance) + - string `$resourceIdentifier = 'id'` (name of the property uniquely + identifying the resource) + - string `$routeIdentifierPlaceholder = 'id'` (name of the routing parameter + that maps to the resource identifier; deprecated since 1.4.0 in favor of + using the `$identifiersToPlacholdersMapping`) + - array `$routeParams = []` (associative array of additional routing + parameters to substitute when generating the URI) + - array `$identifiersToPlacholdersMapping = []` (associative array mapping resource properties to route parameters, for use when generating the URI; available since 1.4.0) - `Mezzio\Hal\Metadata\UrlBasedCollectionMetadata`: - - string `$class` - - string `$collectionRelation` - - string `$url` - - string `$paginationParam = 'page'` (name of the parameter indicating the - current page of results) - - string `$paginationParamType = self::TYPE_QUERY` (one of "query" or "placeholder") + - string `$class` + - string `$collectionRelation` + - string `$url` + - string `$paginationParam = 'page'` (name of the parameter indicating the + current page of results) + - string `$paginationParamType = self::TYPE_QUERY` (one of "query" or "placeholder") - `Mezzio\Hal\Metadata\UrlBasedResourceMetadata` - - string `$class` - - string `$url` - - string `$extractor` (string service name of the laminas-hydrator hydrator to - use for extracting data from the instance) + - string `$class` + - string `$url` + - string `$extractor` (string service name of the laminas-hydrator hydrator to + use for extracting data from the instance) We aggregate metadata in a `Mezzio\Hal\Metadata\MetadataMap` instance: @@ -126,25 +126,25 @@ return [ The rest of the parameters follow underscore delimiter naming convention: - `RouteBasedResourceMetadata::class` - - `resource_identifier` (name of the property uniquely identifying the resource) - - `route_identifier_placeholder` (name of the routing parameter that maps to the resource identifier. Deprecated since 1.4.0; use the `identifiers_to_placeholders_mapping` setting instead) - - `route_params` (associative array of substitutions to use with the designated route) - - `identifiers_to_placeholders_mapping` (associative array mapping resource properties to routing parameters, for use when generating the URI; since 1.4.0) + - `resource_identifier` (name of the property uniquely identifying the resource) + - `route_identifier_placeholder` (name of the routing parameter that maps to the resource identifier. Deprecated since 1.4.0; use the `identifiers_to_placeholders_mapping` setting instead) + - `route_params` (associative array of substitutions to use with the designated route) + - `identifiers_to_placeholders_mapping` (associative array mapping resource properties to routing parameters, for use when generating the URI; since 1.4.0) - `RouteBasedCollectionMetadata::class` - - `pagination_param` (name of the parameter indicating the current page of results) - - `pagination_param_type` (one of "query" or "placeholder") - - `route_params` (associative array of substitutions to use with the designated route) - - `query_string_arguments` (associative array of additional routing parameters to substitute when generating the URI) + - `pagination_param` (name of the parameter indicating the current page of results) + - `pagination_param_type` (one of "query" or "placeholder") + - `route_params` (associative array of substitutions to use with the designated route) + - `query_string_arguments` (associative array of additional routing parameters to substitute when generating the URI) - `UrlBasedResourceMetadata::class` - - `resource_class` - - `url` - - `extractor` + - `resource_class` + - `url` + - `extractor` - `UrlBasedCollectionMetadata::class` - - `collection_class` - - `collection_relation` - - `url` - - `pagination_param` (name of the parameter indicating the current page of results) - - `pagination_param_type` (one of "query" or "placeholder") + - `collection_class` + - `collection_relation` + - `url` + - `pagination_param` (name of the parameter indicating the current page of results) + - `pagination_param_type` (one of "query" or "placeholder") ## ResourceGenerator diff --git a/docs/book/v2/cookbook/generating-custom-resources.md b/docs/book/v2/cookbook/generating-custom-resources.md index 3e04daf5..1898edb1 100644 --- a/docs/book/v2/cookbook/generating-custom-resources.md +++ b/docs/book/v2/cookbook/generating-custom-resources.md @@ -61,7 +61,7 @@ To facilitate common operations, this library provides two traits, `Mezzio\Hal\ResourceGenerator\ExtractInstanceTrait`; inspect these if you decide to write your own strategies. -In order for the `MetadataMap` to be able to use your `CustomMetadata` you need to register +In order for the `MetadataMap` to be able to use your `CustomMetadata` you need to register a factory (implementing `Mezzio\Hal\Metadata\MetadataFactoryInterface`) for it. You can register them via the configuration: diff --git a/docs/book/v2/factories.md b/docs/book/v2/factories.md index c1a26867..438bb7e2 100644 --- a/docs/book/v2/factories.md +++ b/docs/book/v2/factories.md @@ -9,15 +9,15 @@ configured instances for your use. - Registered as service: `Mezzio\Hal\HalResponseFactory` - Generates instance of: `Mezzio\Hal\HalResponseFactory` - Depends on: - - **Either** a `Psr\Http\Message\ResponseFactoryInterface` service **OR** a `Psr\Http\Message\ResponseInterface` service, with preference going to the `Psr\Http\Message\ResponseFactoryInterface` service. - A `Psr\Http\Message\ResponseFactoryInterface` service MUST resolve to a [PSR-17](https://www.php-fig.org/psr/psr-17/) `ResponseFactoryInterface` instance. - a `Psr\Http\Message\ResponseInterface` service MUST resolve to a PHP callable capable of generating a [PSR-7](https://www.php-fig.org/psr/psr-7/) `ResponseInterface` instance; it must not resolve to a `ResponseInterface` instance directly. - This service is **required**, and must be supplied by the application. - If you are using with mezzio v3 and above, the service will already be registered. - - `Mezzio\Hal\Renderer\JsonRenderer` service. - If the service is not present, it instantiates an instance itself. - - `Mezzio\Hal\Renderer\XmlRenderer` service. - If the service is not present, it instantiates an instance itself. + - **Either** a `Psr\Http\Message\ResponseFactoryInterface` service **OR** a `Psr\Http\Message\ResponseInterface` service, with preference going to the `Psr\Http\Message\ResponseFactoryInterface` service. + A `Psr\Http\Message\ResponseFactoryInterface` service MUST resolve to a [PSR-17](https://www.php-fig.org/psr/psr-17/) `ResponseFactoryInterface` instance. + a `Psr\Http\Message\ResponseInterface` service MUST resolve to a PHP callable capable of generating a [PSR-7](https://www.php-fig.org/psr/psr-7/) `ResponseInterface` instance; it must not resolve to a `ResponseInterface` instance directly. + This service is **required**, and must be supplied by the application. + If you are using with mezzio v3 and above, the service will already be registered. + - `Mezzio\Hal\Renderer\JsonRenderer` service. + If the service is not present, it instantiates an instance itself. + - `Mezzio\Hal\Renderer\XmlRenderer` service. + If the service is not present, it instantiates an instance itself. TIP: **ResponseInterface vs ResponseFactoryInterface** `HalResponseFactoryFactory` consumes the PSR-17 `Psr\Http\Message\ResponseFactoryInterface` service starting in version 2.3.0. @@ -28,7 +28,7 @@ Prior versions depend on the `Psr\Http\Message\ResponseInterface` service. - Registered as service: `Mezzio\Hal\LinkGenerator` - Generates instance of: `Mezzio\Hal\LinkGenerator` - Depends on: - - `Mezzio\Hal\LinkGenerator\UrlGeneratorInterface` service + - `Mezzio\Hal\LinkGenerator\UrlGeneratorInterface` service This factory allows an optional constructor argument, `$urlGeneratorServiceName`. It defaults to `Mezzio\Hal\LinkGenerator\UrlGeneratorInterface`, @@ -42,10 +42,10 @@ alternate URL generator that consumes it. - Registered as service: `Mezzio\Hal\LinkGenerator\MezzioUrlGenerator` - Generates instance of: `Mezzio\Hal\LinkGenerator\MezzioUrlGenerator` - Depends on: - - [mezzio/mezzio-helpers](https://github.com/mezzio/mezzio-helpers) package - - `Mezzio\Helper\UrlHelper` service - - `Mezzio\Helper\ServerUrlHelper` service (optional; if not provided, - URIs will be generated without authority information) + - [mezzio/mezzio-helpers](https://github.com/mezzio/mezzio-helpers) package + - `Mezzio\Helper\UrlHelper` service + - `Mezzio\Helper\ServerUrlHelper` service (optional; if not provided, + URIs will be generated without authority information) This factory allows an optional constructor argument, `$urlHelperServiceName`. It defaults to `Mezzio\Helper\UrlHelper`, but you may specify an @@ -66,7 +66,7 @@ directly to a factory that will return a valid instance. - Registered as service: `Mezzio\Hal\Metadata\MetadataMap` - Generates instance of: `Mezzio\Hal\Metadata\MetadataMap` - Depends on: - - `config` service; if not present, will use an empty array + - `config` service; if not present, will use an empty array This service uses the `Mezzio\Hal\Metadata\MetadataMap` key of the `config` service in order to configure and return a `Mezzio\Hal\Metadata\MetadataMap` instance. It expects @@ -82,53 +82,53 @@ that value to be an array of elements, each with the following structure: The additional pairs are as follows: - For `UrlBasedResourceMetadata`: - - `resource_class`: the resource class the metadata describes. - - `url`: the URL to use when generating a self-relational link for the - resource. - - `extractor`: the extractor/hydrator service to use to extract resource - data. + - `resource_class`: the resource class the metadata describes. + - `url`: the URL to use when generating a self-relational link for the + resource. + - `extractor`: the extractor/hydrator service to use to extract resource + data. - For `UrlBasedCollectionMetadata`: - - `collection_class`: the collection class the metadata describes. - - `collection_relation`: the embedded relation for the collection in the - generated resource. - - `url`: the URL to use when generating a self-relational link for the - collection resource. - - `pagination_param`: the name of the parameter indicating what page of data - is present. Defaults to "page". - - `pagination_param_type`: whether the pagination parameter is a query string - or path placeholder; use either `AbstractCollectionMetadata::TYPE_QUERY` - ("query") or `AbstractCollectionMetadata::TYPE_PLACEHOLDER` ("placeholder"); - default is "query". + - `collection_class`: the collection class the metadata describes. + - `collection_relation`: the embedded relation for the collection in the + generated resource. + - `url`: the URL to use when generating a self-relational link for the + collection resource. + - `pagination_param`: the name of the parameter indicating what page of data + is present. Defaults to "page". + - `pagination_param_type`: whether the pagination parameter is a query string + or path placeholder; use either `AbstractCollectionMetadata::TYPE_QUERY` + ("query") or `AbstractCollectionMetadata::TYPE_PLACEHOLDER` ("placeholder"); + default is "query". - For `RouteBasedResourceMetadata`: - - `resource_class`: the resource class the metadata describes. - - `route`: the route to use when generating a self relational link for the - resource. - - `extractor`: the extractor/hydrator service to use to extract resource - data. - - `resource_identifier`: what property in the resource represents its - identifier; defaults to "id". - - `route_params`: an array of additional routing parameters to use when - generating the self relational link for the resource. - - `identifiers_to_placeholders_mapping` (associative array mapping resource properties to routing parameters, for use when generating the URI) - - `max_depth`: the number of nesting levels processed. Defaults to 10. + - `resource_class`: the resource class the metadata describes. + - `route`: the route to use when generating a self relational link for the + resource. + - `extractor`: the extractor/hydrator service to use to extract resource + data. + - `resource_identifier`: what property in the resource represents its + identifier; defaults to "id". + - `route_params`: an array of additional routing parameters to use when + generating the self relational link for the resource. + - `identifiers_to_placeholders_mapping` (associative array mapping resource properties to routing parameters, for use when generating the URI) + - `max_depth`: the number of nesting levels processed. Defaults to 10. - For `RouteBasedCollectionMetadata`: - - `collection_class`: the collection class the metadata describes. - - `collection_relation`: the embedded relation for the collection in the - generated resource. - - `route`: the route to use when generating a self relational link for the - collection resource. - - `pagination_param`: the name of the parameter indicating what page of data - is present. Defaults to "page". - - `pagination_param_type`: whether the pagination parameter is a query string - or path placeholder; use either `AbstractCollectionMetadata::TYPE_QUERY` - ("query") or `AbstractCollectionMetadata::TYPE_PLACEHOLDER` ("placeholder"); - default is "query". - - `route_params`: an array of additional routing parameters to use when - generating the self relational link for the collection resource. Defaults - to an empty array. - - `query_string_arguments`: an array of query string parameters to include - when generating the self relational link for the collection resource. - Defaults to an empty array. + - `collection_class`: the collection class the metadata describes. + - `collection_relation`: the embedded relation for the collection in the + generated resource. + - `route`: the route to use when generating a self relational link for the + collection resource. + - `pagination_param`: the name of the parameter indicating what page of data + is present. Defaults to "page". + - `pagination_param_type`: whether the pagination parameter is a query string + or path placeholder; use either `AbstractCollectionMetadata::TYPE_QUERY` + ("query") or `AbstractCollectionMetadata::TYPE_PLACEHOLDER` ("placeholder"); + default is "query". + - `route_params`: an array of additional routing parameters to use when + generating the self relational link for the collection resource. Defaults + to an empty array. + - `query_string_arguments`: an array of query string parameters to include + when generating the self relational link for the collection resource. + Defaults to an empty array. If you have created custom metadata types, you can extend this class to support them. Create `create(array $metadata)` methods for each @@ -151,9 +151,9 @@ the namespace. - Registered as service: `Mezzio\Hal\ResourceGenerator` - Generates instance of: `Mezzio\Hal\ResourceGenerator` - Depends on: - - `Mezzio\Hal\Metadata\MetadataMap` service - - `Laminas\Hydrator\HydratorPluginManager` service - - `Mezzio\Hal\LinkGenerator` service + - `Mezzio\Hal\Metadata\MetadataMap` service + - `Laminas\Hydrator\HydratorPluginManager` service + - `Mezzio\Hal\LinkGenerator` service If you wish to use a container implementation other than the `Laminas\Hydrator\HydratorPluginManager`, either register it under that service diff --git a/docs/book/v2/resource-generator.md b/docs/book/v2/resource-generator.md index df90bedd..16c75eaa 100644 --- a/docs/book/v2/resource-generator.md +++ b/docs/book/v2/resource-generator.md @@ -29,39 +29,39 @@ The component also provides four concrete metadata types, requiring the following information: - `Mezzio\Hal\Metadata\RouteBasedCollectionMetadata`: - - string `$class` - - string `$collectionRelation` - - string `$route` - - string `$paginationParam = 'page'` (name of the parameter indicating the - current page of results) - - string `$paginationParamType = self::TYPE_QUERY` (one of "query" or "placeholder") - - array `$routeParams = []` (associative array of substitutions to use with - the designated route) - - array `$queryStringArguments = []` (associative array of query string - arguments to include in the generated URI) + - string `$class` + - string `$collectionRelation` + - string `$route` + - string `$paginationParam = 'page'` (name of the parameter indicating the + current page of results) + - string `$paginationParamType = self::TYPE_QUERY` (one of "query" or "placeholder") + - array `$routeParams = []` (associative array of substitutions to use with + the designated route) + - array `$queryStringArguments = []` (associative array of query string + arguments to include in the generated URI) - `Mezzio\Hal\Metadata\RouteBasedResourceMetadata`: - - string `$class` - - string `$route` - - string `$extractor` (string service name of the laminas-hydrator hydrator to + - string `$class` + - string `$route` + - string `$extractor` (string service name of the laminas-hydrator hydrator to use for extracting data from the instance) - - string `$resourceIdentifier = 'id'` (name of the property uniquely + - string `$resourceIdentifier = 'id'` (name of the property uniquely identifying the resource) - - array `$routeParams = []` (associative array of additional routing + - array `$routeParams = []` (associative array of additional routing parameters to substitute when generating the URI) - - array `$identifiersToPlacholdersMapping = []` (associative array mapping resource properties to route parameters, for use when generating the URI) - - int `$maxDepth = 10` max allowed nesting levels. + - array `$identifiersToPlacholdersMapping = []` (associative array mapping resource properties to route parameters, for use when generating the URI) + - int `$maxDepth = 10` max allowed nesting levels. - `Mezzio\Hal\Metadata\UrlBasedCollectionMetadata`: - - string `$class` - - string `$collectionRelation` - - string `$url` - - string `$paginationParam = 'page'` (name of the parameter indicating the - current page of results) - - string `$paginationParamType = self::TYPE_QUERY` (one of "query" or "placeholder") + - string `$class` + - string `$collectionRelation` + - string `$url` + - string `$paginationParam = 'page'` (name of the parameter indicating the + current page of results) + - string `$paginationParamType = self::TYPE_QUERY` (one of "query" or "placeholder") - `Mezzio\Hal\Metadata\UrlBasedResourceMetadata` - - string `$class` - - string `$url` - - string `$extractor` (string service name of the laminas-hydrator hydrator to - use for extracting data from the instance) + - string `$class` + - string `$url` + - string `$extractor` (string service name of the laminas-hydrator hydrator to + use for extracting data from the instance) We aggregate metadata in a `Mezzio\Hal\Metadata\MetadataMap` instance: @@ -124,25 +124,25 @@ return [ The rest of the parameters follow underscore delimiter naming convention: - `RouteBasedResourceMetadata::class` - - `resource_identifier` (name of the property uniquely identifying the resource) - - `route_params` (associative array of substitutions to use with the designated route) - - `identifiers_to_placeholders_mapping` (associative array mapping resource properties to routing parameters, for use when generating the URI) - - `max_depth` (maximum depth to allow when rendering nested resources; defaults to 10) + - `resource_identifier` (name of the property uniquely identifying the resource) + - `route_params` (associative array of substitutions to use with the designated route) + - `identifiers_to_placeholders_mapping` (associative array mapping resource properties to routing parameters, for use when generating the URI) + - `max_depth` (maximum depth to allow when rendering nested resources; defaults to 10) - `RouteBasedCollectionMetadata::class` - - `pagination_param` (name of the parameter indicating the current page of results) - - `pagination_param_type` (one of "query" or "placeholder") - - `route_params` (associative array of substitutions to use with the designated route) - - `query_string_arguments` (associative array of additional routing parameters to substitute when generating the URI) + - `pagination_param` (name of the parameter indicating the current page of results) + - `pagination_param_type` (one of "query" or "placeholder") + - `route_params` (associative array of substitutions to use with the designated route) + - `query_string_arguments` (associative array of additional routing parameters to substitute when generating the URI) - `UrlBasedResourceMetadata::class` - - `resource_class` - - `url` - - `extractor` + - `resource_class` + - `url` + - `extractor` - `UrlBasedCollectionMetadata::class` - - `collection_class` - - `collection_relation` - - `url` - - `pagination_param` (name of the parameter indicating the current page of results) - - `pagination_param_type` (one of "query" or "placeholder") + - `collection_class` + - `collection_relation` + - `url` + - `pagination_param` (name of the parameter indicating the current page of results) + - `pagination_param_type` (one of "query" or "placeholder") ## ResourceGenerator diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 0979e05c..8c91d7fd 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,57 +1,57 @@ - + - forNonObject + - $key - $links - $name - $name - $rel - $resource - $value + + + + + + + - function ($item) { + - $links - $links - $name - $name - $relation - $relation - $relation - $relation - $resource - $value - $value - $value + + + + + + + + + + + + - $name - $resource + + - $relation[Link::AS_COLLECTION] - $relation[] + + - $byRelation[$rel] - $byRelation[$rel] - $relations[$key] - $relations[$key] + + + + - $relations[$key] - $value + + - toArray + embedded]]> @@ -59,9 +59,9 @@ embedded]]> - $forceCollection ? [$resource] : $resource + aggregateEmbeddedCollection($name, $resource, $context)]]> - HalResource|HalResource[] + @@ -69,72 +69,72 @@ getValue()]]> - getValue + - $jsonRenderer - $xmlRenderer + + - $jsonRenderer - $xmlRenderer + + - RuntimeException + - $uri + - is_object($rel) ? $rel::class : gettype($rel) + - $value + - string|string[] + - is_string($relation) ? [$relation] : $relation - is_string($relation) ? [$relation] : $relation + + validateRelation($relation)]]> - gettype($rel) - is_object($href) - is_string($uri) + + + - ! is_string($attribute) - ! is_string($attribute) || empty($attribute) - ! is_string($rel) - ! is_string($rel) - ! is_string($rel) || empty($rel) - ! is_string($rel) || empty($rel) - (string) $uri - gettype($href) - is_object($href) - is_object($rel) + + + + + + + + + + - self - self + + - $rel + - $routeName + @@ -156,37 +156,37 @@ - $class + - $className + - dueToConflictingRouteIdentifierPlaceholder + - new $factoryClass() + - $metadataFactories - $metadataFactories[$metadataClass] + + - $config[MetadataMap::class] + - $config - $metadataFactories + + - AbstractMetadata + $method($metadata)]]> @@ -194,8 +194,8 @@ - setQueryStringArguments - setRouteParams + + @@ -222,12 +222,12 @@ )]]> - AbstractMetadata + - setRouteParams + @@ -254,7 +254,7 @@ )]]> - AbstractMetadata + @@ -277,7 +277,7 @@ )]]> - AbstractMetadata + @@ -298,91 +298,91 @@ )]]> - AbstractMetadata + - $elements + >>]]> - $attribute - $childDatum - $linkDatum + + + - $value - $value + + - $key - $key + + - $attribute - $child - $childDatum - $data - $linkDatum + + + + + - $value - $value - $value - $value - $value - $value + + + + + + - $element + - $child + - abstract protected function generateSelfLink( + - abstract protected function generateSelfLink( + ): Link;]]> + + ): Link;]]> - $item - $item + + - $links + - $count - $count - $item - $item + + + + - $count + - $perPage - $perPage + + - count + @@ -390,80 +390,73 @@ getExtractor()]]> - $array[$key] - $childData + + - getExtractor + - - [] - - protected function generateSelfLink( + getQueryStringArguments()]]> - getQueryStringArguments() ?? []]]> + getQueryStringArguments()]]> getRoute()]]> - $route - $routeParams - $routeParams - $routeParams + getRouteParams()]]> + + + - $queryParams - $queryStringArgs + + getQueryParams(), $metadata->getQueryStringArguments())]]> - $route - $routeParams - $routeParams - $routeParams + + + - - getQueryParams()]]> - - getQueryStringArguments - getQueryStringArguments - getRoute - getRoute - getRouteParams - getRouteParams + + + + + + - $routeParams + - $routeParams[$placeholderMap[$key]] + - protected function generateSelfLink( + - $url + - $url + - $url + - getUrl - getUrl + + - HydratorPluginManager + get($strategy)]]> @@ -471,54 +464,46 @@ get(HydratorPluginManager::class)]]> get(Metadata\MetadataMap::class)]]> - $strategy - HydratorPluginManager::class + + - $strategy + - ObjectProperty::class + getHref()]]> getRels()]]> - getHref - getHref - getRels - getRels + + + + - Link + - assertIsArray + - assertIsArray + - - - Generator - - - - - - $links + $embedded]]]> 'bar']]]> @@ -545,107 +530,94 @@ - StreamInterface - StreamInterface + + - reset + - withConsecutive - withConsecutive - withConsecutive - withConsecutive - withConsecutive - withConsecutive + + + + + + - CustomUrlHelper::class + - CustomUrlHelper - CustomUrlHelper - CustomUrlHelper + + + - withConsecutive + - assertAttributeSame + - UrlGenerator::class + - UrlGenerator - UrlGenerator - UrlGenerator - UrlGenerator + + + + - $uri + - $name - $name - $rel - $rel - $uri - $value - $value + + + + + + + - new Link() + - - - Generator - - - - - - - - Generator - - - $expected - $expected - $expected - $expected - $expected + + + + + - static::getObjectAttribute( + - static::getStaticAttribute( + )]]> + - static::readAttribute($actualClassOrObject, $actualAttributeName) - static::readAttribute($classOrObject, $attributeName) - static::readAttribute($haystackClassOrObject, $haystackAttributeName) + )]]> + + + - is_object($object) + @@ -663,8 +635,8 @@ 'Argument #%d%sof %s::%s() must be a %s', $argument, $value !== null ? ' (' . gettype($value) . '#' . $value . ')' : ' (No Value) ', - $stack[1]['class'] ?? '', - $stack[1]['function'], + (string) ($stack[1]['class'] ?? ''), + (string) ($stack[1]['function'] ?? ''), $type ) )]]> @@ -673,8 +645,8 @@ 'Argument #%d%sof %s::%s() must be a %s', $argument, $value !== null ? ' (' . gettype($value) . '#' . $value . ')' : ' (No Value) ', - $stack[1]['class'] ?? '', - $stack[1]['function'], + (string) ($stack[1]['class'] ?? ''), + (string) ($stack[1]['function'] ?? ''), $type ) )]]> @@ -683,8 +655,8 @@ 'Argument #%d%sof %s::%s() must be a %s', $argument, $value !== null ? ' (' . gettype($value) . '#' . $value . ')' : ' (No Value) ', - $stack[1]['class'] ?? '', - $stack[1]['function'], + (string) ($stack[1]['class'] ?? ''), + (string) ($stack[1]['function'] ?? ''), $type ) )]]> @@ -693,8 +665,8 @@ 'Argument #%d%sof %s::%s() must be a %s', $argument, $value !== null ? ' (' . gettype($value) . '#' . $value . ')' : ' (No Value) ', - $stack[1]['class'] ?? '', - $stack[1]['function'], + (string) ($stack[1]['class'] ?? ''), + (string) ($stack[1]['function'] ?? ''), $type ) )]]> @@ -760,58 +732,53 @@ )]]> - $value + - - $stack[1] - - assertAttributeEmpty - assertAttributeEmpty - assertAttributeEmpty - assertAttributeEmpty - assertAttributeEmpty + + + + + + + + + - is_object($classOrObject) + - setMethods - withConsecutive - withConsecutive - withConsecutive - withConsecutive - withConsecutive + + + + + + - - iterable - - - Generator - - assertInternalType - assertInternalType + + - $request + - $childCollection + - $request + @@ -821,27 +788,27 @@ reveal()]]> - reveal - reveal - reveal + + + - $linkGenerator - $linkGenerator - $linkGenerator - $linkGenerator - $linkGenerator - $linkGenerator - $linkGenerator - $request - $request - $request - $request - $request - $request - $request + + + + + + + + + + + + + + - willReturn - willReturn + + - $linkGenerator - $request + + createCollectionItems($linkGenerator, $request)]]> - willReturn + - assertAttributeSame - assertAttributeSame + + - HydratorPluginManager - HydratorPluginManager + + container->reveal()]]> container->reveal()]]> container->reveal()]]> container->reveal()]]> - CustomLinkGenerator::class + - willReturn - willReturn - willReturn - willReturn - willReturn + + + + + - willReturn - willReturn - willReturn - willReturn + + + + - reveal - reveal - reveal - reveal + + + + - CustomLinkGenerator - CustomLinkGenerator - CustomLinkGenerator - CustomLinkGenerator + + + + - assertInternalType + - $embedded - $item + + - $embedded - $ids[] - $item + + + - - Generator - - shouldNotBeCalled - shouldNotBeCalled - shouldNotBeCalled - willReturn - willReturn - willReturn - willReturn - willReturn - willReturn - willReturn - willReturn - willReturn - willReturn - willReturn - willReturn - willReturn - willReturn - willReturn - willReturn - willReturn - willReturn - willReturn + + + + + + + + + + + + + + + + + + + + + + - $strategy + - fromRoute - fromRoute - fromRoute - fromRoute - fromRoute - fromRoute - fromRoute - fromRoute - fromRoute - fromRoute - fromRoute - fromRoute + + + + + + + + + + + + - $id - $message + + - $bar - $children - $foo - $id + + + + - createTestMetadata + - $metadata + diff --git a/src/HalResponseFactory.php b/src/HalResponseFactory.php index f7736194..1cbcca02 100644 --- a/src/HalResponseFactory.php +++ b/src/HalResponseFactory.php @@ -74,7 +74,7 @@ public function createResponse( $matchedType = (new Negotiator())->getBest($accept, self::NEGOTIATION_PRIORITIES); switch (true) { - case $matchedType && strstr($matchedType->getValue(), 'json'): + case $matchedType && strstr($matchedType->getValue(), 'json') !== false: $renderer = $this->jsonRenderer; $mediaType .= '+json'; break; diff --git a/src/ResourceGenerator/RouteBasedCollectionStrategy.php b/src/ResourceGenerator/RouteBasedCollectionStrategy.php index 7923fdd6..6c8384c0 100644 --- a/src/ResourceGenerator/RouteBasedCollectionStrategy.php +++ b/src/ResourceGenerator/RouteBasedCollectionStrategy.php @@ -98,17 +98,14 @@ protected function generateSelfLink( ResourceGeneratorInterface $resourceGenerator, ServerRequestInterface $request ) { - $routeParams = $metadata->getRouteParams() ?? []; - $queryStringArgs = array_merge($request->getQueryParams() ?? [], $metadata->getQueryStringArguments() ?? []); - return $resourceGenerator ->getLinkGenerator() ->fromRoute( 'self', $request, $metadata->getRoute(), - $routeParams, - $queryStringArgs + $metadata->getRouteParams(), + array_merge($request->getQueryParams(), $metadata->getQueryStringArguments()) ); } } diff --git a/test/ExceptionTest.php b/test/ExceptionTest.php index 0bfdfa0a..33f75586 100644 --- a/test/ExceptionTest.php +++ b/test/ExceptionTest.php @@ -4,10 +4,10 @@ namespace MezzioTest\Hal; -use Generator; use Mezzio\Hal\Exception\ExceptionInterface; use PHPUnit\Framework\TestCase; +use function assert; use function basename; use function glob; use function is_a; @@ -16,9 +16,12 @@ class ExceptionTest extends TestCase { - public function exception(): Generator + /** @return iterable */ + public function exception(): iterable { - $namespace = substr(ExceptionInterface::class, 0, strrpos(ExceptionInterface::class, '\\') + 1); + $pos = strrpos(ExceptionInterface::class, '\\'); + assert($pos !== false); + $namespace = substr(ExceptionInterface::class, 0, $pos + 1); $exceptions = glob(__DIR__ . '/../src/Exception/*.php'); foreach ($exceptions as $exception) { diff --git a/test/HalResponseFactoryTest.php b/test/HalResponseFactoryTest.php index 7482da04..51ad090b 100644 --- a/test/HalResponseFactoryTest.php +++ b/test/HalResponseFactoryTest.php @@ -239,7 +239,7 @@ public function testUsesProvidedMediaTypeInReturnedResponseWithMatchedFormatAppe ->expects(self::never()) ->method('render'); break; - case strstr($header, 'xml'): + case strstr($header, 'xml') !== false: $this->xmlRenderer ->expects(self::once()) ->method('render') @@ -248,7 +248,7 @@ public function testUsesProvidedMediaTypeInReturnedResponseWithMatchedFormatAppe $this->jsonRenderer ->expects(self::never()) ->method('render'); - // fall-through + break; default: break; } diff --git a/test/Metadata/ExceptionTest.php b/test/Metadata/ExceptionTest.php index a361074a..29d4088a 100644 --- a/test/Metadata/ExceptionTest.php +++ b/test/Metadata/ExceptionTest.php @@ -4,11 +4,11 @@ namespace MezzioTest\Hal\Metadata; -use Generator; use Mezzio\Hal\Exception\ExceptionInterface as HalExceptionInterface; use Mezzio\Hal\Metadata\Exception\ExceptionInterface; use PHPUnit\Framework\TestCase; +use function assert; use function basename; use function glob; use function is_a; @@ -22,9 +22,12 @@ public function testExceptionInterfaceExtendsHalExceptionInterface(): void self::assertTrue(is_a(ExceptionInterface::class, HalExceptionInterface::class, true)); } - public function exception(): Generator + /** @return iterable */ + public function exception(): iterable { - $namespace = substr(ExceptionInterface::class, 0, strrpos(ExceptionInterface::class, '\\') + 1); + $pos = strrpos(ExceptionInterface::class, '\\'); + assert($pos !== false); + $namespace = substr(ExceptionInterface::class, 0, $pos + 1); $exceptions = glob(__DIR__ . '/../../src/Metadata/Exception/*.php'); foreach ($exceptions as $exception) { diff --git a/test/Metadata/MetadataMapFactoryTest.php b/test/Metadata/MetadataMapFactoryTest.php index e1bd1505..a61e9510 100644 --- a/test/Metadata/MetadataMapFactoryTest.php +++ b/test/Metadata/MetadataMapFactoryTest.php @@ -4,7 +4,6 @@ namespace MezzioTest\Hal\Metadata; -use Generator; use Mezzio\Hal\Metadata; use Mezzio\Hal\Metadata\Exception\InvalidConfigException; use Mezzio\Hal\Metadata\MetadataMap; @@ -133,7 +132,8 @@ public function testFactoryRaisesExceptionIfMetadataFactoryDoesNotImplementFacto ($this->factory)($this->container); } - public function invalidMetadata(): Generator + /** @return iterable */ + public function invalidMetadata(): iterable { $types = [ UrlBasedResourceMetadata::class, diff --git a/test/PHPUnitDeprecatedAssertions.php b/test/PHPUnitDeprecatedAssertions.php index a48927a5..4ee479c9 100644 --- a/test/PHPUnitDeprecatedAssertions.php +++ b/test/PHPUnitDeprecatedAssertions.php @@ -121,7 +121,7 @@ public static function assertAttributeSame( */ public static function readAttribute($classOrObject, string $attributeName) { - if (! self::isValidClassAttributeName($attributeName)) { + if (self::isValidClassAttributeName($attributeName) === false) { throw self::invalidArgument(2, 'valid attribute name'); } @@ -242,12 +242,9 @@ public static function getObjectAttribute($object, string $attributeName) ); } - /** - * @return false|int - */ - private static function isValidClassAttributeName(string $attributeName) + private static function isValidClassAttributeName(string $attributeName): bool { - return preg_match('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/', $attributeName); + return (bool) preg_match('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/', $attributeName); } /** @@ -262,8 +259,8 @@ private static function invalidArgument(int $argument, string $type, $value = nu 'Argument #%d%sof %s::%s() must be a %s', $argument, $value !== null ? ' (' . gettype($value) . '#' . $value . ')' : ' (No Value) ', - $stack[1]['class'] ?? '', - $stack[1]['function'], + (string) ($stack[1]['class'] ?? ''), + (string) ($stack[1]['function'] ?? ''), $type ) ); diff --git a/test/ResourceGenerator/DoctrinePaginatorTest.php b/test/ResourceGenerator/DoctrinePaginatorTest.php index 889e2dbf..f2e94510 100644 --- a/test/ResourceGenerator/DoctrinePaginatorTest.php +++ b/test/ResourceGenerator/DoctrinePaginatorTest.php @@ -64,6 +64,7 @@ public function mockQuery(): AbstractQuery ->getMockForAbstractClass(); } + /** @return iterable */ public function invalidPageCombinations(): iterable { yield 'negative' => [-1, 100]; diff --git a/test/ResourceGenerator/ExceptionTest.php b/test/ResourceGenerator/ExceptionTest.php index 21b5f055..0be60f1a 100644 --- a/test/ResourceGenerator/ExceptionTest.php +++ b/test/ResourceGenerator/ExceptionTest.php @@ -4,7 +4,6 @@ namespace MezzioTest\Hal\ResourceGenerator; -use Generator; use Mezzio\Hal\Exception\ExceptionInterface as HalExceptionInterface; use Mezzio\Hal\ResourceGenerator\Exception\ExceptionInterface; use PHPUnit\Framework\TestCase; @@ -22,7 +21,8 @@ public function testExceptionInterfaceExtendsHalExceptionInterface(): void self::assertTrue(is_a(ExceptionInterface::class, HalExceptionInterface::class, true)); } - public function exception(): Generator + /** @return iterable */ + public function exception(): iterable { $namespace = substr(ExceptionInterface::class, 0, strrpos(ExceptionInterface::class, '\\') + 1); diff --git a/test/ResourceGeneratorTest.php b/test/ResourceGeneratorTest.php index ddde16d2..852f6628 100644 --- a/test/ResourceGeneratorTest.php +++ b/test/ResourceGeneratorTest.php @@ -5,7 +5,6 @@ namespace MezzioTest\Hal; use ArrayIterator; -use Generator; use Laminas\Paginator\Adapter\ArrayAdapter; use Laminas\Paginator\Paginator; use Mezzio\Hal\Exception\InvalidObjectException; @@ -694,8 +693,8 @@ public function testGeneratorRaisesExceptionForUnknownObjectType(): void $this->generator->fromObject($this, $this->request->reveal()); } - /** @return Generator}> */ - public function strategyCollection(): Generator + /** @return iterable}> */ + public function strategyCollection(): iterable { yield 'route-based-collection' => [ new ResourceGenerator\RouteBasedCollectionStrategy(), @@ -708,7 +707,8 @@ public function strategyCollection(): Generator ]; } - public function strategyResource(): Generator + /** @return iterable */ + public function strategyResource(): iterable { yield 'route-based-resource' => [ new ResourceGenerator\RouteBasedResourceStrategy(),