diff --git a/.gitignore b/.gitignore
index f6f6e63..9f17933 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
/.phpcs-cache
+/.phpunit.cache
/.phpunit.result.cache
/clover.xml
/coveralls-upload.json
diff --git a/.laminas-ci.json b/.laminas-ci.json
index 0840a9e..cc51a6b 100644
--- a/.laminas-ci.json
+++ b/.laminas-ci.json
@@ -3,7 +3,7 @@
"pdo-sqlite"
],
"ignore_php_platform_requirements": {
- "8.4": true
+ "8.5": true
},
"backwardCompatibilityCheck": true
}
diff --git a/composer.json b/composer.json
index b9ca3e1..ab3934a 100644
--- a/composer.json
+++ b/composer.json
@@ -26,7 +26,7 @@
"dealerdirect/phpcodesniffer-composer-installer": true
},
"platform": {
- "php": "8.1.99"
+ "php": "8.2.99"
}
},
"extra": {
@@ -35,7 +35,8 @@
}
},
"require": {
- "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0",
+ "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0",
+ "ext-pdo": "*",
"league/oauth2-server": "^8.3.5",
"mezzio/mezzio-authentication": "^1.0",
"psr/container": "^1.0 || ^2.0",
@@ -48,7 +49,7 @@
"laminas/laminas-coding-standard": "^3.1",
"laminas/laminas-diactoros": "^3.7.0",
"laminas/laminas-servicemanager": "^4.4",
- "phpunit/phpunit": "^9.6.29",
+ "phpunit/phpunit": "^11.5.42",
"psalm/plugin-phpunit": "^0.19.5",
"vimeo/psalm": "^6.13.1"
},
diff --git a/composer.lock b/composer.lock
index 3e52898..33a8935 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": "abdb6dd4a28c712550c4771133f58633",
+ "content-hash": "97f1971c16d4758599908f431f77992b",
"packages": [
{
"name": "defuse/php-encryption",
@@ -75,34 +75,34 @@
},
{
"name": "lcobucci/clock",
- "version": "3.0.0",
+ "version": "3.3.1",
"source": {
"type": "git",
"url": "https://github.com/lcobucci/clock.git",
- "reference": "039ef98c6b57b101d10bd11d8fdfda12cbd996dc"
+ "reference": "db3713a61addfffd615b79bf0bc22f0ccc61b86b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/lcobucci/clock/zipball/039ef98c6b57b101d10bd11d8fdfda12cbd996dc",
- "reference": "039ef98c6b57b101d10bd11d8fdfda12cbd996dc",
+ "url": "https://api.github.com/repos/lcobucci/clock/zipball/db3713a61addfffd615b79bf0bc22f0ccc61b86b",
+ "reference": "db3713a61addfffd615b79bf0bc22f0ccc61b86b",
"shasum": ""
},
"require": {
- "php": "~8.1.0 || ~8.2.0",
+ "php": "~8.2.0 || ~8.3.0 || ~8.4.0",
"psr/clock": "^1.0"
},
"provide": {
"psr/clock-implementation": "1.0"
},
"require-dev": {
- "infection/infection": "^0.26",
- "lcobucci/coding-standard": "^9.0",
- "phpstan/extension-installer": "^1.2",
- "phpstan/phpstan": "^1.9.4",
- "phpstan/phpstan-deprecation-rules": "^1.1.1",
- "phpstan/phpstan-phpunit": "^1.3.2",
- "phpstan/phpstan-strict-rules": "^1.4.4",
- "phpunit/phpunit": "^9.5.27"
+ "infection/infection": "^0.29",
+ "lcobucci/coding-standard": "^11.1.0",
+ "phpstan/extension-installer": "^1.3.1",
+ "phpstan/phpstan": "^1.10.25",
+ "phpstan/phpstan-deprecation-rules": "^1.1.3",
+ "phpstan/phpstan-phpunit": "^1.3.13",
+ "phpstan/phpstan-strict-rules": "^1.5.1",
+ "phpunit/phpunit": "^11.3.6"
},
"type": "library",
"autoload": {
@@ -123,7 +123,7 @@
"description": "Yet another clock abstraction",
"support": {
"issues": "https://github.com/lcobucci/clock/issues",
- "source": "https://github.com/lcobucci/clock/tree/3.0.0"
+ "source": "https://github.com/lcobucci/clock/tree/3.3.1"
},
"funding": [
{
@@ -135,42 +135,42 @@
"type": "patreon"
}
],
- "time": "2022-12-19T15:00:24+00:00"
+ "time": "2024-09-24T20:45:14+00:00"
},
{
"name": "lcobucci/jwt",
- "version": "5.3.0",
+ "version": "5.5.0",
"source": {
"type": "git",
"url": "https://github.com/lcobucci/jwt.git",
- "reference": "08071d8d2c7f4b00222cc4b1fb6aa46990a80f83"
+ "reference": "a835af59b030d3f2967725697cf88300f579088e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/lcobucci/jwt/zipball/08071d8d2c7f4b00222cc4b1fb6aa46990a80f83",
- "reference": "08071d8d2c7f4b00222cc4b1fb6aa46990a80f83",
+ "url": "https://api.github.com/repos/lcobucci/jwt/zipball/a835af59b030d3f2967725697cf88300f579088e",
+ "reference": "a835af59b030d3f2967725697cf88300f579088e",
"shasum": ""
},
"require": {
"ext-openssl": "*",
"ext-sodium": "*",
- "php": "~8.1.0 || ~8.2.0 || ~8.3.0",
+ "php": "~8.2.0 || ~8.3.0 || ~8.4.0",
"psr/clock": "^1.0"
},
"require-dev": {
- "infection/infection": "^0.27.0",
- "lcobucci/clock": "^3.0",
+ "infection/infection": "^0.29",
+ "lcobucci/clock": "^3.2",
"lcobucci/coding-standard": "^11.0",
- "phpbench/phpbench": "^1.2.9",
+ "phpbench/phpbench": "^1.2",
"phpstan/extension-installer": "^1.2",
"phpstan/phpstan": "^1.10.7",
"phpstan/phpstan-deprecation-rules": "^1.1.3",
"phpstan/phpstan-phpunit": "^1.3.10",
"phpstan/phpstan-strict-rules": "^1.5.0",
- "phpunit/phpunit": "^10.2.6"
+ "phpunit/phpunit": "^11.1"
},
"suggest": {
- "lcobucci/clock": ">= 3.0"
+ "lcobucci/clock": ">= 3.2"
},
"type": "library",
"autoload": {
@@ -196,7 +196,7 @@
],
"support": {
"issues": "https://github.com/lcobucci/jwt/issues",
- "source": "https://github.com/lcobucci/jwt/tree/5.3.0"
+ "source": "https://github.com/lcobucci/jwt/tree/5.5.0"
},
"funding": [
{
@@ -208,7 +208,7 @@
"type": "patreon"
}
],
- "time": "2024-04-11T23:07:54+00:00"
+ "time": "2025-01-26T21:29:45+00:00"
},
{
"name": "league/event",
@@ -528,20 +528,20 @@
},
{
"name": "mezzio/mezzio-authentication",
- "version": "1.11.0",
+ "version": "1.12.0",
"source": {
"type": "git",
"url": "https://github.com/mezzio/mezzio-authentication.git",
- "reference": "9aa6602d186ba68411b0e7ca6960f24c4089b74e"
+ "reference": "50f825217246dc3bd9c991a31795fc7cd7ede6b4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/mezzio/mezzio-authentication/zipball/9aa6602d186ba68411b0e7ca6960f24c4089b74e",
- "reference": "9aa6602d186ba68411b0e7ca6960f24c4089b74e",
+ "url": "https://api.github.com/repos/mezzio/mezzio-authentication/zipball/50f825217246dc3bd9c991a31795fc7cd7ede6b4",
+ "reference": "50f825217246dc3bd9c991a31795fc7cd7ede6b4",
"shasum": ""
},
"require": {
- "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0",
+ "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0",
"psr/container": "^1.0 || ^2.0",
"psr/http-message": "^1.0.1 || ^2.0.0",
"psr/http-server-middleware": "^1.0",
@@ -553,10 +553,10 @@
},
"require-dev": {
"ext-sqlite3": "*",
- "laminas/laminas-coding-standard": "~3.0.1",
- "phpunit/phpunit": "^10.5.45",
+ "laminas/laminas-coding-standard": "~3.1.0",
+ "phpunit/phpunit": "^11.5.42",
"psalm/plugin-phpunit": "^0.19.5",
- "vimeo/psalm": "^6.10.1"
+ "vimeo/psalm": "^6.13.1"
},
"suggest": {
"ext-pdo": "*: for use with the PDO-backed UserRepositoryInterface implementation",
@@ -604,7 +604,7 @@
"type": "community_bridge"
}
],
- "time": "2025-04-29T09:17:58+00:00"
+ "time": "2025-10-12T22:33:46+00:00"
},
{
"name": "paragonie/random_compat",
@@ -1848,26 +1848,26 @@
},
{
"name": "brick/varexporter",
- "version": "0.5.0",
+ "version": "0.6.0",
"source": {
"type": "git",
"url": "https://github.com/brick/varexporter.git",
- "reference": "84b2a7a91f69aa5d079aec5a0a7256ebf2dceb6b"
+ "reference": "af98bfc2b702a312abbcaff37656dbe419cec5bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brick/varexporter/zipball/84b2a7a91f69aa5d079aec5a0a7256ebf2dceb6b",
- "reference": "84b2a7a91f69aa5d079aec5a0a7256ebf2dceb6b",
+ "url": "https://api.github.com/repos/brick/varexporter/zipball/af98bfc2b702a312abbcaff37656dbe419cec5bc",
+ "reference": "af98bfc2b702a312abbcaff37656dbe419cec5bc",
"shasum": ""
},
"require": {
"nikic/php-parser": "^5.0",
- "php": "^7.4 || ^8.0"
+ "php": "^8.1"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.2",
- "phpunit/phpunit": "^9.3",
- "psalm/phar": "5.21.1"
+ "phpunit/phpunit": "^10.5",
+ "vimeo/psalm": "6.8.4"
},
"type": "library",
"autoload": {
@@ -1885,7 +1885,7 @@
],
"support": {
"issues": "https://github.com/brick/varexporter/issues",
- "source": "https://github.com/brick/varexporter/tree/0.5.0"
+ "source": "https://github.com/brick/varexporter/tree/0.6.0"
},
"funding": [
{
@@ -1893,7 +1893,7 @@
"type": "github"
}
],
- "time": "2024-05-10T17:15:19+00:00"
+ "time": "2025-02-20T17:42:39+00:00"
},
{
"name": "composer/pcre",
@@ -2394,76 +2394,6 @@
},
"time": "2025-04-07T20:06:18+00:00"
},
- {
- "name": "doctrine/instantiator",
- "version": "2.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/instantiator.git",
- "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
- "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
- "shasum": ""
- },
- "require": {
- "php": "^8.1"
- },
- "require-dev": {
- "doctrine/coding-standard": "^11",
- "ext-pdo": "*",
- "ext-phar": "*",
- "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": {
- "psr-4": {
- "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com",
- "homepage": "https://ocramius.github.io/"
- }
- ],
- "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
- "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
- "keywords": [
- "constructor",
- "instantiate"
- ],
- "support": {
- "issues": "https://github.com/doctrine/instantiator/issues",
- "source": "https://github.com/doctrine/instantiator/tree/2.0.0"
- },
- "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%2Finstantiator",
- "type": "tidelift"
- }
- ],
- "time": "2022-12-30T00:23:10+00:00"
- },
{
"name": "felixfbecker/language-server-protocol",
"version": "v1.5.3",
@@ -2694,20 +2624,20 @@
},
{
"name": "laminas/laminas-diactoros",
- "version": "3.7.0",
+ "version": "3.8.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-diactoros.git",
- "reference": "b6a3b5bebb1a124f6e4ae22f3571ac83dee4b07d"
+ "reference": "60c182916b2749480895601649563970f3f12ec4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/b6a3b5bebb1a124f6e4ae22f3571ac83dee4b07d",
- "reference": "b6a3b5bebb1a124f6e4ae22f3571ac83dee4b07d",
+ "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/60c182916b2749480895601649563970f3f12ec4",
+ "reference": "60c182916b2749480895601649563970f3f12ec4",
"shasum": ""
},
"require": {
- "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0",
+ "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0",
"psr/http-factory": "^1.1",
"psr/http-message": "^1.1 || ^2.0"
},
@@ -2778,26 +2708,26 @@
"type": "community_bridge"
}
],
- "time": "2025-10-11T18:30:50+00:00"
+ "time": "2025-10-12T15:31:36+00:00"
},
{
"name": "laminas/laminas-servicemanager",
- "version": "4.4.0",
+ "version": "4.5.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-servicemanager.git",
- "reference": "74da44d07e493b834347123242d0047976fb9932"
+ "reference": "a6996829c8ce55025cca1b57b1e8a8b165e3926c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/74da44d07e493b834347123242d0047976fb9932",
- "reference": "74da44d07e493b834347123242d0047976fb9932",
+ "url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/a6996829c8ce55025cca1b57b1e8a8b165e3926c",
+ "reference": "a6996829c8ce55025cca1b57b1e8a8b165e3926c",
"shasum": ""
},
"require": {
- "brick/varexporter": "^0.3.8 || ^0.4.0 || ^0.5.0",
+ "brick/varexporter": "^0.3.8 || ^0.4.0 || ^0.5.0 || ^0.6.0",
"laminas/laminas-stdlib": "^3.19",
- "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0",
+ "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0",
"psr/container": "^1.1 || ^2.0"
},
"conflict": {
@@ -2811,14 +2741,14 @@
"composer/package-versions-deprecated": "^1.11.99.5",
"friendsofphp/proxy-manager-lts": "^1.0.18",
"laminas/laminas-cli": "^1.11",
- "laminas/laminas-coding-standard": "~3.0.1",
- "laminas/laminas-container-config-test": "^1.0",
+ "laminas/laminas-coding-standard": "~3.1.0",
+ "laminas/laminas-container-config-test": "^1.1",
"mikey179/vfsstream": "^1.6.12",
- "phpbench/phpbench": "^1.4.0",
- "phpunit/phpunit": "^10.5.44",
- "psalm/plugin-phpunit": "^0.19.2",
- "symfony/console": "^6.4.17 || ^7.0",
- "vimeo/psalm": "^6.2.0"
+ "phpbench/phpbench": "^1.4.1",
+ "phpunit/phpunit": "^10.5.58",
+ "psalm/plugin-phpunit": "^0.19.5",
+ "symfony/console": "^6.4.17 || ^7.3.4",
+ "vimeo/psalm": "^6.13.1"
},
"suggest": {
"friendsofphp/proxy-manager-lts": "To handle lazy initialization of services",
@@ -2855,7 +2785,7 @@
"chat": "https://laminas.dev/chat",
"forum": "https://discourse.laminas.dev",
"issues": "https://github.com/laminas/laminas-servicemanager/issues",
- "source": "https://github.com/laminas/laminas-servicemanager/tree/4.4.0"
+ "source": "https://github.com/laminas/laminas-servicemanager/tree/4.5.0"
},
"funding": [
{
@@ -2863,34 +2793,34 @@
"type": "community_bridge"
}
],
- "time": "2025-02-04T06:13:50+00:00"
+ "time": "2025-10-14T09:41:04+00:00"
},
{
"name": "laminas/laminas-stdlib",
- "version": "3.20.0",
+ "version": "3.21.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-stdlib.git",
- "reference": "8974a1213be42c3e2f70b2c27b17f910291ab2f4"
+ "reference": "b1c81514cfe158aadf724c42b34d3d0a8164c096"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/8974a1213be42c3e2f70b2c27b17f910291ab2f4",
- "reference": "8974a1213be42c3e2f70b2c27b17f910291ab2f4",
+ "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/b1c81514cfe158aadf724c42b34d3d0a8164c096",
+ "reference": "b1c81514cfe158aadf724c42b34d3d0a8164c096",
"shasum": ""
},
"require": {
- "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0"
+ "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0"
},
"conflict": {
"zendframework/zend-stdlib": "*"
},
"require-dev": {
- "laminas/laminas-coding-standard": "^3.0",
- "phpbench/phpbench": "^1.3.1",
- "phpunit/phpunit": "^10.5.38",
- "psalm/plugin-phpunit": "^0.19.0",
- "vimeo/psalm": "^5.26.1"
+ "laminas/laminas-coding-standard": "^3.1.0",
+ "phpbench/phpbench": "^1.4.1",
+ "phpunit/phpunit": "^11.5.42",
+ "psalm/plugin-phpunit": "^0.19.5",
+ "vimeo/psalm": "^6.13.1"
},
"type": "library",
"autoload": {
@@ -2922,7 +2852,7 @@
"type": "community_bridge"
}
],
- "time": "2024-10-29T13:46:07+00:00"
+ "time": "2025-10-11T18:13:12+00:00"
},
{
"name": "myclabs/deep-copy",
@@ -3435,35 +3365,35 @@
},
{
"name": "phpunit/php-code-coverage",
- "version": "9.2.32",
+ "version": "11.0.11",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5"
+ "reference": "4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5",
- "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4",
+ "reference": "4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^4.19.1 || ^5.1.0",
- "php": ">=7.3",
- "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",
+ "nikic/php-parser": "^5.4.0",
+ "php": ">=8.2",
+ "phpunit/php-file-iterator": "^5.1.0",
+ "phpunit/php-text-template": "^4.0.1",
+ "sebastian/code-unit-reverse-lookup": "^4.0.1",
+ "sebastian/complexity": "^4.0.1",
+ "sebastian/environment": "^7.2.0",
+ "sebastian/lines-of-code": "^3.0.1",
+ "sebastian/version": "^5.0.2",
"theseer/tokenizer": "^1.2.3"
},
"require-dev": {
- "phpunit/phpunit": "^9.6"
+ "phpunit/phpunit": "^11.5.2"
},
"suggest": {
"ext-pcov": "PHP extension that provides line coverage",
@@ -3472,7 +3402,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "9.2.x-dev"
+ "dev-main": "11.0.x-dev"
}
},
"autoload": {
@@ -3501,40 +3431,52 @@
"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.32"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.11"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/php-code-coverage",
+ "type": "tidelift"
}
],
- "time": "2024-08-22T04:23:01+00:00"
+ "time": "2025-08-27T14:37:49+00:00"
},
{
"name": "phpunit/php-file-iterator",
- "version": "3.0.6",
+ "version": "5.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
+ "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
- "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/118cfaaa8bc5aef3287bf315b6060b1174754af6",
+ "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -3561,7 +3503,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
- "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
+ "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.0"
},
"funding": [
{
@@ -3569,28 +3512,28 @@
"type": "github"
}
],
- "time": "2021-12-02T12:48:52+00:00"
+ "time": "2024-08-27T05:02:59+00:00"
},
{
"name": "phpunit/php-invoker",
- "version": "3.1.1",
+ "version": "5.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-invoker.git",
- "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
+ "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
- "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2",
+ "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
"ext-pcntl": "*",
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"suggest": {
"ext-pcntl": "*"
@@ -3598,7 +3541,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.1-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -3624,7 +3567,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-invoker/issues",
- "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
+ "security": "https://github.com/sebastianbergmann/php-invoker/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1"
},
"funding": [
{
@@ -3632,32 +3576,32 @@
"type": "github"
}
],
- "time": "2020-09-28T05:58:55+00:00"
+ "time": "2024-07-03T05:07:44+00:00"
},
{
"name": "phpunit/php-text-template",
- "version": "2.0.4",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
+ "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
- "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964",
+ "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -3683,7 +3627,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-text-template/issues",
- "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
+ "security": "https://github.com/sebastianbergmann/php-text-template/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1"
},
"funding": [
{
@@ -3691,32 +3636,32 @@
"type": "github"
}
],
- "time": "2020-10-26T05:33:50+00:00"
+ "time": "2024-07-03T05:08:43+00:00"
},
{
"name": "phpunit/php-timer",
- "version": "5.0.3",
+ "version": "7.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
+ "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
- "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3",
+ "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.0-dev"
+ "dev-main": "7.0-dev"
}
},
"autoload": {
@@ -3742,7 +3687,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-timer/issues",
- "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
+ "security": "https://github.com/sebastianbergmann/php-timer/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1"
},
"funding": [
{
@@ -3750,24 +3696,23 @@
"type": "github"
}
],
- "time": "2020-10-26T13:16:10+00:00"
+ "time": "2024-07-03T05:09:35+00:00"
},
{
"name": "phpunit/phpunit",
- "version": "9.6.29",
+ "version": "11.5.42",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "9ecfec57835a5581bc888ea7e13b51eb55ab9dd3"
+ "reference": "1c6cb5dfe412af3d0dfd414cfd110e3b9cfdbc3c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9ecfec57835a5581bc888ea7e13b51eb55ab9dd3",
- "reference": "9ecfec57835a5581bc888ea7e13b51eb55ab9dd3",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1c6cb5dfe412af3d0dfd414cfd110e3b9cfdbc3c",
+ "reference": "1c6cb5dfe412af3d0dfd414cfd110e3b9cfdbc3c",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.5.0 || ^2",
"ext-dom": "*",
"ext-json": "*",
"ext-libxml": "*",
@@ -3777,27 +3722,26 @@
"myclabs/deep-copy": "^1.13.4",
"phar-io/manifest": "^2.0.4",
"phar-io/version": "^3.2.1",
- "php": ">=7.3",
- "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.4",
- "phpunit/php-timer": "^5.0.3",
- "sebastian/cli-parser": "^1.0.2",
- "sebastian/code-unit": "^1.0.8",
- "sebastian/comparator": "^4.0.9",
- "sebastian/diff": "^4.0.6",
- "sebastian/environment": "^5.1.5",
- "sebastian/exporter": "^4.0.8",
- "sebastian/global-state": "^5.0.8",
- "sebastian/object-enumerator": "^4.0.4",
- "sebastian/resource-operations": "^3.0.4",
- "sebastian/type": "^3.2.1",
- "sebastian/version": "^3.0.2"
+ "php": ">=8.2",
+ "phpunit/php-code-coverage": "^11.0.11",
+ "phpunit/php-file-iterator": "^5.1.0",
+ "phpunit/php-invoker": "^5.0.1",
+ "phpunit/php-text-template": "^4.0.1",
+ "phpunit/php-timer": "^7.0.1",
+ "sebastian/cli-parser": "^3.0.2",
+ "sebastian/code-unit": "^3.0.3",
+ "sebastian/comparator": "^6.3.2",
+ "sebastian/diff": "^6.0.2",
+ "sebastian/environment": "^7.2.1",
+ "sebastian/exporter": "^6.3.2",
+ "sebastian/global-state": "^7.0.2",
+ "sebastian/object-enumerator": "^6.0.1",
+ "sebastian/type": "^5.1.3",
+ "sebastian/version": "^5.0.2",
+ "staabm/side-effects-detector": "^1.0.5"
},
"suggest": {
- "ext-soap": "To be able to generate mocks based on WSDL files",
- "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ "ext-soap": "To be able to generate mocks based on WSDL files"
},
"bin": [
"phpunit"
@@ -3805,7 +3749,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "9.6-dev"
+ "dev-main": "11.5-dev"
}
},
"autoload": {
@@ -3837,7 +3781,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.29"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.42"
},
"funding": [
{
@@ -3861,7 +3805,7 @@
"type": "tidelift"
}
],
- "time": "2025-09-24T06:29:11+00:00"
+ "time": "2025-09-28T12:09:13+00:00"
},
{
"name": "psalm/plugin-phpunit",
@@ -4045,28 +3989,28 @@
},
{
"name": "sebastian/cli-parser",
- "version": "1.0.2",
+ "version": "3.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b"
+ "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
- "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180",
+ "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -4089,7 +4033,8 @@
"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.2"
+ "security": "https://github.com/sebastianbergmann/cli-parser/security/policy",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2"
},
"funding": [
{
@@ -4097,32 +4042,32 @@
"type": "github"
}
],
- "time": "2024-03-02T06:27:43+00:00"
+ "time": "2024-07-03T04:41:36+00:00"
},
{
"name": "sebastian/code-unit",
- "version": "1.0.8",
+ "version": "3.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit.git",
- "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
+ "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
- "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64",
+ "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -4145,7 +4090,8 @@
"homepage": "https://github.com/sebastianbergmann/code-unit",
"support": {
"issues": "https://github.com/sebastianbergmann/code-unit/issues",
- "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
+ "security": "https://github.com/sebastianbergmann/code-unit/security/policy",
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3"
},
"funding": [
{
@@ -4153,32 +4099,32 @@
"type": "github"
}
],
- "time": "2020-10-26T13:08:54+00:00"
+ "time": "2025-03-19T07:56:08+00:00"
},
{
"name": "sebastian/code-unit-reverse-lookup",
- "version": "2.0.3",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
+ "reference": "183a9b2632194febd219bb9246eee421dad8d45e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
- "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e",
+ "reference": "183a9b2632194febd219bb9246eee421dad8d45e",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -4200,7 +4146,8 @@
"homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
"support": {
"issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
- "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
+ "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy",
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1"
},
"funding": [
{
@@ -4208,34 +4155,39 @@
"type": "github"
}
],
- "time": "2020-09-28T05:30:19+00:00"
+ "time": "2024-07-03T04:45:54+00:00"
},
{
"name": "sebastian/comparator",
- "version": "4.0.9",
+ "version": "6.3.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "67a2df3a62639eab2cc5906065e9805d4fd5dfc5"
+ "reference": "85c77556683e6eee4323e4c5468641ca0237e2e8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/67a2df3a62639eab2cc5906065e9805d4fd5dfc5",
- "reference": "67a2df3a62639eab2cc5906065e9805d4fd5dfc5",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/85c77556683e6eee4323e4c5468641ca0237e2e8",
+ "reference": "85c77556683e6eee4323e4c5468641ca0237e2e8",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/diff": "^4.0",
- "sebastian/exporter": "^4.0"
+ "ext-dom": "*",
+ "ext-mbstring": "*",
+ "php": ">=8.2",
+ "sebastian/diff": "^6.0",
+ "sebastian/exporter": "^6.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.4"
+ },
+ "suggest": {
+ "ext-bcmath": "For comparing BcMath\\Number objects"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "6.3-dev"
}
},
"autoload": {
@@ -4274,7 +4226,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues",
- "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.9"
+ "security": "https://github.com/sebastianbergmann/comparator/security/policy",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.2"
},
"funding": [
{
@@ -4294,33 +4247,33 @@
"type": "tidelift"
}
],
- "time": "2025-08-10T06:51:50+00:00"
+ "time": "2025-08-10T08:07:46+00:00"
},
{
"name": "sebastian/complexity",
- "version": "2.0.3",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a"
+ "reference": "ee41d384ab1906c68852636b6de493846e13e5a0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a",
- "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0",
+ "reference": "ee41d384ab1906c68852636b6de493846e13e5a0",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.18 || ^5.0",
- "php": ">=7.3"
+ "nikic/php-parser": "^5.0",
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -4343,7 +4296,8 @@
"homepage": "https://github.com/sebastianbergmann/complexity",
"support": {
"issues": "https://github.com/sebastianbergmann/complexity/issues",
- "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3"
+ "security": "https://github.com/sebastianbergmann/complexity/security/policy",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1"
},
"funding": [
{
@@ -4351,33 +4305,33 @@
"type": "github"
}
],
- "time": "2023-12-22T06:19:30+00:00"
+ "time": "2024-07-03T04:49:50+00:00"
},
{
"name": "sebastian/diff",
- "version": "4.0.6",
+ "version": "6.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc"
+ "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc",
- "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544",
+ "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3",
+ "phpunit/phpunit": "^11.0",
"symfony/process": "^4.2 || ^5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -4409,7 +4363,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
- "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6"
+ "security": "https://github.com/sebastianbergmann/diff/security/policy",
+ "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2"
},
"funding": [
{
@@ -4417,27 +4372,27 @@
"type": "github"
}
],
- "time": "2024-03-02T06:30:58+00:00"
+ "time": "2024-07-03T04:53:05+00:00"
},
{
"name": "sebastian/environment",
- "version": "5.1.5",
+ "version": "7.2.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
+ "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
- "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4",
+ "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.3"
},
"suggest": {
"ext-posix": "*"
@@ -4445,7 +4400,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.1-dev"
+ "dev-main": "7.2-dev"
}
},
"autoload": {
@@ -4464,7 +4419,7 @@
}
],
"description": "Provides functionality to handle HHVM/PHP environments",
- "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "homepage": "https://github.com/sebastianbergmann/environment",
"keywords": [
"Xdebug",
"environment",
@@ -4472,42 +4427,55 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/environment/issues",
- "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5"
+ "security": "https://github.com/sebastianbergmann/environment/security/policy",
+ "source": "https://github.com/sebastianbergmann/environment/tree/7.2.1"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/environment",
+ "type": "tidelift"
}
],
- "time": "2023-02-03T06:03:51+00:00"
+ "time": "2025-05-21T11:55:47+00:00"
},
{
"name": "sebastian/exporter",
- "version": "4.0.8",
+ "version": "6.3.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c"
+ "reference": "70a298763b40b213ec087c51c739efcaa90bcd74"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/14c6ba52f95a36c3d27c835d65efc7123c446e8c",
- "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/70a298763b40b213ec087c51c739efcaa90bcd74",
+ "reference": "70a298763b40b213ec087c51c739efcaa90bcd74",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/recursion-context": "^4.0"
+ "ext-mbstring": "*",
+ "php": ">=8.2",
+ "sebastian/recursion-context": "^6.0"
},
"require-dev": {
- "ext-mbstring": "*",
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "6.3-dev"
}
},
"autoload": {
@@ -4549,7 +4517,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.8"
+ "security": "https://github.com/sebastianbergmann/exporter/security/policy",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.2"
},
"funding": [
{
@@ -4569,38 +4538,35 @@
"type": "tidelift"
}
],
- "time": "2025-09-24T06:03:27+00:00"
+ "time": "2025-09-24T06:12:51+00:00"
},
{
"name": "sebastian/global-state",
- "version": "5.0.8",
+ "version": "7.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6"
+ "reference": "3be331570a721f9a4b5917f4209773de17f747d7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b6781316bdcd28260904e7cc18ec983d0d2ef4f6",
- "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7",
+ "reference": "3be331570a721f9a4b5917f4209773de17f747d7",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/object-reflector": "^2.0",
- "sebastian/recursion-context": "^4.0"
+ "php": ">=8.2",
+ "sebastian/object-reflector": "^4.0",
+ "sebastian/recursion-context": "^6.0"
},
"require-dev": {
"ext-dom": "*",
- "phpunit/phpunit": "^9.3"
- },
- "suggest": {
- "ext-uopz": "*"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.0-dev"
+ "dev-main": "7.0-dev"
}
},
"autoload": {
@@ -4619,59 +4585,48 @@
}
],
"description": "Snapshotting of global state",
- "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "homepage": "https://www.github.com/sebastianbergmann/global-state",
"keywords": [
"global state"
],
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
- "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.8"
+ "security": "https://github.com/sebastianbergmann/global-state/security/policy",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
- },
- {
- "url": "https://liberapay.com/sebastianbergmann",
- "type": "liberapay"
- },
- {
- "url": "https://thanks.dev/u/gh/sebastianbergmann",
- "type": "thanks_dev"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state",
- "type": "tidelift"
}
],
- "time": "2025-08-10T07:10:35+00:00"
+ "time": "2024-07-03T04:57:36+00:00"
},
{
"name": "sebastian/lines-of-code",
- "version": "1.0.4",
+ "version": "3.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5"
+ "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5",
- "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a",
+ "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.18 || ^5.0",
- "php": ">=7.3"
+ "nikic/php-parser": "^5.0",
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -4694,7 +4649,8 @@
"homepage": "https://github.com/sebastianbergmann/lines-of-code",
"support": {
"issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
- "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4"
+ "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1"
},
"funding": [
{
@@ -4702,34 +4658,34 @@
"type": "github"
}
],
- "time": "2023-12-22T06:20:34+00:00"
+ "time": "2024-07-03T04:58:38+00:00"
},
{
"name": "sebastian/object-enumerator",
- "version": "4.0.4",
+ "version": "6.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
+ "reference": "f5b498e631a74204185071eb41f33f38d64608aa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
- "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa",
+ "reference": "f5b498e631a74204185071eb41f33f38d64608aa",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/object-reflector": "^2.0",
- "sebastian/recursion-context": "^4.0"
+ "php": ">=8.2",
+ "sebastian/object-reflector": "^4.0",
+ "sebastian/recursion-context": "^6.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -4751,7 +4707,8 @@
"homepage": "https://github.com/sebastianbergmann/object-enumerator/",
"support": {
"issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
- "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
+ "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy",
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1"
},
"funding": [
{
@@ -4759,32 +4716,32 @@
"type": "github"
}
],
- "time": "2020-10-26T13:12:34+00:00"
+ "time": "2024-07-03T05:00:13+00:00"
},
{
"name": "sebastian/object-reflector",
- "version": "2.0.4",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
+ "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
- "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9",
+ "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -4806,7 +4763,8 @@
"homepage": "https://github.com/sebastianbergmann/object-reflector/",
"support": {
"issues": "https://github.com/sebastianbergmann/object-reflector/issues",
- "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
+ "security": "https://github.com/sebastianbergmann/object-reflector/security/policy",
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1"
},
"funding": [
{
@@ -4814,32 +4772,32 @@
"type": "github"
}
],
- "time": "2020-10-26T13:14:26+00:00"
+ "time": "2024-07-03T05:01:32+00:00"
},
{
"name": "sebastian/recursion-context",
- "version": "4.0.6",
+ "version": "6.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "539c6691e0623af6dc6f9c20384c120f963465a0"
+ "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/539c6691e0623af6dc6f9c20384c120f963465a0",
- "reference": "539c6691e0623af6dc6f9c20384c120f963465a0",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/f6458abbf32a6c8174f8f26261475dc133b3d9dc",
+ "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^11.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -4869,7 +4827,8 @@
"homepage": "https://github.com/sebastianbergmann/recursion-context",
"support": {
"issues": "https://github.com/sebastianbergmann/recursion-context/issues",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.6"
+ "security": "https://github.com/sebastianbergmann/recursion-context/security/policy",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.3"
},
"funding": [
{
@@ -4889,86 +4848,32 @@
"type": "tidelift"
}
],
- "time": "2025-08-10T06:57:39+00:00"
- },
- {
- "name": "sebastian/resource-operations",
- "version": "3.0.4",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
- "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
- "shasum": ""
- },
- "require": {
- "php": ">=7.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Provides a list of PHP built-in functions that operate on resources",
- "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
- "support": {
- "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-03-14T16:00:52+00:00"
+ "time": "2025-08-13T04:42:22+00:00"
},
{
"name": "sebastian/type",
- "version": "3.2.1",
+ "version": "5.1.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
+ "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
- "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/f77d2d4e78738c98d9a68d2596fe5e8fa380f449",
+ "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^9.5"
+ "phpunit/phpunit": "^11.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.2-dev"
+ "dev-main": "5.1-dev"
}
},
"autoload": {
@@ -4991,37 +4896,50 @@
"homepage": "https://github.com/sebastianbergmann/type",
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
- "source": "https://github.com/sebastianbergmann/type/tree/3.2.1"
+ "security": "https://github.com/sebastianbergmann/type/security/policy",
+ "source": "https://github.com/sebastianbergmann/type/tree/5.1.3"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/type",
+ "type": "tidelift"
}
],
- "time": "2023-02-03T06:13:03+00:00"
+ "time": "2025-08-09T06:55:48+00:00"
},
{
"name": "sebastian/version",
- "version": "3.0.2",
+ "version": "5.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/version.git",
- "reference": "c6c1022351a901512170118436c764e473f6de8c"
+ "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
- "reference": "c6c1022351a901512170118436c764e473f6de8c",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874",
+ "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.2"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -5044,7 +4962,8 @@
"homepage": "https://github.com/sebastianbergmann/version",
"support": {
"issues": "https://github.com/sebastianbergmann/version/issues",
- "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
+ "security": "https://github.com/sebastianbergmann/version/security/policy",
+ "source": "https://github.com/sebastianbergmann/version/tree/5.0.2"
},
"funding": [
{
@@ -5052,7 +4971,7 @@
"type": "github"
}
],
- "time": "2020-09-28T06:39:44+00:00"
+ "time": "2024-10-09T05:16:32+00:00"
},
{
"name": "slevomat/coding-standard",
@@ -5271,49 +5190,101 @@
],
"time": "2025-09-05T05:47:09+00:00"
},
+ {
+ "name": "staabm/side-effects-detector",
+ "version": "1.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/staabm/side-effects-detector.git",
+ "reference": "d8334211a140ce329c13726d4a715adbddd0a163"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163",
+ "reference": "d8334211a140ce329c13726d4a715adbddd0a163",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/extension-installer": "^1.4.3",
+ "phpstan/phpstan": "^1.12.6",
+ "phpunit/phpunit": "^9.6.21",
+ "symfony/var-dumper": "^5.4.43",
+ "tomasvotruba/type-coverage": "1.0.0",
+ "tomasvotruba/unused-public": "1.0.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "lib/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A static analysis tool to detect side effects in PHP code",
+ "keywords": [
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/staabm/side-effects-detector/issues",
+ "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/staabm",
+ "type": "github"
+ }
+ ],
+ "time": "2024-10-20T05:08:20+00:00"
+ },
{
"name": "symfony/console",
- "version": "v6.4.26",
+ "version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "492de6dfd93910d7d7a729c5a04ddcd2b9e99c4f"
+ "reference": "2b9c5fafbac0399a20a2e82429e2bd735dcfb7db"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/492de6dfd93910d7d7a729c5a04ddcd2b9e99c4f",
- "reference": "492de6dfd93910d7d7a729c5a04ddcd2b9e99c4f",
+ "url": "https://api.github.com/repos/symfony/console/zipball/2b9c5fafbac0399a20a2e82429e2bd735dcfb7db",
+ "reference": "2b9c5fafbac0399a20a2e82429e2bd735dcfb7db",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/string": "^5.4|^6.0|^7.0"
+ "symfony/string": "^7.2"
},
"conflict": {
- "symfony/dependency-injection": "<5.4",
- "symfony/dotenv": "<5.4",
- "symfony/event-dispatcher": "<5.4",
- "symfony/lock": "<5.4",
- "symfony/process": "<5.4"
+ "symfony/dependency-injection": "<6.4",
+ "symfony/dotenv": "<6.4",
+ "symfony/event-dispatcher": "<6.4",
+ "symfony/lock": "<6.4",
+ "symfony/process": "<6.4"
},
"provide": {
"psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "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/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^6.4|^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"
+ "symfony/lock": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/stopwatch": "^6.4|^7.0",
+ "symfony/var-dumper": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -5347,7 +5318,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v6.4.26"
+ "source": "https://github.com/symfony/console/tree/v7.3.4"
},
"funding": [
{
@@ -5367,7 +5338,7 @@
"type": "tidelift"
}
],
- "time": "2025-09-26T12:13:46+00:00"
+ "time": "2025-09-22T15:31:00+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -5438,25 +5409,25 @@
},
{
"name": "symfony/filesystem",
- "version": "v6.4.24",
+ "version": "v7.3.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "75ae2edb7cdcc0c53766c30b0a2512b8df574bd8"
+ "reference": "edcbb768a186b5c3f25d0643159a787d3e63b7fd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/75ae2edb7cdcc0c53766c30b0a2512b8df574bd8",
- "reference": "75ae2edb7cdcc0c53766c30b0a2512b8df574bd8",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/edcbb768a186b5c3f25d0643159a787d3e63b7fd",
+ "reference": "edcbb768a186b5c3f25d0643159a787d3e63b7fd",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.8"
},
"require-dev": {
- "symfony/process": "^5.4|^6.4|^7.0"
+ "symfony/process": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -5484,7 +5455,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v6.4.24"
+ "source": "https://github.com/symfony/filesystem/tree/v7.3.2"
},
"funding": [
{
@@ -5504,7 +5475,7 @@
"type": "tidelift"
}
],
- "time": "2025-07-10T08:14:14+00:00"
+ "time": "2025-07-07T08:17:47+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -6006,20 +5977,20 @@
},
{
"name": "symfony/string",
- "version": "v6.4.26",
+ "version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "5621f039a71a11c87c106c1c598bdcd04a19aeea"
+ "reference": "f96476035142921000338bad71e5247fbc138872"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/5621f039a71a11c87c106c1c598bdcd04a19aeea",
- "reference": "5621f039a71a11c87c106c1c598bdcd04a19aeea",
+ "url": "https://api.github.com/repos/symfony/string/zipball/f96476035142921000338bad71e5247fbc138872",
+ "reference": "f96476035142921000338bad71e5247fbc138872",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-grapheme": "~1.0",
"symfony/polyfill-intl-normalizer": "~1.0",
@@ -6029,10 +6000,11 @@
"symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "symfony/http-client": "^5.4|^6.0|^7.0",
- "symfony/intl": "^6.2|^7.0",
+ "symfony/emoji": "^7.1",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/intl": "^6.4|^7.0",
"symfony/translation-contracts": "^2.5|^3.0",
- "symfony/var-exporter": "^5.4|^6.0|^7.0"
+ "symfony/var-exporter": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -6071,7 +6043,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.4.26"
+ "source": "https://github.com/symfony/string/tree/v7.3.4"
},
"funding": [
{
@@ -6091,7 +6063,7 @@
"type": "tidelift"
}
],
- "time": "2025-09-11T14:32:46+00:00"
+ "time": "2025-09-11T14:36:48+00:00"
},
{
"name": "theseer/tokenizer",
@@ -6323,11 +6295,11 @@
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
- "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0"
+ "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0"
},
"platform-dev": {},
"platform-overrides": {
- "php": "8.1.99"
+ "php": "8.2.99"
},
"plugin-api-version": "2.6.0"
}
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
index 58e684f..cc28bc7 100644
--- a/phpunit.xml.dist
+++ b/phpunit.xml.dist
@@ -2,16 +2,19 @@
-
-
- ./src
-
-
-
-
- ./test
-
-
+ displayDetailsOnAllIssues="true"
+ failOnAllIssues="true"
+>
+
+
+ ./test
+
+
+
+
+ ./src
+
+
diff --git a/psalm-baseline.xml b/psalm-baseline.xml
index 93ad175..10b26d6 100644
--- a/psalm-baseline.xml
+++ b/psalm-baseline.xml
@@ -272,6 +272,11 @@
get(PdoService::class)]]>
+
+
+
+
+
diff --git a/src/Repository/Pdo/PdoService.php b/src/Repository/Pdo/PdoService.php
index 9acbc54..b7a9d0c 100644
--- a/src/Repository/Pdo/PdoService.php
+++ b/src/Repository/Pdo/PdoService.php
@@ -6,7 +6,6 @@
use PDO;
-/** @final */
class PdoService extends PDO
{
}
diff --git a/test/AuthorizationHandlerFactoryTest.php b/test/AuthorizationHandlerFactoryTest.php
index 0200438..24c0839 100644
--- a/test/AuthorizationHandlerFactoryTest.php
+++ b/test/AuthorizationHandlerFactoryTest.php
@@ -9,6 +9,7 @@
use Mezzio\Authentication\OAuth2\AuthorizationHandler;
use Mezzio\Authentication\OAuth2\AuthorizationHandlerFactory;
use Mezzio\Authentication\OAuth2\ConfigProvider;
+use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
use Psr\Container\ContainerInterface;
@@ -17,19 +18,14 @@
use stdClass;
use TypeError;
-/**
- * @covers \Mezzio\Authentication\OAuth2\AuthorizationHandlerFactory
- */
+#[CoversClass(AuthorizationHandlerFactory::class)]
final class AuthorizationHandlerFactoryTest extends TestCase
{
- /** @var AuthorizationServer&MockObject */
- private AuthorizationServer $authServer;
+ private MockObject&AuthorizationServer $authServer;
- /** @var ContainerInterface&MockObject */
- private ContainerInterface $container;
+ private MockObject&ContainerInterface $container;
- /** @var ResponseInterface&MockObject */
- private ResponseInterface $response;
+ private MockObject&ResponseInterface $response;
protected function setUp(): void
{
@@ -54,7 +50,7 @@ public function testRaisesTypeErrorForInvalidAuthorizationServer(): void
->method('get')
->willReturnMap([
[AuthorizationServer::class, new stdClass()],
- [ResponseInterface::class, fn () => null],
+ [ResponseInterface::class, static fn () => null],
]);
$factory = new AuthorizationHandlerFactory();
diff --git a/test/AuthorizationHandlerTest.php b/test/AuthorizationHandlerTest.php
index 200243e..230ee6c 100644
--- a/test/AuthorizationHandlerTest.php
+++ b/test/AuthorizationHandlerTest.php
@@ -7,15 +7,14 @@
use League\OAuth2\Server\AuthorizationServer;
use League\OAuth2\Server\RequestTypes\AuthorizationRequest;
use Mezzio\Authentication\OAuth2\AuthorizationHandler;
+use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\TestCase;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use stdClass;
use TypeError;
-/**
- * @covers \Mezzio\Authentication\OAuth2\AuthorizationHandler
- */
+#[CoversClass(AuthorizationHandler::class)]
final class AuthorizationHandlerTest extends TestCase
{
public function testHandleUsesAuthorizationServerService(): void
diff --git a/test/AuthorizationMiddlewareFactoryTest.php b/test/AuthorizationMiddlewareFactoryTest.php
index 8490842..e4d32df 100644
--- a/test/AuthorizationMiddlewareFactoryTest.php
+++ b/test/AuthorizationMiddlewareFactoryTest.php
@@ -6,6 +6,7 @@
use League\OAuth2\Server\AuthorizationServer;
use Mezzio\Authentication\OAuth2\AuthorizationMiddlewareFactory;
+use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
use Psr\Container\ContainerInterface;
@@ -14,19 +15,14 @@
use stdClass;
use TypeError;
-/**
- * @covers \Mezzio\Authentication\OAuth2\AuthorizationMiddlewareFactory
- */
+#[CoversClass(AuthorizationMiddlewareFactory::class)]
final class AuthorizationMiddlewareFactoryTest extends TestCase
{
- /** @var AuthorizationServer&MockObject */
- private AuthorizationServer $authServer;
+ private MockObject&AuthorizationServer $authServer;
- /** @var ContainerInterface&MockObject */
- private ContainerInterface $container;
+ private MockObject&ContainerInterface $container;
- /** @var ResponseInterface&MockObject */
- private ResponseInterface $response;
+ private MockObject&ResponseInterface $response;
protected function setUp(): void
{
@@ -50,7 +46,7 @@ public function testRaisesTypeErrorForInvalidAuthorizationServer(): void
->method('get')
->willReturnMap([
[AuthorizationServer::class, new stdClass()],
- [ResponseInterface::class, fn () => null],
+ [ResponseInterface::class, static fn () => null],
]);
$factory = new AuthorizationMiddlewareFactory();
diff --git a/test/AuthorizationMiddlewareTest.php b/test/AuthorizationMiddlewareTest.php
index 7307586..b5ce9ce 100644
--- a/test/AuthorizationMiddlewareTest.php
+++ b/test/AuthorizationMiddlewareTest.php
@@ -19,23 +19,18 @@
final class AuthorizationMiddlewareTest extends TestCase
{
- /** @var AuthorizationRequest&MockObject */
- private AuthorizationRequest $authRequest;
+ private MockObject&AuthorizationRequest $authRequest;
- /** @var AuthorizationServer&MockObject */
- private AuthorizationServer $authServer;
+ private MockObject&AuthorizationServer $authServer;
- /** @var RequestHandlerInterface&MockObject */
- private RequestHandlerInterface $handler;
+ private MockObject&RequestHandlerInterface $handler;
- /** @var ResponseInterface&MockObject */
- private ResponseInterface $response;
+ private MockObject&ResponseInterface $response;
/** @var callable(): ResponseInterface */
private $responseFactory;
- /** @var ServerRequestInterface&MockObject */
- private ServerRequestInterface $serverRequest;
+ private MockObject&ServerRequestInterface $serverRequest;
protected function setUp(): void
{
diff --git a/test/AuthorizationServerFactoryTest.php b/test/AuthorizationServerFactoryTest.php
index 9ade172..c587704 100644
--- a/test/AuthorizationServerFactoryTest.php
+++ b/test/AuthorizationServerFactoryTest.php
@@ -27,7 +27,11 @@ public function testInvoke(): void
$mockAccessTokenRepo = $this->createMock(AccessTokenRepositoryInterface::class);
$mockScopeRepo = $this->createMock(ScopeRepositoryInterface::class);
$mockClientGrant = $this->createMock(ClientCredentialsGrant::class);
- $mockPasswordGrant = $this->createMock(PasswordGrant::class);
+ $mockClientGrant->method('getIdentifier')
+ ->willReturn('client_credentials');
+ $mockPasswordGrant = $this->createMock(PasswordGrant::class);
+ $mockPasswordGrant->method('getIdentifier')
+ ->willReturn('password');
$config = [
'authentication' => [
@@ -62,7 +66,11 @@ private function getContainerMock(): InMemoryContainer
$mockAccessTokenRepo = $this->createMock(AccessTokenRepositoryInterface::class);
$mockScopeRepo = $this->createMock(ScopeRepositoryInterface::class);
$mockClientGrant = $this->createMock(ClientCredentialsGrant::class);
- $mockPasswordGrant = $this->createMock(PasswordGrant::class);
+ $mockClientGrant->method('getIdentifier')
+ ->willReturn('client_credentials');
+ $mockPasswordGrant = $this->createMock(PasswordGrant::class);
+ $mockPasswordGrant->method('getIdentifier')
+ ->willReturn('password');
$container->set(ClientRepositoryInterface::class, $mockClientRepo);
$container->set(AccessTokenRepositoryInterface::class, $mockAccessTokenRepo);
diff --git a/test/OAuth2AdapterFactoryTest.php b/test/OAuth2AdapterFactoryTest.php
index 8f6a19b..5523dcb 100644
--- a/test/OAuth2AdapterFactoryTest.php
+++ b/test/OAuth2AdapterFactoryTest.php
@@ -20,17 +20,14 @@ final class OAuth2AdapterFactoryTest extends TestCase
{
private InMemoryContainer $container;
- /** @var ResourceServer&MockObject */
- private ResourceServer $resourceServer;
+ private MockObject&ResourceServer $resourceServer;
- /** @var ResponseInterface&MockObject */
- private ResponseInterface $response;
+ private MockObject&ResponseInterface $response;
/** @var callable(): ResponseInterface */
private $responseFactory;
- /** @var UserInterface&MockObject */
- private UserInterface $user;
+ private MockObject&UserInterface $user;
/** @var Closure(): UserInterface */
private Closure $userFactory;
diff --git a/test/Pdo/OAuth2PdoMiddlewareTest.php b/test/Pdo/OAuth2PdoMiddlewareTest.php
index a734ca5..589d1ca 100644
--- a/test/Pdo/OAuth2PdoMiddlewareTest.php
+++ b/test/Pdo/OAuth2PdoMiddlewareTest.php
@@ -29,6 +29,7 @@
use Mezzio\Authentication\OAuth2\Repository\Pdo\UserRepository;
use Mezzio\Authentication\OAuth2\TokenEndpointHandler;
use PDO;
+use PHPUnit\Framework\Attributes\Depends;
use PHPUnit\Framework\TestCase;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
@@ -339,9 +340,8 @@ public function testProcessGetAuthorizationCode(): string
* Test the Authorization Code Grant (Part Two)
*
* @see https://oauth2.thephpleague.com/authorization-server/auth-code-grant/
- *
- * @depends testProcessGetAuthorizationCode
*/
+ #[Depends('testProcessGetAuthorizationCode')]
public function testProcessFromAuthorizationCode(string $code): string
{
$grant = new AuthCodeGrant(
@@ -446,9 +446,8 @@ public function testProcessImplicitGrant(): void
* Test the Refresh Token Grant
*
* @see https://oauth2.thephpleague.com/authorization-server/refresh-token-grant/
- *
- * @depends testProcessFromAuthorizationCode
*/
+ #[Depends('testProcessFromAuthorizationCode')]
public function testProcessRefreshTokenGrant(string $refreshToken): void
{
$grant = new RefreshTokenGrant($this->refreshTokenRepository);
diff --git a/test/Psr17ResponseFactoryTraitTest.php b/test/Psr17ResponseFactoryTraitTest.php
index ac5fe6c..0fa4ca6 100644
--- a/test/Psr17ResponseFactoryTraitTest.php
+++ b/test/Psr17ResponseFactoryTraitTest.php
@@ -8,6 +8,7 @@
use Mezzio\Authentication\OAuth2\Response\CallableResponseFactoryDecorator;
use Mezzio\Container\ResponseFactoryFactory;
use MezzioTest\Authentication\OAuth2\TestAsset\Psr17ResponseFactoryTraitImplementation;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use Psr\Http\Message\ResponseFactoryInterface;
use Psr\Http\Message\ResponseInterface;
@@ -25,14 +26,14 @@ protected function setUp(): void
/**
* @psalm-return Generator}>
*/
- public function configurationsWithOverriddenResponseInterfaceFactory(): Generator
+ public static function configurationsWithOverriddenResponseInterfaceFactory(): Generator
{
yield 'default' => [
[
'dependencies' => [
'factories' => [
ResponseInterface::class
- => fn(): ResponseInterface => $this->createMock(ResponseInterface::class),
+ => static fn(): ResponseInterface => self::createStub(ResponseInterface::class),
],
],
],
@@ -53,7 +54,7 @@ public function configurationsWithOverriddenResponseInterfaceFactory(): Generato
'dependencies' => [
'delegators' => [
ResponseInterface::class => [
- fn(): ResponseInterface => $this->createMock(ResponseInterface::class),
+ static fn(): ResponseInterface => self::createStub(ResponseInterface::class),
],
],
],
@@ -79,9 +80,9 @@ public function testWillUseResponseFactoryInterfaceFromContainerWhenApplicationF
/**
* @param array $config
- * @dataProvider configurationsWithOverriddenResponseInterfaceFactory
*/
- public function testWontUseResponseFactoryInterfaceFromContainerWhenApplicationFactoryIsOverriden(
+ #[DataProvider('configurationsWithOverriddenResponseInterfaceFactory')]
+ public function testWontUseResponseFactoryInterfaceFromContainerWhenApplicationFactoryIsOverridden(
array $config
): void {
$responseFactory = $this->createMock(ResponseFactoryInterface::class);
diff --git a/test/Repository/Pdo/AbstractRepositoryTest.php b/test/Repository/Pdo/AbstractRepositoryTest.php
index 3516431..4066087 100644
--- a/test/Repository/Pdo/AbstractRepositoryTest.php
+++ b/test/Repository/Pdo/AbstractRepositoryTest.php
@@ -11,8 +11,7 @@
final class AbstractRepositoryTest extends TestCase
{
- /** @var PdoService&MockObject */
- private PdoService|MockObject $pdo;
+ private MockObject&PdoService $pdo;
protected function setUp(): void
{
diff --git a/test/Repository/Pdo/AccessTokenRepositoryFactoryTest.php b/test/Repository/Pdo/AccessTokenRepositoryFactoryTest.php
index f11c75f..67bffdc 100644
--- a/test/Repository/Pdo/AccessTokenRepositoryFactoryTest.php
+++ b/test/Repository/Pdo/AccessTokenRepositoryFactoryTest.php
@@ -13,10 +13,9 @@
final class AccessTokenRepositoryFactoryTest extends TestCase
{
- /** @var ContainerInterface&MockObject */
- private ContainerInterface $container;
- /** @var PdoService&MockObject */
- private PdoService $pdo;
+ private MockObject&ContainerInterface $container;
+ /** @psalm-trace */
+ private MockObject&PdoService $pdo;
protected function setUp(): void
{
diff --git a/test/Repository/Pdo/AccessTokenRepositoryTest.php b/test/Repository/Pdo/AccessTokenRepositoryTest.php
index 7c8906c..2b4a28e 100644
--- a/test/Repository/Pdo/AccessTokenRepositoryTest.php
+++ b/test/Repository/Pdo/AccessTokenRepositoryTest.php
@@ -23,8 +23,7 @@
final class AccessTokenRepositoryTest extends TestCase
{
private AccessTokenRepository $repo;
- /** @var PdoService&MockObject */
- private PdoService $pdo;
+ private MockObject&PdoService $pdo;
protected function setUp(): void
{
@@ -233,10 +232,13 @@ public function testGetNewToken(): void
$this->assertEquals([], $accessToken->getScopes());
}
- public function testGetNewTokenWithScopeAndIndentifier(): void
+ public function testGetNewTokenWithScopeAndIdentifier(): void
{
- $client = $this->createMock(ClientEntityInterface::class);
- $scopes = [$this->createMock(ScopeEntityInterface::class)];
+ $client = $this->createMock(ClientEntityInterface::class);
+ $scope = $this->createMock(ScopeEntityInterface::class);
+ $scope->method('getIdentifier')
+ ->willReturn('test_scope');
+ $scopes = [$scope];
$userIdentifier = 'foo';
$accessToken = $this->repo->getNewToken($client, $scopes, $userIdentifier);
diff --git a/test/Repository/Pdo/AuthCodeRepositoryTest.php b/test/Repository/Pdo/AuthCodeRepositoryTest.php
index 95dde0b..43cf957 100644
--- a/test/Repository/Pdo/AuthCodeRepositoryTest.php
+++ b/test/Repository/Pdo/AuthCodeRepositoryTest.php
@@ -21,8 +21,7 @@
final class AuthCodeRepositoryTest extends TestCase
{
- /** @var PdoService&MockObject */
- private PdoService $pdo;
+ private MockObject&PdoService $pdo;
private AuthCodeRepository $repo;
protected function setUp(): void
diff --git a/test/Repository/Pdo/ClientRepositoryTest.php b/test/Repository/Pdo/ClientRepositoryTest.php
index 660aa29..9d7af8d 100644
--- a/test/Repository/Pdo/ClientRepositoryTest.php
+++ b/test/Repository/Pdo/ClientRepositoryTest.php
@@ -8,13 +8,13 @@
use Mezzio\Authentication\OAuth2\Repository\Pdo\ClientRepository;
use Mezzio\Authentication\OAuth2\Repository\Pdo\PdoService;
use PDOStatement;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
final class ClientRepositoryTest extends TestCase
{
- /** @var PdoService&MockObject */
- private PdoService $pdo;
+ private MockObject&PdoService $pdo;
private ClientRepository $repo;
protected function setUp(): void
@@ -108,7 +108,7 @@ public function testGetClientEntityReturnsCorrectEntity(): void
}
/** @return array */
- public function invalidGrants(): array
+ public static function invalidGrants(): array
{
return [
'personal_access_password_mismatch' => [
@@ -160,9 +160,7 @@ public function testValidateClientReturnsFalseIfNoRowReturned(): void
);
}
- /**
- * @dataProvider invalidGrants
- */
+ #[DataProvider('invalidGrants')]
public function testValidateClientReturnsFalseIfRowIndicatesNotGranted(string $grantType, array $rowReturned): void
{
$statement = $this->createMock(PDOStatement::class);
diff --git a/test/Repository/Pdo/PdoServiceFactoryTest.php b/test/Repository/Pdo/PdoServiceFactoryTest.php
index 512ae25..cb3a12b 100644
--- a/test/Repository/Pdo/PdoServiceFactoryTest.php
+++ b/test/Repository/Pdo/PdoServiceFactoryTest.php
@@ -9,6 +9,7 @@
use Mezzio\Authentication\OAuth2\Repository\Pdo\PdoServiceFactory;
use MezzioTest\Authentication\OAuth2\InMemoryContainer;
use PDO;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
final class PdoServiceFactoryTest extends TestCase
@@ -23,7 +24,7 @@ protected function setUp(): void
}
/** @return array */
- public function invalidConfiguration(): array
+ public static function invalidConfiguration(): array
{
// phpcs:disable
return [
@@ -36,9 +37,7 @@ public function invalidConfiguration(): array
// phpcs:enable
}
- /**
- * @dataProvider invalidConfiguration
- */
+ #[DataProvider('invalidConfiguration')]
public function testRaisesExceptionIfPdoConfigurationIsMissing(
bool $hasConfig,
array $config,
diff --git a/test/Repository/Pdo/RefreshTokenRepositoryTest.php b/test/Repository/Pdo/RefreshTokenRepositoryTest.php
index d814ee3..da71d1c 100644
--- a/test/Repository/Pdo/RefreshTokenRepositoryTest.php
+++ b/test/Repository/Pdo/RefreshTokenRepositoryTest.php
@@ -21,8 +21,7 @@
final class RefreshTokenRepositoryTest extends TestCase
{
- /** @var PdoService&MockObject */
- private PdoService $pdo;
+ private MockObject&PdoService $pdo;
private RefreshTokenRepository $repo;
protected function setUp(): void
diff --git a/test/Repository/Pdo/ScopeRepositoryTest.php b/test/Repository/Pdo/ScopeRepositoryTest.php
index abaf915..6287545 100644
--- a/test/Repository/Pdo/ScopeRepositoryTest.php
+++ b/test/Repository/Pdo/ScopeRepositoryTest.php
@@ -14,8 +14,7 @@
final class ScopeRepositoryTest extends TestCase
{
- /** @var PdoService&MockObject **/
- private PdoService $pdo;
+ private MockObject&PdoService $pdo;
private ScopeRepository $repo;
protected function setUp(): void
@@ -54,7 +53,7 @@ public function testGetScopeEntityByIdentifierReturnsNullWhenReturnedRowDoesNotH
self::assertNull($this->repo->getScopeEntityByIdentifier('id'));
}
- public function testGetScopeEntityByIndentifierReturnsScopes(): void
+ public function testGetScopeEntityByIdentifierReturnsScopes(): void
{
$statement = $this->createMock(PDOStatement::class);
$statement->expects(self::once())->method('bindParam')->with(':identifier', 'id');
diff --git a/test/Repository/Pdo/UserRepositoryTest.php b/test/Repository/Pdo/UserRepositoryTest.php
index 443ac5b..ce580a1 100644
--- a/test/Repository/Pdo/UserRepositoryTest.php
+++ b/test/Repository/Pdo/UserRepositoryTest.php
@@ -18,8 +18,7 @@
final class UserRepositoryTest extends TestCase
{
- /** @var PdoService&MockObject **/
- private PdoService $pdo;
+ private MockObject&PdoService $pdo;
private UserRepository $repo;
protected function setUp(): void
diff --git a/test/ResourceServerFactoryTest.php b/test/ResourceServerFactoryTest.php
index 7441363..82393da 100644
--- a/test/ResourceServerFactoryTest.php
+++ b/test/ResourceServerFactoryTest.php
@@ -9,6 +9,7 @@
use League\OAuth2\Server\ResourceServer;
use Mezzio\Authentication\OAuth2\Exception;
use Mezzio\Authentication\OAuth2\ResourceServerFactory;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
final class ResourceServerFactoryTest extends TestCase
@@ -75,7 +76,7 @@ public function testInvokeWithConfigAndRepository(): void
}
/** @return Generator */
- public function getExtendedKeyConfigs(): Generator
+ public static function getExtendedKeyConfigs(): Generator
{
$extendedConfig = self::PUBLIC_KEY_EXTENDED;
@@ -88,9 +89,7 @@ public function getExtendedKeyConfigs(): Generator
yield [$extendedConfig];
}
- /**
- * @dataProvider getExtendedKeyConfigs
- */
+ #[DataProvider('getExtendedKeyConfigs')]
public function testInvokeWithValidExtendedKey(array $keyConfig): void
{
$this->container->set('config', [
@@ -109,7 +108,7 @@ public function testInvokeWithValidExtendedKey(array $keyConfig): void
}
/** @return Generator */
- public function getInvalidExtendedKeyConfigs(): Generator
+ public static function getInvalidExtendedKeyConfigs(): Generator
{
$extendedConfig = self::PUBLIC_KEY_EXTENDED;
@@ -117,9 +116,7 @@ public function getInvalidExtendedKeyConfigs(): Generator
yield [$extendedConfig];
}
- /**
- * @dataProvider getInvalidExtendedKeyConfigs
- */
+ #[DataProvider('getInvalidExtendedKeyConfigs')]
public function testInvokeWithInvalidExtendedKey(array $keyConfig): void
{
$this->container->set('config', [
diff --git a/test/TokenEndpointHandlerFactoryTest.php b/test/TokenEndpointHandlerFactoryTest.php
index 93594f7..98dd11d 100644
--- a/test/TokenEndpointHandlerFactoryTest.php
+++ b/test/TokenEndpointHandlerFactoryTest.php
@@ -7,14 +7,13 @@
use League\OAuth2\Server\AuthorizationServer;
use Mezzio\Authentication\OAuth2\TokenEndpointHandler;
use Mezzio\Authentication\OAuth2\TokenEndpointHandlerFactory;
+use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\TestCase;
use Psr\Container\NotFoundExceptionInterface;
use Psr\Http\Message\ResponseInterface;
use TypeError;
-/**
- * @covers \Mezzio\Authentication\OAuth2\TokenEndpointHandlerFactory
- */
+#[CoversClass(TokenEndpointHandlerFactory::class)]
final class TokenEndpointHandlerFactoryTest extends TestCase
{
private TokenEndpointHandlerFactory $subject;
diff --git a/test/TokenEndpointHandlerTest.php b/test/TokenEndpointHandlerTest.php
index edec43a..5220656 100644
--- a/test/TokenEndpointHandlerTest.php
+++ b/test/TokenEndpointHandlerTest.php
@@ -8,13 +8,12 @@
use League\OAuth2\Server\Exception\OAuthServerException;
use Mezzio\Authentication\OAuth2\Exception\RuntimeException;
use Mezzio\Authentication\OAuth2\TokenEndpointHandler;
+use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\TestCase;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
-/**
- * @covers \Mezzio\Authentication\OAuth2\TokenEndpointHandler
- */
+#[CoversClass(TokenEndpointHandler::class)]
final class TokenEndpointHandlerTest extends TestCase
{
/** @return callable(): ResponseInterface */