diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml
index 1e48827..2d9a7c7 100644
--- a/.github/workflows/checks.yml
+++ b/.github/workflows/checks.yml
@@ -11,7 +11,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- php-version: [ '8.0', '8.1', '8.2', '8.3', '8.4' ]
+ php-version: [ '8.0', '8.1', '8.2', '8.3', '8.4', '8.5' ]
steps:
-
name: Checkout code
diff --git a/composer.json b/composer.json
index 11e9319..14905e1 100644
--- a/composer.json
+++ b/composer.json
@@ -8,11 +8,11 @@
"ext-libxml": "*"
},
"require-dev": {
- "editorconfig-checker/editorconfig-checker": "^10.4.0",
- "nette/tester": "^v2.5.1",
- "phpstan/phpstan": "^1.10.34",
- "phpstan/phpstan-strict-rules": "^1.5.1",
- "slevomat/coding-standard": "^8.13.4"
+ "editorconfig-checker/editorconfig-checker": "^10.7.0",
+ "nette/tester": "^2.6.0",
+ "phpstan/phpstan": "^2.1.54",
+ "phpstan/phpstan-strict-rules": "^2.0.11",
+ "slevomat/coding-standard": "^8.28.1"
},
"config": {
"sort-packages": true,
diff --git a/composer.lock b/composer.lock
index 79adbf7..d316542 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,34 +4,34 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "1a952dfc986e01ff06fafcd6bb1a2c47",
+ "content-hash": "1e55b2df025a43425122daaa85e74786",
"packages": [],
"packages-dev": [
{
"name": "dealerdirect/phpcodesniffer-composer-installer",
- "version": "v1.0.0",
+ "version": "v1.2.0",
"source": {
"type": "git",
"url": "https://github.com/PHPCSStandards/composer-installer.git",
- "reference": "4be43904336affa5c2f70744a348312336afd0da"
+ "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/4be43904336affa5c2f70744a348312336afd0da",
- "reference": "4be43904336affa5c2f70744a348312336afd0da",
+ "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/845eb62303d2ca9b289ef216356568ccc075ffd1",
+ "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1",
"shasum": ""
},
"require": {
- "composer-plugin-api": "^1.0 || ^2.0",
+ "composer-plugin-api": "^2.2",
"php": ">=5.4",
- "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0"
+ "squizlabs/php_codesniffer": "^3.1.0 || ^4.0"
},
"require-dev": {
- "composer/composer": "*",
+ "composer/composer": "^2.2",
"ext-json": "*",
"ext-zip": "*",
- "php-parallel-lint/php-parallel-lint": "^1.3.1",
- "phpcompatibility/php-compatibility": "^9.0",
+ "php-parallel-lint/php-parallel-lint": "^1.4.0",
+ "phpcompatibility/php-compatibility": "^9.0 || ^10.0.0@dev",
"yoast/phpunit-polyfills": "^1.0"
},
"type": "composer-plugin",
@@ -50,9 +50,9 @@
"authors": [
{
"name": "Franck Nijhof",
- "email": "franck.nijhof@dealerdirect.com",
- "homepage": "http://www.frenck.nl",
- "role": "Developer / IT Manager"
+ "email": "opensource@frenck.dev",
+ "homepage": "https://frenck.dev",
+ "role": "Open source developer"
},
{
"name": "Contributors",
@@ -60,7 +60,6 @@
}
],
"description": "PHP_CodeSniffer Standards Composer Installer Plugin",
- "homepage": "http://www.dealerdirect.com",
"keywords": [
"PHPCodeSniffer",
"PHP_CodeSniffer",
@@ -81,9 +80,28 @@
],
"support": {
"issues": "https://github.com/PHPCSStandards/composer-installer/issues",
+ "security": "https://github.com/PHPCSStandards/composer-installer/security/policy",
"source": "https://github.com/PHPCSStandards/composer-installer"
},
- "time": "2023-01-05T11:28:13+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/PHPCSStandards",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/jrfnl",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/php_codesniffer",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/phpcsstandards",
+ "type": "thanks_dev"
+ }
+ ],
+ "time": "2025-11-11T04:32:07+00:00"
},
{
"name": "editorconfig-checker/editorconfig-checker",
@@ -139,24 +157,24 @@
},
{
"name": "nette/tester",
- "version": "v2.5.4",
+ "version": "v2.6.0",
"source": {
"type": "git",
"url": "https://github.com/nette/tester.git",
- "reference": "c11863785779e87b40adebf150364f2e5938c111"
+ "reference": "0d416a3715ee7547f5e286aa7e65180f35467624"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/tester/zipball/c11863785779e87b40adebf150364f2e5938c111",
- "reference": "c11863785779e87b40adebf150364f2e5938c111",
+ "url": "https://api.github.com/repos/nette/tester/zipball/0d416a3715ee7547f5e286aa7e65180f35467624",
+ "reference": "0d416a3715ee7547f5e286aa7e65180f35467624",
"shasum": ""
},
"require": {
- "php": "8.0 - 8.4"
+ "php": "8.0 - 8.5"
},
"require-dev": {
"ext-simplexml": "*",
- "phpstan/phpstan": "^1.0"
+ "phpstan/phpstan": "^2.0@stable"
},
"bin": [
"src/tester"
@@ -164,10 +182,13 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.5-dev"
+ "dev-master": "2.6-dev"
}
},
"autoload": {
+ "psr-4": {
+ "Tester\\": "src"
+ },
"classmap": [
"src/"
]
@@ -208,22 +229,22 @@
],
"support": {
"issues": "https://github.com/nette/tester/issues",
- "source": "https://github.com/nette/tester/tree/v2.5.4"
+ "source": "https://github.com/nette/tester/tree/v2.6.0"
},
- "time": "2024-10-23T23:57:10+00:00"
+ "time": "2026-01-22T08:39:16+00:00"
},
{
"name": "phpstan/phpdoc-parser",
- "version": "2.1.0",
+ "version": "2.3.2",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68"
+ "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/9b30d6fd026b2c132b3985ce6b23bec09ab3aa68",
- "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/a004701b11273a26cd7955a61d67a7f1e525a45a",
+ "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a",
"shasum": ""
},
"require": {
@@ -255,26 +276,21 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
- "source": "https://github.com/phpstan/phpdoc-parser/tree/2.1.0"
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.2"
},
- "time": "2025-02-19T13:28:12+00:00"
+ "time": "2026-01-25T14:56:51+00:00"
},
{
"name": "phpstan/phpstan",
- "version": "1.12.7",
- "source": {
- "type": "git",
- "url": "https://github.com/phpstan/phpstan.git",
- "reference": "dc2b9976bd8b0f84ec9b0e50cc35378551de7af0"
- },
+ "version": "2.1.54",
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/dc2b9976bd8b0f84ec9b0e50cc35378551de7af0",
- "reference": "dc2b9976bd8b0f84ec9b0e50cc35378551de7af0",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/8be50c3992107dc837b17da4d140fbbdf9a5c5bd",
+ "reference": "8be50c3992107dc837b17da4d140fbbdf9a5c5bd",
"shasum": ""
},
"require": {
- "php": "^7.2|^8.0"
+ "php": "^7.4|^8.0"
},
"conflict": {
"phpstan/phpstan-shim": "*"
@@ -315,32 +331,31 @@
"type": "github"
}
],
- "time": "2024-10-18T11:12:07+00:00"
+ "time": "2026-04-29T13:31:09+00:00"
},
{
"name": "phpstan/phpstan-strict-rules",
- "version": "1.6.1",
+ "version": "2.0.11",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan-strict-rules.git",
- "reference": "daeec748b53de80a97498462513066834ec28f8b"
+ "reference": "9b000a578b85b32945b358b172c7b20e91189024"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan-strict-rules/zipball/daeec748b53de80a97498462513066834ec28f8b",
- "reference": "daeec748b53de80a97498462513066834ec28f8b",
+ "url": "https://api.github.com/repos/phpstan/phpstan-strict-rules/zipball/9b000a578b85b32945b358b172c7b20e91189024",
+ "reference": "9b000a578b85b32945b358b172c7b20e91189024",
"shasum": ""
},
"require": {
- "php": "^7.2 || ^8.0",
- "phpstan/phpstan": "^1.12.4"
+ "php": "^7.4 || ^8.0",
+ "phpstan/phpstan": "^2.1.39"
},
"require-dev": {
- "nikic/php-parser": "^4.13.0",
"php-parallel-lint/php-parallel-lint": "^1.2",
- "phpstan/phpstan-deprecation-rules": "^1.1",
- "phpstan/phpstan-phpunit": "^1.0",
- "phpunit/phpunit": "^9.5"
+ "phpstan/phpstan-deprecation-rules": "^2.0",
+ "phpstan/phpstan-phpunit": "^2.0",
+ "phpunit/phpunit": "^9.6"
},
"type": "phpstan-extension",
"extra": {
@@ -360,40 +375,43 @@
"MIT"
],
"description": "Extra strict and opinionated rules for PHPStan",
+ "keywords": [
+ "static analysis"
+ ],
"support": {
"issues": "https://github.com/phpstan/phpstan-strict-rules/issues",
- "source": "https://github.com/phpstan/phpstan-strict-rules/tree/1.6.1"
+ "source": "https://github.com/phpstan/phpstan-strict-rules/tree/2.0.11"
},
- "time": "2024-09-20T14:04:44+00:00"
+ "time": "2026-05-02T06:54:10+00:00"
},
{
"name": "slevomat/coding-standard",
- "version": "8.18.1",
+ "version": "8.28.1",
"source": {
"type": "git",
"url": "https://github.com/slevomat/coding-standard.git",
- "reference": "06b18b3f64979ab31d27c37021838439f3ed5919"
+ "reference": "66151cfbd25b50e8becd9f809fb704f01fd4d6f2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/06b18b3f64979ab31d27c37021838439f3ed5919",
- "reference": "06b18b3f64979ab31d27c37021838439f3ed5919",
+ "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/66151cfbd25b50e8becd9f809fb704f01fd4d6f2",
+ "reference": "66151cfbd25b50e8becd9f809fb704f01fd4d6f2",
"shasum": ""
},
"require": {
- "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0",
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.7 || ^1.2.0",
"php": "^7.4 || ^8.0",
- "phpstan/phpdoc-parser": "^2.1.0",
- "squizlabs/php_codesniffer": "^3.13.0"
+ "phpstan/phpdoc-parser": "^2.3.2",
+ "squizlabs/php_codesniffer": "^4.0.1"
},
"require-dev": {
- "phing/phing": "3.0.1",
+ "phing/phing": "3.0.1|3.1.2",
"php-parallel-lint/php-parallel-lint": "1.4.0",
- "phpstan/phpstan": "2.1.17",
- "phpstan/phpstan-deprecation-rules": "2.0.3",
- "phpstan/phpstan-phpunit": "2.0.6",
- "phpstan/phpstan-strict-rules": "2.0.4",
- "phpunit/phpunit": "9.6.8|10.5.45|11.4.4|11.5.21|12.1.3"
+ "phpstan/phpstan": "2.1.42",
+ "phpstan/phpstan-deprecation-rules": "2.0.4",
+ "phpstan/phpstan-phpunit": "2.0.16",
+ "phpstan/phpstan-strict-rules": "2.0.10",
+ "phpunit/phpunit": "9.6.34|10.5.63|11.4.4|11.5.50|12.5.14"
},
"type": "phpcodesniffer-standard",
"extra": {
@@ -417,7 +435,7 @@
],
"support": {
"issues": "https://github.com/slevomat/coding-standard/issues",
- "source": "https://github.com/slevomat/coding-standard/tree/8.18.1"
+ "source": "https://github.com/slevomat/coding-standard/tree/8.28.1"
},
"funding": [
{
@@ -429,41 +447,36 @@
"type": "tidelift"
}
],
- "time": "2025-05-22T14:32:30+00:00"
+ "time": "2026-03-22T17:22:38+00:00"
},
{
"name": "squizlabs/php_codesniffer",
- "version": "3.13.0",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
- "reference": "65ff2489553b83b4597e89c3b8b721487011d186"
+ "reference": "0525c73950de35ded110cffafb9892946d7771b5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/65ff2489553b83b4597e89c3b8b721487011d186",
- "reference": "65ff2489553b83b4597e89c3b8b721487011d186",
+ "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/0525c73950de35ded110cffafb9892946d7771b5",
+ "reference": "0525c73950de35ded110cffafb9892946d7771b5",
"shasum": ""
},
"require": {
"ext-simplexml": "*",
"ext-tokenizer": "*",
"ext-xmlwriter": "*",
- "php": ">=5.4.0"
+ "php": ">=7.2.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4"
+ "phpunit/phpunit": "^8.4.0 || ^9.3.4 || ^10.5.32 || 11.3.3 - 11.5.28 || ^11.5.31"
},
"bin": [
"bin/phpcbf",
"bin/phpcs"
],
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.x-dev"
- }
- },
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
@@ -482,7 +495,7 @@
"homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors"
}
],
- "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
+ "description": "PHP_CodeSniffer tokenizes PHP files and detects violations of a defined set of coding standards.",
"homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
"keywords": [
"phpcs",
@@ -513,12 +526,12 @@
"type": "thanks_dev"
}
],
- "time": "2025-05-11T03:36:00+00:00"
+ "time": "2025-11-10T16:43:36+00:00"
}
],
"aliases": [],
"minimum-stability": "stable",
- "stability-flags": [],
+ "stability-flags": {},
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
@@ -526,6 +539,6 @@
"ext-dom": "*",
"ext-libxml": "*"
},
- "platform-dev": [],
- "plugin-api-version": "2.3.0"
+ "platform-dev": {},
+ "plugin-api-version": "2.9.0"
}
diff --git a/phpcs.xml.dist b/phpcs.xml.dist
index 0a5400e..0e8cd7d 100644
--- a/phpcs.xml.dist
+++ b/phpcs.xml.dist
@@ -47,7 +47,6 @@
-
@@ -60,28 +59,24 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -220,7 +215,6 @@
-
@@ -282,12 +276,27 @@
-
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -358,32 +367,32 @@
-
+
-
+
+
+
+
-
+
+
+
+
-
+
+
+
+