gitignore file change : RV

This commit is contained in:
VENKATESHWARAN 2023-12-17 10:56:29 +05:30
parent 178b8cbd7d
commit 45d0e0a7dd
335 changed files with 3985 additions and 6859 deletions

18
.gitignore vendored
View File

@ -48,5 +48,21 @@ Thumbs.db
*.mov
*.wmv
writable/debugbar
writable/debugbar/
!writable/debugbar/.gitkeep
writable/session/
!writable/session/.gitkeep
writable/log/
!writable/log/.gitkeep
writable/uploads/
!writable/uploads/.gitkeep
writable/cache/
!writable/cache/.gitkeep
public/uploads/
!public/uploads/.gitkeep
vendor

428
composer.lock generated
View File

@ -70,33 +70,33 @@
},
{
"name": "laminas/laminas-escaper",
"version": "2.12.0",
"version": "2.13.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-escaper.git",
"reference": "ee7a4c37bf3d0e8c03635d5bddb5bb3184ead490"
"reference": "af459883f4018d0f8a0c69c7a209daef3bf973ba"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/ee7a4c37bf3d0e8c03635d5bddb5bb3184ead490",
"reference": "ee7a4c37bf3d0e8c03635d5bddb5bb3184ead490",
"url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/af459883f4018d0f8a0c69c7a209daef3bf973ba",
"reference": "af459883f4018d0f8a0c69c7a209daef3bf973ba",
"shasum": ""
},
"require": {
"ext-ctype": "*",
"ext-mbstring": "*",
"php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0"
"php": "~8.1.0 || ~8.2.0 || ~8.3.0"
},
"conflict": {
"zendframework/zend-escaper": "*"
},
"require-dev": {
"infection/infection": "^0.26.6",
"laminas/laminas-coding-standard": "~2.4.0",
"infection/infection": "^0.27.0",
"laminas/laminas-coding-standard": "~2.5.0",
"maglnet/composer-require-checker": "^3.8.0",
"phpunit/phpunit": "^9.5.18",
"psalm/plugin-phpunit": "^0.17.0",
"vimeo/psalm": "^4.22.0"
"phpunit/phpunit": "^9.6.7",
"psalm/plugin-phpunit": "^0.18.4",
"vimeo/psalm": "^5.9"
},
"type": "library",
"autoload": {
@ -128,7 +128,7 @@
"type": "community_bridge"
}
],
"time": "2022-10-10T10:11:09+00:00"
"time": "2023-10-10T08:35:13+00:00"
},
{
"name": "masterminds/html5",
@ -199,16 +199,16 @@
},
{
"name": "mpdf/mpdf",
"version": "v8.2.0",
"version": "v8.2.2",
"source": {
"type": "git",
"url": "https://github.com/mpdf/mpdf.git",
"reference": "170a236a588d177c2aa7447ce490a030ca68e6f4"
"reference": "596a87b876d7793be7be060a8ac13424de120dd5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/mpdf/mpdf/zipball/170a236a588d177c2aa7447ce490a030ca68e6f4",
"reference": "170a236a588d177c2aa7447ce490a030ca68e6f4",
"url": "https://api.github.com/repos/mpdf/mpdf/zipball/596a87b876d7793be7be060a8ac13424de120dd5",
"reference": "596a87b876d7793be7be060a8ac13424de120dd5",
"shasum": ""
},
"require": {
@ -218,7 +218,7 @@
"mpdf/psr-log-aware-trait": "^2.0 || ^3.0",
"myclabs/deep-copy": "^1.7",
"paragonie/random_compat": "^1.4|^2.0|^9.99.99",
"php": "^5.6 || ^7.0 || ~8.0.0 || ~8.1.0 || ~8.2.0",
"php": "^5.6 || ^7.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0",
"psr/http-message": "^1.0 || ^2.0",
"psr/log": "^1.0 || ^2.0 || ^3.0",
"setasign/fpdi": "^2.1"
@ -276,7 +276,7 @@
"type": "custom"
}
],
"time": "2023-09-01T11:44:52+00:00"
"time": "2023-11-07T13:52:14+00:00"
},
{
"name": "mpdf/psr-http-message-shim",
@ -727,16 +727,16 @@
},
{
"name": "setasign/fpdi",
"version": "v2.5.0",
"version": "v2.6.0",
"source": {
"type": "git",
"url": "https://github.com/Setasign/FPDI.git",
"reference": "ecf0459643ec963febfb9a5d529dcd93656006a4"
"reference": "a6db878129ec6c7e141316ee71872923e7f1b7ad"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Setasign/FPDI/zipball/ecf0459643ec963febfb9a5d529dcd93656006a4",
"reference": "ecf0459643ec963febfb9a5d529dcd93656006a4",
"url": "https://api.github.com/repos/Setasign/FPDI/zipball/a6db878129ec6c7e141316ee71872923e7f1b7ad",
"reference": "a6db878129ec6c7e141316ee71872923e7f1b7ad",
"shasum": ""
},
"require": {
@ -748,8 +748,8 @@
},
"require-dev": {
"phpunit/phpunit": "~5.7",
"setasign/fpdf": "~1.8",
"setasign/tfpdf": "~1.31",
"setasign/fpdf": "~1.8.6",
"setasign/tfpdf": "~1.33",
"squizlabs/php_codesniffer": "^3.5",
"tecnickcom/tcpdf": "~6.2"
},
@ -787,7 +787,7 @@
],
"support": {
"issues": "https://github.com/Setasign/FPDI/issues",
"source": "https://github.com/Setasign/FPDI/tree/v2.5.0"
"source": "https://github.com/Setasign/FPDI/tree/v2.6.0"
},
"funding": [
{
@ -795,7 +795,7 @@
"type": "tidelift"
}
],
"time": "2023-09-28T10:46:27+00:00"
"time": "2023-12-11T16:03:32+00:00"
}
],
"packages-dev": [
@ -1073,30 +1073,30 @@
},
{
"name": "doctrine/instantiator",
"version": "1.5.0",
"version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/instantiator.git",
"reference": "0a0fa9780f5d4e507415a065172d26a98d02047b"
"reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b",
"reference": "0a0fa9780f5d4e507415a065172d26a98d02047b",
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
"reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
"shasum": ""
},
"require": {
"php": "^7.1 || ^8.0"
"php": "^8.1"
},
"require-dev": {
"doctrine/coding-standard": "^9 || ^11",
"doctrine/coding-standard": "^11",
"ext-pdo": "*",
"ext-phar": "*",
"phpbench/phpbench": "^0.16 || ^1",
"phpstan/phpstan": "^1.4",
"phpstan/phpstan-phpunit": "^1",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
"vimeo/psalm": "^4.30 || ^5.4"
"phpbench/phpbench": "^1.2",
"phpstan/phpstan": "^1.9.4",
"phpstan/phpstan-phpunit": "^1.3",
"phpunit/phpunit": "^9.5.27",
"vimeo/psalm": "^5.4"
},
"type": "library",
"autoload": {
@ -1123,7 +1123,7 @@
],
"support": {
"issues": "https://github.com/doctrine/instantiator/issues",
"source": "https://github.com/doctrine/instantiator/tree/1.5.0"
"source": "https://github.com/doctrine/instantiator/tree/2.0.0"
},
"funding": [
{
@ -1139,7 +1139,7 @@
"type": "tidelift"
}
],
"time": "2022-12-30T00:15:36+00:00"
"time": "2022-12-30T00:23:10+00:00"
},
{
"name": "fakerphp/faker",
@ -1211,50 +1211,48 @@
},
{
"name": "friendsofphp/php-cs-fixer",
"version": "v3.37.1",
"version": "v3.41.1",
"source": {
"type": "git",
"url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
"reference": "c3fe76976081ab871aa654e872da588077e19679"
"reference": "8b6ae8dcbaf23f09680643ab832a4a3a260265f6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/c3fe76976081ab871aa654e872da588077e19679",
"reference": "c3fe76976081ab871aa654e872da588077e19679",
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/8b6ae8dcbaf23f09680643ab832a4a3a260265f6",
"reference": "8b6ae8dcbaf23f09680643ab832a4a3a260265f6",
"shasum": ""
},
"require": {
"composer/semver": "^3.3",
"composer/semver": "^3.4",
"composer/xdebug-handler": "^3.0.3",
"ext-json": "*",
"ext-tokenizer": "*",
"php": "^7.4 || ^8.0",
"sebastian/diff": "^4.0 || ^5.0",
"symfony/console": "^5.4 || ^6.0",
"symfony/event-dispatcher": "^5.4 || ^6.0",
"symfony/filesystem": "^5.4 || ^6.0",
"symfony/finder": "^5.4 || ^6.0",
"symfony/options-resolver": "^5.4 || ^6.0",
"symfony/polyfill-mbstring": "^1.27",
"symfony/polyfill-php80": "^1.27",
"symfony/polyfill-php81": "^1.27",
"symfony/process": "^5.4 || ^6.0",
"symfony/stopwatch": "^5.4 || ^6.0"
"symfony/console": "^5.4 || ^6.0 || ^7.0",
"symfony/event-dispatcher": "^5.4 || ^6.0 || ^7.0",
"symfony/filesystem": "^5.4 || ^6.0 || ^7.0",
"symfony/finder": "^5.4 || ^6.0 || ^7.0",
"symfony/options-resolver": "^5.4 || ^6.0 || ^7.0",
"symfony/polyfill-mbstring": "^1.28",
"symfony/polyfill-php80": "^1.28",
"symfony/polyfill-php81": "^1.28",
"symfony/process": "^5.4 || ^6.0 || ^7.0",
"symfony/stopwatch": "^5.4 || ^6.0 || ^7.0"
},
"require-dev": {
"facile-it/paraunit": "^1.3 || ^2.0",
"justinrainbow/json-schema": "^5.2",
"keradus/cli-executor": "^2.0",
"keradus/cli-executor": "^2.1",
"mikey179/vfsstream": "^1.6.11",
"php-coveralls/php-coveralls": "^2.5.3",
"php-coveralls/php-coveralls": "^2.7",
"php-cs-fixer/accessible-object": "^1.1",
"php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2",
"php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1",
"phpspec/prophecy": "^1.16",
"phpspec/prophecy-phpunit": "^2.0",
"phpunit/phpunit": "^9.5",
"symfony/phpunit-bridge": "^6.2.3",
"symfony/yaml": "^5.4 || ^6.0"
"php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.4",
"php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.4",
"phpunit/phpunit": "^9.6",
"symfony/phpunit-bridge": "^6.3.8 || ^7.0",
"symfony/yaml": "^5.4 || ^6.0 || ^7.0"
},
"suggest": {
"ext-dom": "For handling output formats in XML",
@ -1292,7 +1290,7 @@
],
"support": {
"issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.37.1"
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.41.1"
},
"funding": [
{
@ -1300,20 +1298,20 @@
"type": "github"
}
],
"time": "2023-10-29T20:51:23+00:00"
"time": "2023-12-10T19:59:27+00:00"
},
{
"name": "kint-php/kint",
"version": "5.0.7",
"version": "5.1.0",
"source": {
"type": "git",
"url": "https://github.com/kint-php/kint.git",
"reference": "a700653a77250b122920799b10c94e904c9b78c7"
"reference": "128303461092734a1e3cb4beb1eea9afe7a5a0ee"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/kint-php/kint/zipball/a700653a77250b122920799b10c94e904c9b78c7",
"reference": "a700653a77250b122920799b10c94e904c9b78c7",
"url": "https://api.github.com/repos/kint-php/kint/zipball/128303461092734a1e3cb4beb1eea9afe7a5a0ee",
"reference": "128303461092734a1e3cb4beb1eea9afe7a5a0ee",
"shasum": ""
},
"require": {
@ -1324,8 +1322,8 @@
"phpspec/prophecy-phpunit": "^2",
"phpunit/phpunit": "^9",
"seld/phar-utils": "^1",
"symfony/finder": "^4.0 || ^5.0 || ^6.0",
"vimeo/psalm": "^5@dev"
"symfony/finder": ">=4.0",
"vimeo/psalm": "^5"
},
"suggest": {
"kint-php/kint-helpers": "Provides extra helper functions",
@ -1363,9 +1361,9 @@
],
"support": {
"issues": "https://github.com/kint-php/kint/issues",
"source": "https://github.com/kint-php/kint/tree/5.0.7"
"source": "https://github.com/kint-php/kint/tree/5.1.0"
},
"time": "2023-06-26T19:25:00+00:00"
"time": "2023-11-16T06:04:49+00:00"
},
{
"name": "mikey179/vfsstream",
@ -1489,16 +1487,16 @@
},
{
"name": "nikic/php-parser",
"version": "v4.17.1",
"version": "v4.18.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
"reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d"
"reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d",
"reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999",
"reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999",
"shasum": ""
},
"require": {
@ -1539,9 +1537,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
"source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1"
"source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0"
},
"time": "2023-08-13T19:53:39+00:00"
"time": "2023-12-10T21:03:43+00:00"
},
{
"name": "phar-io/manifest",
@ -1975,16 +1973,16 @@
},
{
"name": "phpunit/phpunit",
"version": "9.6.13",
"version": "9.6.15",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be"
"reference": "05017b80304e0eb3f31d90194a563fd53a6021f1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f3d767f7f9e191eab4189abe41ab37797e30b1be",
"reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/05017b80304e0eb3f31d90194a563fd53a6021f1",
"reference": "05017b80304e0eb3f31d90194a563fd53a6021f1",
"shasum": ""
},
"require": {
@ -2058,7 +2056,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.13"
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.15"
},
"funding": [
{
@ -2074,7 +2072,7 @@
"type": "tidelift"
}
],
"time": "2023-09-19T05:39:22+00:00"
"time": "2023-12-01T16:55:19+00:00"
},
{
"name": "predis/predis",
@ -3206,48 +3204,46 @@
},
{
"name": "symfony/console",
"version": "v6.0.19",
"version": "v7.0.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed"
"reference": "cdce5c684b2f920bb1343deecdfba356ffad83d5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/c3ebc83d031b71c39da318ca8b7a07ecc67507ed",
"reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed",
"url": "https://api.github.com/repos/symfony/console/zipball/cdce5c684b2f920bb1343deecdfba356ffad83d5",
"reference": "cdce5c684b2f920bb1343deecdfba356ffad83d5",
"shasum": ""
},
"require": {
"php": ">=8.0.2",
"php": ">=8.2",
"symfony/polyfill-mbstring": "~1.0",
"symfony/service-contracts": "^1.1|^2|^3",
"symfony/string": "^5.4|^6.0"
"symfony/service-contracts": "^2.5|^3",
"symfony/string": "^6.4|^7.0"
},
"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",
"symfony/dependency-injection": "^5.4|^6.0",
"symfony/event-dispatcher": "^5.4|^6.0",
"symfony/lock": "^5.4|^6.0",
"symfony/process": "^5.4|^6.0",
"symfony/var-dumper": "^5.4|^6.0"
},
"suggest": {
"psr/log": "For using the console logger",
"symfony/event-dispatcher": "",
"symfony/lock": "",
"symfony/process": ""
"symfony/config": "^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": "^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": {
@ -3276,12 +3272,12 @@
"homepage": "https://symfony.com",
"keywords": [
"cli",
"command line",
"command-line",
"console",
"terminal"
],
"support": {
"source": "https://github.com/symfony/console/tree/v6.0.19"
"source": "https://github.com/symfony/console/tree/v7.0.1"
},
"funding": [
{
@ -3297,29 +3293,29 @@
"type": "tidelift"
}
],
"time": "2023-01-01T08:36:10+00:00"
"time": "2023-12-01T15:10:06+00:00"
},
{
"name": "symfony/deprecation-contracts",
"version": "v3.0.2",
"version": "v3.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
"reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c"
"reference": "7c3aff79d10325257a001fcf92d991f24fc967cf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
"reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf",
"reference": "7c3aff79d10325257a001fcf92d991f24fc967cf",
"shasum": ""
},
"require": {
"php": ">=8.0.2"
"php": ">=8.1"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "3.0-dev"
"dev-main": "3.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@ -3348,7 +3344,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.2"
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0"
},
"funding": [
{
@ -3364,28 +3360,29 @@
"type": "tidelift"
}
],
"time": "2022-01-02T09:55:41+00:00"
"time": "2023-05-23T14:45:45+00:00"
},
{
"name": "symfony/event-dispatcher",
"version": "v6.0.19",
"version": "v7.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
"reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a"
"reference": "c459b40ffe67c49af6fd392aac374c9edf8a027e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2eaf8e63bc5b8cefabd4a800157f0d0c094f677a",
"reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c459b40ffe67c49af6fd392aac374c9edf8a027e",
"reference": "c459b40ffe67c49af6fd392aac374c9edf8a027e",
"shasum": ""
},
"require": {
"php": ">=8.0.2",
"symfony/event-dispatcher-contracts": "^2|^3"
"php": ">=8.2",
"symfony/event-dispatcher-contracts": "^2.5|^3"
},
"conflict": {
"symfony/dependency-injection": "<5.4"
"symfony/dependency-injection": "<6.4",
"symfony/service-contracts": "<2.5"
},
"provide": {
"psr/event-dispatcher-implementation": "1.0",
@ -3393,17 +3390,13 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
"symfony/config": "^5.4|^6.0",
"symfony/dependency-injection": "^5.4|^6.0",
"symfony/error-handler": "^5.4|^6.0",
"symfony/expression-language": "^5.4|^6.0",
"symfony/http-foundation": "^5.4|^6.0",
"symfony/service-contracts": "^1.1|^2|^3",
"symfony/stopwatch": "^5.4|^6.0"
},
"suggest": {
"symfony/dependency-injection": "",
"symfony/http-kernel": ""
"symfony/config": "^6.4|^7.0",
"symfony/dependency-injection": "^6.4|^7.0",
"symfony/error-handler": "^6.4|^7.0",
"symfony/expression-language": "^6.4|^7.0",
"symfony/http-foundation": "^6.4|^7.0",
"symfony/service-contracts": "^2.5|^3",
"symfony/stopwatch": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@ -3431,7 +3424,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/event-dispatcher/tree/v6.0.19"
"source": "https://github.com/symfony/event-dispatcher/tree/v7.0.0"
},
"funding": [
{
@ -3447,33 +3440,30 @@
"type": "tidelift"
}
],
"time": "2023-01-01T08:36:10+00:00"
"time": "2023-07-27T16:29:09+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
"version": "v3.0.2",
"version": "v3.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
"reference": "7bc61cc2db649b4637d331240c5346dcc7708051"
"reference": "a76aed96a42d2b521153fb382d418e30d18b59df"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7bc61cc2db649b4637d331240c5346dcc7708051",
"reference": "7bc61cc2db649b4637d331240c5346dcc7708051",
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df",
"reference": "a76aed96a42d2b521153fb382d418e30d18b59df",
"shasum": ""
},
"require": {
"php": ">=8.0.2",
"php": ">=8.1",
"psr/event-dispatcher": "^1"
},
"suggest": {
"symfony/event-dispatcher-implementation": ""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "3.0-dev"
"dev-main": "3.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@ -3510,7 +3500,7 @@
"standards"
],
"support": {
"source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.2"
"source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0"
},
"funding": [
{
@ -3526,24 +3516,24 @@
"type": "tidelift"
}
],
"time": "2022-01-02T09:55:41+00:00"
"time": "2023-05-23T14:45:45+00:00"
},
{
"name": "symfony/filesystem",
"version": "v6.0.19",
"version": "v7.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
"reference": "3d49eec03fda1f0fc19b7349fbbe55ebc1004214"
"reference": "7da8ea2362a283771478c5f7729cfcb43a76b8b7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/3d49eec03fda1f0fc19b7349fbbe55ebc1004214",
"reference": "3d49eec03fda1f0fc19b7349fbbe55ebc1004214",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/7da8ea2362a283771478c5f7729cfcb43a76b8b7",
"reference": "7da8ea2362a283771478c5f7729cfcb43a76b8b7",
"shasum": ""
},
"require": {
"php": ">=8.0.2",
"php": ">=8.2",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.8"
},
@ -3573,7 +3563,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/filesystem/tree/v6.0.19"
"source": "https://github.com/symfony/filesystem/tree/v7.0.0"
},
"funding": [
{
@ -3589,24 +3579,27 @@
"type": "tidelift"
}
],
"time": "2023-01-20T17:44:14+00:00"
"time": "2023-07-27T06:33:22+00:00"
},
{
"name": "symfony/finder",
"version": "v6.0.19",
"version": "v7.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
"reference": "5cc9cac6586fc0c28cd173780ca696e419fefa11"
"reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/5cc9cac6586fc0c28cd173780ca696e419fefa11",
"reference": "5cc9cac6586fc0c28cd173780ca696e419fefa11",
"url": "https://api.github.com/repos/symfony/finder/zipball/6e5688d69f7cfc4ed4a511e96007e06c2d34ce56",
"reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56",
"shasum": ""
},
"require": {
"php": ">=8.0.2"
"php": ">=8.2"
},
"require-dev": {
"symfony/filesystem": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@ -3634,7 +3627,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/finder/tree/v6.0.19"
"source": "https://github.com/symfony/finder/tree/v7.0.0"
},
"funding": [
{
@ -3650,25 +3643,25 @@
"type": "tidelift"
}
],
"time": "2023-01-20T17:44:14+00:00"
"time": "2023-10-31T17:59:56+00:00"
},
{
"name": "symfony/options-resolver",
"version": "v6.0.19",
"version": "v7.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/options-resolver.git",
"reference": "6a180d1c45e0d9797470ca9eb46215692de00fa3"
"reference": "700ff4096e346f54cb628ea650767c8130f1001f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/6a180d1c45e0d9797470ca9eb46215692de00fa3",
"reference": "6a180d1c45e0d9797470ca9eb46215692de00fa3",
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/700ff4096e346f54cb628ea650767c8130f1001f",
"reference": "700ff4096e346f54cb628ea650767c8130f1001f",
"shasum": ""
},
"require": {
"php": ">=8.0.2",
"symfony/deprecation-contracts": "^2.1|^3"
"php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3"
},
"type": "library",
"autoload": {
@ -3701,7 +3694,7 @@
"options"
],
"support": {
"source": "https://github.com/symfony/options-resolver/tree/v6.0.19"
"source": "https://github.com/symfony/options-resolver/tree/v7.0.0"
},
"funding": [
{
@ -3717,7 +3710,7 @@
"type": "tidelift"
}
],
"time": "2023-01-01T08:36:10+00:00"
"time": "2023-08-08T10:20:21+00:00"
},
{
"name": "symfony/polyfill-ctype",
@ -4213,20 +4206,20 @@
},
{
"name": "symfony/process",
"version": "v6.0.19",
"version": "v7.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "2114fd60f26a296cc403a7939ab91478475a33d4"
"reference": "13bdb1670c7f510494e04fcb2bfa29af63db9c0d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/2114fd60f26a296cc403a7939ab91478475a33d4",
"reference": "2114fd60f26a296cc403a7939ab91478475a33d4",
"url": "https://api.github.com/repos/symfony/process/zipball/13bdb1670c7f510494e04fcb2bfa29af63db9c0d",
"reference": "13bdb1670c7f510494e04fcb2bfa29af63db9c0d",
"shasum": ""
},
"require": {
"php": ">=8.0.2"
"php": ">=8.2"
},
"type": "library",
"autoload": {
@ -4254,7 +4247,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/process/tree/v6.0.19"
"source": "https://github.com/symfony/process/tree/v7.0.0"
},
"funding": [
{
@ -4270,36 +4263,33 @@
"type": "tidelift"
}
],
"time": "2023-01-01T08:36:10+00:00"
"time": "2023-11-20T16:43:42+00:00"
},
{
"name": "symfony/service-contracts",
"version": "v3.0.2",
"version": "v3.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
"reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66"
"reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/d78d39c1599bd1188b8e26bb341da52c3c6d8a66",
"reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/b3313c2dbffaf71c8de2934e2ea56ed2291a3838",
"reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838",
"shasum": ""
},
"require": {
"php": ">=8.0.2",
"php": ">=8.1",
"psr/container": "^2.0"
},
"conflict": {
"ext-psr": "<1.1|>=2"
},
"suggest": {
"symfony/service-implementation": ""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "3.0-dev"
"dev-main": "3.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@ -4309,7 +4299,10 @@
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Service\\": ""
}
},
"exclude-from-classmap": [
"/Test/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@ -4336,7 +4329,7 @@
"standards"
],
"support": {
"source": "https://github.com/symfony/service-contracts/tree/v3.0.2"
"source": "https://github.com/symfony/service-contracts/tree/v3.4.0"
},
"funding": [
{
@ -4352,25 +4345,25 @@
"type": "tidelift"
}
],
"time": "2022-05-30T19:17:58+00:00"
"time": "2023-07-30T20:28:31+00:00"
},
{
"name": "symfony/stopwatch",
"version": "v6.0.19",
"version": "v7.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/stopwatch.git",
"reference": "011e781839dd1d2eb8119f65ac516a530f60226d"
"reference": "7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/stopwatch/zipball/011e781839dd1d2eb8119f65ac516a530f60226d",
"reference": "011e781839dd1d2eb8119f65ac516a530f60226d",
"url": "https://api.github.com/repos/symfony/stopwatch/zipball/7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a",
"reference": "7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a",
"shasum": ""
},
"require": {
"php": ">=8.0.2",
"symfony/service-contracts": "^1|^2|^3"
"php": ">=8.2",
"symfony/service-contracts": "^2.5|^3"
},
"type": "library",
"autoload": {
@ -4398,7 +4391,7 @@
"description": "Provides a way to profile code",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/stopwatch/tree/v6.0.19"
"source": "https://github.com/symfony/stopwatch/tree/v7.0.0"
},
"funding": [
{
@ -4414,37 +4407,38 @@
"type": "tidelift"
}
],
"time": "2023-01-01T08:36:10+00:00"
"time": "2023-07-05T13:06:06+00:00"
},
{
"name": "symfony/string",
"version": "v6.0.19",
"version": "v7.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
"reference": "d9e72497367c23e08bf94176d2be45b00a9d232a"
"reference": "92bd2bfbba476d4a1838e5e12168bef2fd1e6620"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/d9e72497367c23e08bf94176d2be45b00a9d232a",
"reference": "d9e72497367c23e08bf94176d2be45b00a9d232a",
"url": "https://api.github.com/repos/symfony/string/zipball/92bd2bfbba476d4a1838e5e12168bef2fd1e6620",
"reference": "92bd2bfbba476d4a1838e5e12168bef2fd1e6620",
"shasum": ""
},
"require": {
"php": ">=8.0.2",
"php": ">=8.2",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-grapheme": "~1.0",
"symfony/polyfill-intl-normalizer": "~1.0",
"symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
"symfony/translation-contracts": "<2.0"
"symfony/translation-contracts": "<2.5"
},
"require-dev": {
"symfony/error-handler": "^5.4|^6.0",
"symfony/http-client": "^5.4|^6.0",
"symfony/translation-contracts": "^2.0|^3.0",
"symfony/var-exporter": "^5.4|^6.0"
"symfony/error-handler": "^6.4|^7.0",
"symfony/http-client": "^6.4|^7.0",
"symfony/intl": "^6.4|^7.0",
"symfony/translation-contracts": "^2.5|^3.0",
"symfony/var-exporter": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@ -4483,7 +4477,7 @@
"utf8"
],
"support": {
"source": "https://github.com/symfony/string/tree/v6.0.19"
"source": "https://github.com/symfony/string/tree/v7.0.0"
},
"funding": [
{
@ -4499,20 +4493,20 @@
"type": "tidelift"
}
],
"time": "2023-01-01T08:36:10+00:00"
"time": "2023-11-29T08:40:23+00:00"
},
{
"name": "theseer/tokenizer",
"version": "1.2.1",
"version": "1.2.2",
"source": {
"type": "git",
"url": "https://github.com/theseer/tokenizer.git",
"reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
"reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
"reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
"reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
"shasum": ""
},
"require": {
@ -4541,7 +4535,7 @@
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
"support": {
"issues": "https://github.com/theseer/tokenizer/issues",
"source": "https://github.com/theseer/tokenizer/tree/1.2.1"
"source": "https://github.com/theseer/tokenizer/tree/1.2.2"
},
"funding": [
{
@ -4549,7 +4543,7 @@
"type": "github"
}
],
"time": "2021-07-28T10:34:58+00:00"
"time": "2023-11-20T00:12:19+00:00"
}
],
"aliases": [],

0
vendor/bin/php-cs-fixer vendored Normal file → Executable file
View File

View File

@ -1,5 +0,0 @@
@ECHO OFF
setlocal DISABLEDELAYEDEXPANSION
SET BIN_TARGET=%~dp0/php-cs-fixer
SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
php "%BIN_TARGET%" %*

10
vendor/bin/php-parse vendored Normal file → Executable file
View File

@ -108,10 +108,12 @@ if (PHP_VERSION_ID < 80000) {
}
}
if (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) {
include("phpvfscomposer://" . __DIR__ . '/..'.'/nikic/php-parser/bin/php-parse');
exit(0);
if (
(function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
|| (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
) {
return include("phpvfscomposer://" . __DIR__ . '/..'.'/nikic/php-parser/bin/php-parse');
}
}
include __DIR__ . '/..'.'/nikic/php-parser/bin/php-parse';
return include __DIR__ . '/..'.'/nikic/php-parser/bin/php-parse';

View File

@ -1,5 +0,0 @@
@ECHO OFF
setlocal DISABLEDELAYEDEXPANSION
SET BIN_TARGET=%~dp0/php-parse
SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
php "%BIN_TARGET%" %*

10
vendor/bin/phpunit vendored Normal file → Executable file
View File

@ -111,10 +111,12 @@ if (PHP_VERSION_ID < 80000) {
}
}
if (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) {
include("phpvfscomposer://" . __DIR__ . '/..'.'/phpunit/phpunit/phpunit');
exit(0);
if (
(function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true))
|| (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper'))
) {
return include("phpvfscomposer://" . __DIR__ . '/..'.'/phpunit/phpunit/phpunit');
}
}
include __DIR__ . '/..'.'/phpunit/phpunit/phpunit';
return include __DIR__ . '/..'.'/phpunit/phpunit/phpunit';

View File

@ -1,5 +0,0 @@
@ECHO OFF
setlocal DISABLEDELAYEDEXPANSION
SET BIN_TARGET=%~dp0/phpunit
SET COMPOSER_RUNTIME_BIN_DIR=%~dp0
php "%BIN_TARGET%" %*

View File

@ -1447,6 +1447,7 @@ return array(
'PHPUnit\\Framework\\Constraint\\LogicalXor' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalXor.php',
'PHPUnit\\Framework\\Constraint\\ObjectEquals' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectEquals.php',
'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasAttribute.php',
'PHPUnit\\Framework\\Constraint\\ObjectHasProperty' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasProperty.php',
'PHPUnit\\Framework\\Constraint\\Operator' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Operator/Operator.php',
'PHPUnit\\Framework\\Constraint\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/String/RegularExpression.php',
'PHPUnit\\Framework\\Constraint\\SameSize' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/SameSize.php',
@ -1841,6 +1842,7 @@ return array(
'PhpCsFixer\\ConfigurationException\\InvalidForEnvFixerConfigurationException' => $vendorDir . '/friendsofphp/php-cs-fixer/src/ConfigurationException/InvalidForEnvFixerConfigurationException.php',
'PhpCsFixer\\ConfigurationException\\RequiredFixerConfigurationException' => $vendorDir . '/friendsofphp/php-cs-fixer/src/ConfigurationException/RequiredFixerConfigurationException.php',
'PhpCsFixer\\Console\\Application' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Console/Application.php',
'PhpCsFixer\\Console\\Command\\CheckCommand' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Console/Command/CheckCommand.php',
'PhpCsFixer\\Console\\Command\\DescribeCommand' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Console/Command/DescribeCommand.php',
'PhpCsFixer\\Console\\Command\\DescribeNameNotFoundException' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Console/Command/DescribeNameNotFoundException.php',
'PhpCsFixer\\Console\\Command\\DocumentationCommand' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Console/Command/DocumentationCommand.php',
@ -1894,7 +1896,6 @@ return array(
'PhpCsFixer\\Doctrine\\Annotation\\Tokens' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Doctrine/Annotation/Tokens.php',
'PhpCsFixer\\Documentation\\DocumentationLocator' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Documentation/DocumentationLocator.php',
'PhpCsFixer\\Documentation\\FixerDocumentGenerator' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Documentation/FixerDocumentGenerator.php',
'PhpCsFixer\\Documentation\\ListDocumentGenerator' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Documentation/ListDocumentGenerator.php',
'PhpCsFixer\\Documentation\\RstUtils' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Documentation/RstUtils.php',
'PhpCsFixer\\Documentation\\RuleSetDocumentationGenerator' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Documentation/RuleSetDocumentationGenerator.php',
'PhpCsFixer\\Error\\Error' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Error/Error.php',
@ -1912,6 +1913,7 @@ return array(
'PhpCsFixer\\FixerConfiguration\\FixerOption' => $vendorDir . '/friendsofphp/php-cs-fixer/src/FixerConfiguration/FixerOption.php',
'PhpCsFixer\\FixerConfiguration\\FixerOptionBuilder' => $vendorDir . '/friendsofphp/php-cs-fixer/src/FixerConfiguration/FixerOptionBuilder.php',
'PhpCsFixer\\FixerConfiguration\\FixerOptionInterface' => $vendorDir . '/friendsofphp/php-cs-fixer/src/FixerConfiguration/FixerOptionInterface.php',
'PhpCsFixer\\FixerConfiguration\\FixerOptionSorter' => $vendorDir . '/friendsofphp/php-cs-fixer/src/FixerConfiguration/FixerOptionSorter.php',
'PhpCsFixer\\FixerConfiguration\\InvalidOptionsForEnvException' => $vendorDir . '/friendsofphp/php-cs-fixer/src/FixerConfiguration/InvalidOptionsForEnvException.php',
'PhpCsFixer\\FixerDefinition\\CodeSample' => $vendorDir . '/friendsofphp/php-cs-fixer/src/FixerDefinition/CodeSample.php',
'PhpCsFixer\\FixerDefinition\\CodeSampleInterface' => $vendorDir . '/friendsofphp/php-cs-fixer/src/FixerDefinition/CodeSampleInterface.php',
@ -1928,6 +1930,7 @@ return array(
'PhpCsFixer\\FixerNameValidator' => $vendorDir . '/friendsofphp/php-cs-fixer/src/FixerNameValidator.php',
'PhpCsFixer\\Fixer\\AbstractIncrementOperatorFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/AbstractIncrementOperatorFixer.php',
'PhpCsFixer\\Fixer\\AbstractPhpUnitFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/AbstractPhpUnitFixer.php',
'PhpCsFixer\\Fixer\\AbstractShortOperatorFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/AbstractShortOperatorFixer.php',
'PhpCsFixer\\Fixer\\Alias\\ArrayPushFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Alias/ArrayPushFixer.php',
'PhpCsFixer\\Fixer\\Alias\\BacktickToShellExecFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Alias/BacktickToShellExecFixer.php',
'PhpCsFixer\\Fixer\\Alias\\EregToPregFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Alias/EregToPregFixer.php',
@ -1948,7 +1951,9 @@ return array(
'PhpCsFixer\\Fixer\\ArrayNotation\\TrimArraySpacesFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/TrimArraySpacesFixer.php',
'PhpCsFixer\\Fixer\\ArrayNotation\\WhitespaceAfterCommaInArrayFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/WhitespaceAfterCommaInArrayFixer.php',
'PhpCsFixer\\Fixer\\ArrayNotation\\YieldFromArrayToYieldsFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/YieldFromArrayToYieldsFixer.php',
'PhpCsFixer\\Fixer\\AttributeNotation\\AttributeEmptyParenthesesFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/AttributeNotation/AttributeEmptyParenthesesFixer.php',
'PhpCsFixer\\Fixer\\Basic\\BracesFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Basic/BracesFixer.php',
'PhpCsFixer\\Fixer\\Basic\\BracesPositionFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Basic/BracesPositionFixer.php',
'PhpCsFixer\\Fixer\\Basic\\CurlyBracesPositionFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Basic/CurlyBracesPositionFixer.php',
'PhpCsFixer\\Fixer\\Basic\\EncodingFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Basic/EncodingFixer.php',
'PhpCsFixer\\Fixer\\Basic\\NoMultipleStatementsPerLineFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Basic/NoMultipleStatementsPerLineFixer.php',
@ -1966,6 +1971,7 @@ return array(
'PhpCsFixer\\Fixer\\Casing\\MagicMethodCasingFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Casing/MagicMethodCasingFixer.php',
'PhpCsFixer\\Fixer\\Casing\\NativeFunctionCasingFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Casing/NativeFunctionCasingFixer.php',
'PhpCsFixer\\Fixer\\Casing\\NativeFunctionTypeDeclarationCasingFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Casing/NativeFunctionTypeDeclarationCasingFixer.php',
'PhpCsFixer\\Fixer\\Casing\\NativeTypeDeclarationCasingFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Casing/NativeTypeDeclarationCasingFixer.php',
'PhpCsFixer\\Fixer\\CastNotation\\CastSpacesFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/CastNotation/CastSpacesFixer.php',
'PhpCsFixer\\Fixer\\CastNotation\\LowercaseCastFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/CastNotation/LowercaseCastFixer.php',
'PhpCsFixer\\Fixer\\CastNotation\\ModernizeTypesCastingFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/CastNotation/ModernizeTypesCastingFixer.php',
@ -1985,6 +1991,7 @@ return array(
'PhpCsFixer\\Fixer\\ClassNotation\\OrderedInterfacesFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedInterfacesFixer.php',
'PhpCsFixer\\Fixer\\ClassNotation\\OrderedTraitsFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedTraitsFixer.php',
'PhpCsFixer\\Fixer\\ClassNotation\\OrderedTypesFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedTypesFixer.php',
'PhpCsFixer\\Fixer\\ClassNotation\\PhpdocReadonlyClassCommentToKeywordFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/PhpdocReadonlyClassCommentToKeywordFixer.php',
'PhpCsFixer\\Fixer\\ClassNotation\\ProtectedToPrivateFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/ProtectedToPrivateFixer.php',
'PhpCsFixer\\Fixer\\ClassNotation\\SelfAccessorFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/SelfAccessorFixer.php',
'PhpCsFixer\\Fixer\\ClassNotation\\SelfStaticAccessorFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/SelfStaticAccessorFixer.php',
@ -2011,6 +2018,7 @@ return array(
'PhpCsFixer\\Fixer\\ControlStructure\\NoBreakCommentFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoBreakCommentFixer.php',
'PhpCsFixer\\Fixer\\ControlStructure\\NoSuperfluousElseifFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoSuperfluousElseifFixer.php',
'PhpCsFixer\\Fixer\\ControlStructure\\NoTrailingCommaInListCallFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoTrailingCommaInListCallFixer.php',
'PhpCsFixer\\Fixer\\ControlStructure\\NoUnneededBracesFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededBracesFixer.php',
'PhpCsFixer\\Fixer\\ControlStructure\\NoUnneededControlParenthesesFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededControlParenthesesFixer.php',
'PhpCsFixer\\Fixer\\ControlStructure\\NoUnneededCurlyBracesFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededCurlyBracesFixer.php',
'PhpCsFixer\\Fixer\\ControlStructure\\NoUselessElseFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUselessElseFixer.php',
@ -2088,7 +2096,9 @@ return array(
'PhpCsFixer\\Fixer\\Operator\\ConcatSpaceFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Operator/ConcatSpaceFixer.php',
'PhpCsFixer\\Fixer\\Operator\\IncrementStyleFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Operator/IncrementStyleFixer.php',
'PhpCsFixer\\Fixer\\Operator\\LogicalOperatorsFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Operator/LogicalOperatorsFixer.php',
'PhpCsFixer\\Fixer\\Operator\\LongToShorthandOperatorFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Operator/LongToShorthandOperatorFixer.php',
'PhpCsFixer\\Fixer\\Operator\\NewWithBracesFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Operator/NewWithBracesFixer.php',
'PhpCsFixer\\Fixer\\Operator\\NewWithParenthesesFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Operator/NewWithParenthesesFixer.php',
'PhpCsFixer\\Fixer\\Operator\\NoSpaceAroundDoubleColonFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Operator/NoSpaceAroundDoubleColonFixer.php',
'PhpCsFixer\\Fixer\\Operator\\NoUselessConcatOperatorFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Operator/NoUselessConcatOperatorFixer.php',
'PhpCsFixer\\Fixer\\Operator\\NoUselessNullsafeOperatorFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Operator/NoUselessNullsafeOperatorFixer.php',
@ -2108,6 +2118,9 @@ return array(
'PhpCsFixer\\Fixer\\PhpTag\\LinebreakAfterOpeningTagFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/PhpTag/LinebreakAfterOpeningTagFixer.php',
'PhpCsFixer\\Fixer\\PhpTag\\NoClosingTagFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/PhpTag/NoClosingTagFixer.php',
'PhpCsFixer\\Fixer\\PhpUnit\\PhpUnitConstructFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitConstructFixer.php',
'PhpCsFixer\\Fixer\\PhpUnit\\PhpUnitDataProviderNameFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDataProviderNameFixer.php',
'PhpCsFixer\\Fixer\\PhpUnit\\PhpUnitDataProviderReturnTypeFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDataProviderReturnTypeFixer.php',
'PhpCsFixer\\Fixer\\PhpUnit\\PhpUnitDataProviderStaticFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDataProviderStaticFixer.php',
'PhpCsFixer\\Fixer\\PhpUnit\\PhpUnitDedicateAssertFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDedicateAssertFixer.php',
'PhpCsFixer\\Fixer\\PhpUnit\\PhpUnitDedicateAssertInternalTypeFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDedicateAssertInternalTypeFixer.php',
'PhpCsFixer\\Fixer\\PhpUnit\\PhpUnitExpectationFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitExpectationFixer.php',
@ -2182,6 +2195,7 @@ return array(
'PhpCsFixer\\Fixer\\Whitespace\\ArrayIndentationFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/ArrayIndentationFixer.php',
'PhpCsFixer\\Fixer\\Whitespace\\BlankLineBeforeStatementFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/BlankLineBeforeStatementFixer.php',
'PhpCsFixer\\Fixer\\Whitespace\\BlankLineBetweenImportGroupsFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/BlankLineBetweenImportGroupsFixer.php',
'PhpCsFixer\\Fixer\\Whitespace\\CompactNullableTypeDeclarationFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/CompactNullableTypeDeclarationFixer.php',
'PhpCsFixer\\Fixer\\Whitespace\\CompactNullableTypehintFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/CompactNullableTypehintFixer.php',
'PhpCsFixer\\Fixer\\Whitespace\\HeredocIndentationFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/HeredocIndentationFixer.php',
'PhpCsFixer\\Fixer\\Whitespace\\IndentationTypeFixer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/IndentationTypeFixer.php',
@ -2223,6 +2237,10 @@ return array(
'PhpCsFixer\\RuleSet\\Sets\\DoctrineAnnotationSet' => $vendorDir . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/DoctrineAnnotationSet.php',
'PhpCsFixer\\RuleSet\\Sets\\PERCS1x0RiskySet' => $vendorDir . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERCS1x0RiskySet.php',
'PhpCsFixer\\RuleSet\\Sets\\PERCS1x0Set' => $vendorDir . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERCS1x0Set.php',
'PhpCsFixer\\RuleSet\\Sets\\PERCS2x0RiskySet' => $vendorDir . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERCS2x0RiskySet.php',
'PhpCsFixer\\RuleSet\\Sets\\PERCS2x0Set' => $vendorDir . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERCS2x0Set.php',
'PhpCsFixer\\RuleSet\\Sets\\PERCSRiskySet' => $vendorDir . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERCSRiskySet.php',
'PhpCsFixer\\RuleSet\\Sets\\PERCSSet' => $vendorDir . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERCSSet.php',
'PhpCsFixer\\RuleSet\\Sets\\PERRiskySet' => $vendorDir . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERRiskySet.php',
'PhpCsFixer\\RuleSet\\Sets\\PERSet' => $vendorDir . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERSet.php',
'PhpCsFixer\\RuleSet\\Sets\\PHP54MigrationSet' => $vendorDir . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHP54MigrationSet.php',
@ -2238,6 +2256,7 @@ return array(
'PhpCsFixer\\RuleSet\\Sets\\PHP80MigrationSet' => $vendorDir . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHP80MigrationSet.php',
'PhpCsFixer\\RuleSet\\Sets\\PHP81MigrationSet' => $vendorDir . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHP81MigrationSet.php',
'PhpCsFixer\\RuleSet\\Sets\\PHP82MigrationSet' => $vendorDir . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHP82MigrationSet.php',
'PhpCsFixer\\RuleSet\\Sets\\PHP83MigrationSet' => $vendorDir . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHP83MigrationSet.php',
'PhpCsFixer\\RuleSet\\Sets\\PHPUnit100MigrationRiskySet' => $vendorDir . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHPUnit100MigrationRiskySet.php',
'PhpCsFixer\\RuleSet\\Sets\\PHPUnit30MigrationRiskySet' => $vendorDir . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHPUnit30MigrationRiskySet.php',
'PhpCsFixer\\RuleSet\\Sets\\PHPUnit32MigrationRiskySet' => $vendorDir . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHPUnit32MigrationRiskySet.php',
@ -2294,6 +2313,7 @@ return array(
'PhpCsFixer\\Tokenizer\\Analyzer\\NamespacesAnalyzer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/NamespacesAnalyzer.php',
'PhpCsFixer\\Tokenizer\\Analyzer\\RangeAnalyzer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/RangeAnalyzer.php',
'PhpCsFixer\\Tokenizer\\Analyzer\\ReferenceAnalyzer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/ReferenceAnalyzer.php',
'PhpCsFixer\\Tokenizer\\Analyzer\\SwitchAnalyzer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/SwitchAnalyzer.php',
'PhpCsFixer\\Tokenizer\\Analyzer\\WhitespacesAnalyzer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/WhitespacesAnalyzer.php',
'PhpCsFixer\\Tokenizer\\CT' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Tokenizer/CT.php',
'PhpCsFixer\\Tokenizer\\CodeHasher' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Tokenizer/CodeHasher.php',
@ -2304,6 +2324,7 @@ return array(
'PhpCsFixer\\Tokenizer\\Transformer\\ArrayTypehintTransformer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/ArrayTypehintTransformer.php',
'PhpCsFixer\\Tokenizer\\Transformer\\AttributeTransformer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/AttributeTransformer.php',
'PhpCsFixer\\Tokenizer\\Transformer\\BraceClassInstantiationTransformer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/BraceClassInstantiationTransformer.php',
'PhpCsFixer\\Tokenizer\\Transformer\\BraceTransformer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/BraceTransformer.php',
'PhpCsFixer\\Tokenizer\\Transformer\\ClassConstantTransformer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/ClassConstantTransformer.php',
'PhpCsFixer\\Tokenizer\\Transformer\\ConstructorPromotionTransformer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/ConstructorPromotionTransformer.php',
'PhpCsFixer\\Tokenizer\\Transformer\\DisjunctiveNormalFormTypeParenthesisTransformer' => $vendorDir . '/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/DisjunctiveNormalFormTypeParenthesisTransformer.php',
@ -3416,19 +3437,25 @@ return array(
'Symfony\\Component\\Console\\Command\\ListCommand' => $vendorDir . '/symfony/console/Command/ListCommand.php',
'Symfony\\Component\\Console\\Command\\LockableTrait' => $vendorDir . '/symfony/console/Command/LockableTrait.php',
'Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => $vendorDir . '/symfony/console/Command/SignalableCommandInterface.php',
'Symfony\\Component\\Console\\Command\\TraceableCommand' => $vendorDir . '/symfony/console/Command/TraceableCommand.php',
'Symfony\\Component\\Console\\Completion\\CompletionInput' => $vendorDir . '/symfony/console/Completion/CompletionInput.php',
'Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => $vendorDir . '/symfony/console/Completion/CompletionSuggestions.php',
'Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/BashCompletionOutput.php',
'Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => $vendorDir . '/symfony/console/Completion/Output/CompletionOutputInterface.php',
'Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/FishCompletionOutput.php',
'Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/ZshCompletionOutput.php',
'Symfony\\Component\\Console\\Completion\\Suggestion' => $vendorDir . '/symfony/console/Completion/Suggestion.php',
'Symfony\\Component\\Console\\ConsoleEvents' => $vendorDir . '/symfony/console/ConsoleEvents.php',
'Symfony\\Component\\Console\\Cursor' => $vendorDir . '/symfony/console/Cursor.php',
'Symfony\\Component\\Console\\DataCollector\\CommandDataCollector' => $vendorDir . '/symfony/console/DataCollector/CommandDataCollector.php',
'Symfony\\Component\\Console\\Debug\\CliRequest' => $vendorDir . '/symfony/console/Debug/CliRequest.php',
'Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => $vendorDir . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php',
'Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => $vendorDir . '/symfony/console/Descriptor/ApplicationDescription.php',
'Symfony\\Component\\Console\\Descriptor\\Descriptor' => $vendorDir . '/symfony/console/Descriptor/Descriptor.php',
'Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => $vendorDir . '/symfony/console/Descriptor/DescriptorInterface.php',
'Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => $vendorDir . '/symfony/console/Descriptor/JsonDescriptor.php',
'Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => $vendorDir . '/symfony/console/Descriptor/MarkdownDescriptor.php',
'Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => $vendorDir . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php',
'Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => $vendorDir . '/symfony/console/Descriptor/TextDescriptor.php',
'Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => $vendorDir . '/symfony/console/Descriptor/XmlDescriptor.php',
'Symfony\\Component\\Console\\EventListener\\ErrorListener' => $vendorDir . '/symfony/console/EventListener/ErrorListener.php',
@ -3444,6 +3471,7 @@ return array(
'Symfony\\Component\\Console\\Exception\\LogicException' => $vendorDir . '/symfony/console/Exception/LogicException.php',
'Symfony\\Component\\Console\\Exception\\MissingInputException' => $vendorDir . '/symfony/console/Exception/MissingInputException.php',
'Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => $vendorDir . '/symfony/console/Exception/NamespaceNotFoundException.php',
'Symfony\\Component\\Console\\Exception\\RunCommandFailedException' => $vendorDir . '/symfony/console/Exception/RunCommandFailedException.php',
'Symfony\\Component\\Console\\Exception\\RuntimeException' => $vendorDir . '/symfony/console/Exception/RuntimeException.php',
'Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatter.php',
'Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatterStyle.php',
@ -3461,6 +3489,7 @@ return array(
'Symfony\\Component\\Console\\Helper\\HelperInterface' => $vendorDir . '/symfony/console/Helper/HelperInterface.php',
'Symfony\\Component\\Console\\Helper\\HelperSet' => $vendorDir . '/symfony/console/Helper/HelperSet.php',
'Symfony\\Component\\Console\\Helper\\InputAwareHelper' => $vendorDir . '/symfony/console/Helper/InputAwareHelper.php',
'Symfony\\Component\\Console\\Helper\\OutputWrapper' => $vendorDir . '/symfony/console/Helper/OutputWrapper.php',
'Symfony\\Component\\Console\\Helper\\ProcessHelper' => $vendorDir . '/symfony/console/Helper/ProcessHelper.php',
'Symfony\\Component\\Console\\Helper\\ProgressBar' => $vendorDir . '/symfony/console/Helper/ProgressBar.php',
'Symfony\\Component\\Console\\Helper\\ProgressIndicator' => $vendorDir . '/symfony/console/Helper/ProgressIndicator.php',
@ -3483,6 +3512,10 @@ return array(
'Symfony\\Component\\Console\\Input\\StreamableInputInterface' => $vendorDir . '/symfony/console/Input/StreamableInputInterface.php',
'Symfony\\Component\\Console\\Input\\StringInput' => $vendorDir . '/symfony/console/Input/StringInput.php',
'Symfony\\Component\\Console\\Logger\\ConsoleLogger' => $vendorDir . '/symfony/console/Logger/ConsoleLogger.php',
'Symfony\\Component\\Console\\Messenger\\RunCommandContext' => $vendorDir . '/symfony/console/Messenger/RunCommandContext.php',
'Symfony\\Component\\Console\\Messenger\\RunCommandMessage' => $vendorDir . '/symfony/console/Messenger/RunCommandMessage.php',
'Symfony\\Component\\Console\\Messenger\\RunCommandMessageHandler' => $vendorDir . '/symfony/console/Messenger/RunCommandMessageHandler.php',
'Symfony\\Component\\Console\\Output\\AnsiColorMode' => $vendorDir . '/symfony/console/Output/AnsiColorMode.php',
'Symfony\\Component\\Console\\Output\\BufferedOutput' => $vendorDir . '/symfony/console/Output/BufferedOutput.php',
'Symfony\\Component\\Console\\Output\\ConsoleOutput' => $vendorDir . '/symfony/console/Output/ConsoleOutput.php',
'Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => $vendorDir . '/symfony/console/Output/ConsoleOutputInterface.php',
@ -3495,6 +3528,7 @@ return array(
'Symfony\\Component\\Console\\Question\\ChoiceQuestion' => $vendorDir . '/symfony/console/Question/ChoiceQuestion.php',
'Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => $vendorDir . '/symfony/console/Question/ConfirmationQuestion.php',
'Symfony\\Component\\Console\\Question\\Question' => $vendorDir . '/symfony/console/Question/Question.php',
'Symfony\\Component\\Console\\SignalRegistry\\SignalMap' => $vendorDir . '/symfony/console/SignalRegistry/SignalMap.php',
'Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => $vendorDir . '/symfony/console/SignalRegistry/SignalRegistry.php',
'Symfony\\Component\\Console\\SingleCommandApplication' => $vendorDir . '/symfony/console/SingleCommandApplication.php',
'Symfony\\Component\\Console\\Style\\OutputStyle' => $vendorDir . '/symfony/console/Style/OutputStyle.php',
@ -3566,11 +3600,16 @@ return array(
'Symfony\\Component\\Process\\Exception\\ProcessFailedException' => $vendorDir . '/symfony/process/Exception/ProcessFailedException.php',
'Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => $vendorDir . '/symfony/process/Exception/ProcessSignaledException.php',
'Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => $vendorDir . '/symfony/process/Exception/ProcessTimedOutException.php',
'Symfony\\Component\\Process\\Exception\\RunProcessFailedException' => $vendorDir . '/symfony/process/Exception/RunProcessFailedException.php',
'Symfony\\Component\\Process\\Exception\\RuntimeException' => $vendorDir . '/symfony/process/Exception/RuntimeException.php',
'Symfony\\Component\\Process\\ExecutableFinder' => $vendorDir . '/symfony/process/ExecutableFinder.php',
'Symfony\\Component\\Process\\InputStream' => $vendorDir . '/symfony/process/InputStream.php',
'Symfony\\Component\\Process\\Messenger\\RunProcessContext' => $vendorDir . '/symfony/process/Messenger/RunProcessContext.php',
'Symfony\\Component\\Process\\Messenger\\RunProcessMessage' => $vendorDir . '/symfony/process/Messenger/RunProcessMessage.php',
'Symfony\\Component\\Process\\Messenger\\RunProcessMessageHandler' => $vendorDir . '/symfony/process/Messenger/RunProcessMessageHandler.php',
'Symfony\\Component\\Process\\PhpExecutableFinder' => $vendorDir . '/symfony/process/PhpExecutableFinder.php',
'Symfony\\Component\\Process\\PhpProcess' => $vendorDir . '/symfony/process/PhpProcess.php',
'Symfony\\Component\\Process\\PhpSubprocess' => $vendorDir . '/symfony/process/PhpSubprocess.php',
'Symfony\\Component\\Process\\Pipes\\AbstractPipes' => $vendorDir . '/symfony/process/Pipes/AbstractPipes.php',
'Symfony\\Component\\Process\\Pipes\\PipesInterface' => $vendorDir . '/symfony/process/Pipes/PipesInterface.php',
'Symfony\\Component\\Process\\Pipes\\UnixPipes' => $vendorDir . '/symfony/process/Pipes/UnixPipes.php',
@ -3604,7 +3643,6 @@ return array(
'Symfony\\Contracts\\Service\\ServiceProviderInterface' => $vendorDir . '/symfony/service-contracts/ServiceProviderInterface.php',
'Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberInterface.php',
'Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberTrait.php',
'Symfony\\Contracts\\Service\\Test\\ServiceLocatorTest' => $vendorDir . '/symfony/service-contracts/Test/ServiceLocatorTest.php',
'Symfony\\Polyfill\\Ctype\\Ctype' => $vendorDir . '/symfony/polyfill-ctype/Ctype.php',
'Symfony\\Polyfill\\Intl\\Grapheme\\Grapheme' => $vendorDir . '/symfony/polyfill-intl-grapheme/Grapheme.php',
'Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Normalizer.php',
@ -3666,6 +3704,7 @@ return array(
'setasign\\Fpdi\\PdfParser\\Filter\\FlateException' => $vendorDir . '/setasign/fpdi/src/PdfParser/Filter/FlateException.php',
'setasign\\Fpdi\\PdfParser\\Filter\\Lzw' => $vendorDir . '/setasign/fpdi/src/PdfParser/Filter/Lzw.php',
'setasign\\Fpdi\\PdfParser\\Filter\\LzwException' => $vendorDir . '/setasign/fpdi/src/PdfParser/Filter/LzwException.php',
'setasign\\Fpdi\\PdfParser\\PdfParser' => $vendorDir . '/setasign/fpdi/src/PdfParser/PdfParser.php',
'setasign\\Fpdi\\PdfParser\\PdfParserException' => $vendorDir . '/setasign/fpdi/src/PdfParser/PdfParserException.php',
'setasign\\Fpdi\\PdfParser\\StreamReader' => $vendorDir . '/setasign/fpdi/src/PdfParser/StreamReader.php',
'setasign\\Fpdi\\PdfParser\\Tokenizer' => $vendorDir . '/setasign/fpdi/src/PdfParser/Tokenizer.php',

View File

@ -1724,6 +1724,7 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'PHPUnit\\Framework\\Constraint\\LogicalXor' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/LogicalXor.php',
'PHPUnit\\Framework\\Constraint\\ObjectEquals' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectEquals.php',
'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasAttribute.php',
'PHPUnit\\Framework\\Constraint\\ObjectHasProperty' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Object/ObjectHasProperty.php',
'PHPUnit\\Framework\\Constraint\\Operator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Operator/Operator.php',
'PHPUnit\\Framework\\Constraint\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/String/RegularExpression.php',
'PHPUnit\\Framework\\Constraint\\SameSize' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Cardinality/SameSize.php',
@ -2118,6 +2119,7 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'PhpCsFixer\\ConfigurationException\\InvalidForEnvFixerConfigurationException' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/ConfigurationException/InvalidForEnvFixerConfigurationException.php',
'PhpCsFixer\\ConfigurationException\\RequiredFixerConfigurationException' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/ConfigurationException/RequiredFixerConfigurationException.php',
'PhpCsFixer\\Console\\Application' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Console/Application.php',
'PhpCsFixer\\Console\\Command\\CheckCommand' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Console/Command/CheckCommand.php',
'PhpCsFixer\\Console\\Command\\DescribeCommand' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Console/Command/DescribeCommand.php',
'PhpCsFixer\\Console\\Command\\DescribeNameNotFoundException' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Console/Command/DescribeNameNotFoundException.php',
'PhpCsFixer\\Console\\Command\\DocumentationCommand' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Console/Command/DocumentationCommand.php',
@ -2171,7 +2173,6 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'PhpCsFixer\\Doctrine\\Annotation\\Tokens' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Doctrine/Annotation/Tokens.php',
'PhpCsFixer\\Documentation\\DocumentationLocator' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Documentation/DocumentationLocator.php',
'PhpCsFixer\\Documentation\\FixerDocumentGenerator' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Documentation/FixerDocumentGenerator.php',
'PhpCsFixer\\Documentation\\ListDocumentGenerator' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Documentation/ListDocumentGenerator.php',
'PhpCsFixer\\Documentation\\RstUtils' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Documentation/RstUtils.php',
'PhpCsFixer\\Documentation\\RuleSetDocumentationGenerator' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Documentation/RuleSetDocumentationGenerator.php',
'PhpCsFixer\\Error\\Error' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Error/Error.php',
@ -2189,6 +2190,7 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'PhpCsFixer\\FixerConfiguration\\FixerOption' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/FixerConfiguration/FixerOption.php',
'PhpCsFixer\\FixerConfiguration\\FixerOptionBuilder' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/FixerConfiguration/FixerOptionBuilder.php',
'PhpCsFixer\\FixerConfiguration\\FixerOptionInterface' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/FixerConfiguration/FixerOptionInterface.php',
'PhpCsFixer\\FixerConfiguration\\FixerOptionSorter' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/FixerConfiguration/FixerOptionSorter.php',
'PhpCsFixer\\FixerConfiguration\\InvalidOptionsForEnvException' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/FixerConfiguration/InvalidOptionsForEnvException.php',
'PhpCsFixer\\FixerDefinition\\CodeSample' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/FixerDefinition/CodeSample.php',
'PhpCsFixer\\FixerDefinition\\CodeSampleInterface' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/FixerDefinition/CodeSampleInterface.php',
@ -2205,6 +2207,7 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'PhpCsFixer\\FixerNameValidator' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/FixerNameValidator.php',
'PhpCsFixer\\Fixer\\AbstractIncrementOperatorFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/AbstractIncrementOperatorFixer.php',
'PhpCsFixer\\Fixer\\AbstractPhpUnitFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/AbstractPhpUnitFixer.php',
'PhpCsFixer\\Fixer\\AbstractShortOperatorFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/AbstractShortOperatorFixer.php',
'PhpCsFixer\\Fixer\\Alias\\ArrayPushFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Alias/ArrayPushFixer.php',
'PhpCsFixer\\Fixer\\Alias\\BacktickToShellExecFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Alias/BacktickToShellExecFixer.php',
'PhpCsFixer\\Fixer\\Alias\\EregToPregFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Alias/EregToPregFixer.php',
@ -2225,7 +2228,9 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'PhpCsFixer\\Fixer\\ArrayNotation\\TrimArraySpacesFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/TrimArraySpacesFixer.php',
'PhpCsFixer\\Fixer\\ArrayNotation\\WhitespaceAfterCommaInArrayFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/WhitespaceAfterCommaInArrayFixer.php',
'PhpCsFixer\\Fixer\\ArrayNotation\\YieldFromArrayToYieldsFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ArrayNotation/YieldFromArrayToYieldsFixer.php',
'PhpCsFixer\\Fixer\\AttributeNotation\\AttributeEmptyParenthesesFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/AttributeNotation/AttributeEmptyParenthesesFixer.php',
'PhpCsFixer\\Fixer\\Basic\\BracesFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Basic/BracesFixer.php',
'PhpCsFixer\\Fixer\\Basic\\BracesPositionFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Basic/BracesPositionFixer.php',
'PhpCsFixer\\Fixer\\Basic\\CurlyBracesPositionFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Basic/CurlyBracesPositionFixer.php',
'PhpCsFixer\\Fixer\\Basic\\EncodingFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Basic/EncodingFixer.php',
'PhpCsFixer\\Fixer\\Basic\\NoMultipleStatementsPerLineFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Basic/NoMultipleStatementsPerLineFixer.php',
@ -2243,6 +2248,7 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'PhpCsFixer\\Fixer\\Casing\\MagicMethodCasingFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Casing/MagicMethodCasingFixer.php',
'PhpCsFixer\\Fixer\\Casing\\NativeFunctionCasingFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Casing/NativeFunctionCasingFixer.php',
'PhpCsFixer\\Fixer\\Casing\\NativeFunctionTypeDeclarationCasingFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Casing/NativeFunctionTypeDeclarationCasingFixer.php',
'PhpCsFixer\\Fixer\\Casing\\NativeTypeDeclarationCasingFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Casing/NativeTypeDeclarationCasingFixer.php',
'PhpCsFixer\\Fixer\\CastNotation\\CastSpacesFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/CastNotation/CastSpacesFixer.php',
'PhpCsFixer\\Fixer\\CastNotation\\LowercaseCastFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/CastNotation/LowercaseCastFixer.php',
'PhpCsFixer\\Fixer\\CastNotation\\ModernizeTypesCastingFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/CastNotation/ModernizeTypesCastingFixer.php',
@ -2262,6 +2268,7 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'PhpCsFixer\\Fixer\\ClassNotation\\OrderedInterfacesFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedInterfacesFixer.php',
'PhpCsFixer\\Fixer\\ClassNotation\\OrderedTraitsFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedTraitsFixer.php',
'PhpCsFixer\\Fixer\\ClassNotation\\OrderedTypesFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/OrderedTypesFixer.php',
'PhpCsFixer\\Fixer\\ClassNotation\\PhpdocReadonlyClassCommentToKeywordFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/PhpdocReadonlyClassCommentToKeywordFixer.php',
'PhpCsFixer\\Fixer\\ClassNotation\\ProtectedToPrivateFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/ProtectedToPrivateFixer.php',
'PhpCsFixer\\Fixer\\ClassNotation\\SelfAccessorFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/SelfAccessorFixer.php',
'PhpCsFixer\\Fixer\\ClassNotation\\SelfStaticAccessorFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ClassNotation/SelfStaticAccessorFixer.php',
@ -2288,6 +2295,7 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'PhpCsFixer\\Fixer\\ControlStructure\\NoBreakCommentFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoBreakCommentFixer.php',
'PhpCsFixer\\Fixer\\ControlStructure\\NoSuperfluousElseifFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoSuperfluousElseifFixer.php',
'PhpCsFixer\\Fixer\\ControlStructure\\NoTrailingCommaInListCallFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoTrailingCommaInListCallFixer.php',
'PhpCsFixer\\Fixer\\ControlStructure\\NoUnneededBracesFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededBracesFixer.php',
'PhpCsFixer\\Fixer\\ControlStructure\\NoUnneededControlParenthesesFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededControlParenthesesFixer.php',
'PhpCsFixer\\Fixer\\ControlStructure\\NoUnneededCurlyBracesFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUnneededCurlyBracesFixer.php',
'PhpCsFixer\\Fixer\\ControlStructure\\NoUselessElseFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/ControlStructure/NoUselessElseFixer.php',
@ -2365,7 +2373,9 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'PhpCsFixer\\Fixer\\Operator\\ConcatSpaceFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Operator/ConcatSpaceFixer.php',
'PhpCsFixer\\Fixer\\Operator\\IncrementStyleFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Operator/IncrementStyleFixer.php',
'PhpCsFixer\\Fixer\\Operator\\LogicalOperatorsFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Operator/LogicalOperatorsFixer.php',
'PhpCsFixer\\Fixer\\Operator\\LongToShorthandOperatorFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Operator/LongToShorthandOperatorFixer.php',
'PhpCsFixer\\Fixer\\Operator\\NewWithBracesFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Operator/NewWithBracesFixer.php',
'PhpCsFixer\\Fixer\\Operator\\NewWithParenthesesFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Operator/NewWithParenthesesFixer.php',
'PhpCsFixer\\Fixer\\Operator\\NoSpaceAroundDoubleColonFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Operator/NoSpaceAroundDoubleColonFixer.php',
'PhpCsFixer\\Fixer\\Operator\\NoUselessConcatOperatorFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Operator/NoUselessConcatOperatorFixer.php',
'PhpCsFixer\\Fixer\\Operator\\NoUselessNullsafeOperatorFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Operator/NoUselessNullsafeOperatorFixer.php',
@ -2385,6 +2395,9 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'PhpCsFixer\\Fixer\\PhpTag\\LinebreakAfterOpeningTagFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/PhpTag/LinebreakAfterOpeningTagFixer.php',
'PhpCsFixer\\Fixer\\PhpTag\\NoClosingTagFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/PhpTag/NoClosingTagFixer.php',
'PhpCsFixer\\Fixer\\PhpUnit\\PhpUnitConstructFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitConstructFixer.php',
'PhpCsFixer\\Fixer\\PhpUnit\\PhpUnitDataProviderNameFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDataProviderNameFixer.php',
'PhpCsFixer\\Fixer\\PhpUnit\\PhpUnitDataProviderReturnTypeFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDataProviderReturnTypeFixer.php',
'PhpCsFixer\\Fixer\\PhpUnit\\PhpUnitDataProviderStaticFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDataProviderStaticFixer.php',
'PhpCsFixer\\Fixer\\PhpUnit\\PhpUnitDedicateAssertFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDedicateAssertFixer.php',
'PhpCsFixer\\Fixer\\PhpUnit\\PhpUnitDedicateAssertInternalTypeFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitDedicateAssertInternalTypeFixer.php',
'PhpCsFixer\\Fixer\\PhpUnit\\PhpUnitExpectationFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/PhpUnit/PhpUnitExpectationFixer.php',
@ -2459,6 +2472,7 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'PhpCsFixer\\Fixer\\Whitespace\\ArrayIndentationFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/ArrayIndentationFixer.php',
'PhpCsFixer\\Fixer\\Whitespace\\BlankLineBeforeStatementFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/BlankLineBeforeStatementFixer.php',
'PhpCsFixer\\Fixer\\Whitespace\\BlankLineBetweenImportGroupsFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/BlankLineBetweenImportGroupsFixer.php',
'PhpCsFixer\\Fixer\\Whitespace\\CompactNullableTypeDeclarationFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/CompactNullableTypeDeclarationFixer.php',
'PhpCsFixer\\Fixer\\Whitespace\\CompactNullableTypehintFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/CompactNullableTypehintFixer.php',
'PhpCsFixer\\Fixer\\Whitespace\\HeredocIndentationFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/HeredocIndentationFixer.php',
'PhpCsFixer\\Fixer\\Whitespace\\IndentationTypeFixer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Fixer/Whitespace/IndentationTypeFixer.php',
@ -2500,6 +2514,10 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'PhpCsFixer\\RuleSet\\Sets\\DoctrineAnnotationSet' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/DoctrineAnnotationSet.php',
'PhpCsFixer\\RuleSet\\Sets\\PERCS1x0RiskySet' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERCS1x0RiskySet.php',
'PhpCsFixer\\RuleSet\\Sets\\PERCS1x0Set' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERCS1x0Set.php',
'PhpCsFixer\\RuleSet\\Sets\\PERCS2x0RiskySet' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERCS2x0RiskySet.php',
'PhpCsFixer\\RuleSet\\Sets\\PERCS2x0Set' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERCS2x0Set.php',
'PhpCsFixer\\RuleSet\\Sets\\PERCSRiskySet' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERCSRiskySet.php',
'PhpCsFixer\\RuleSet\\Sets\\PERCSSet' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERCSSet.php',
'PhpCsFixer\\RuleSet\\Sets\\PERRiskySet' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERRiskySet.php',
'PhpCsFixer\\RuleSet\\Sets\\PERSet' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PERSet.php',
'PhpCsFixer\\RuleSet\\Sets\\PHP54MigrationSet' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHP54MigrationSet.php',
@ -2515,6 +2533,7 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'PhpCsFixer\\RuleSet\\Sets\\PHP80MigrationSet' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHP80MigrationSet.php',
'PhpCsFixer\\RuleSet\\Sets\\PHP81MigrationSet' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHP81MigrationSet.php',
'PhpCsFixer\\RuleSet\\Sets\\PHP82MigrationSet' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHP82MigrationSet.php',
'PhpCsFixer\\RuleSet\\Sets\\PHP83MigrationSet' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHP83MigrationSet.php',
'PhpCsFixer\\RuleSet\\Sets\\PHPUnit100MigrationRiskySet' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHPUnit100MigrationRiskySet.php',
'PhpCsFixer\\RuleSet\\Sets\\PHPUnit30MigrationRiskySet' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHPUnit30MigrationRiskySet.php',
'PhpCsFixer\\RuleSet\\Sets\\PHPUnit32MigrationRiskySet' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/RuleSet/Sets/PHPUnit32MigrationRiskySet.php',
@ -2571,6 +2590,7 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'PhpCsFixer\\Tokenizer\\Analyzer\\NamespacesAnalyzer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/NamespacesAnalyzer.php',
'PhpCsFixer\\Tokenizer\\Analyzer\\RangeAnalyzer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/RangeAnalyzer.php',
'PhpCsFixer\\Tokenizer\\Analyzer\\ReferenceAnalyzer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/ReferenceAnalyzer.php',
'PhpCsFixer\\Tokenizer\\Analyzer\\SwitchAnalyzer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/SwitchAnalyzer.php',
'PhpCsFixer\\Tokenizer\\Analyzer\\WhitespacesAnalyzer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Tokenizer/Analyzer/WhitespacesAnalyzer.php',
'PhpCsFixer\\Tokenizer\\CT' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Tokenizer/CT.php',
'PhpCsFixer\\Tokenizer\\CodeHasher' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Tokenizer/CodeHasher.php',
@ -2581,6 +2601,7 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'PhpCsFixer\\Tokenizer\\Transformer\\ArrayTypehintTransformer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/ArrayTypehintTransformer.php',
'PhpCsFixer\\Tokenizer\\Transformer\\AttributeTransformer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/AttributeTransformer.php',
'PhpCsFixer\\Tokenizer\\Transformer\\BraceClassInstantiationTransformer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/BraceClassInstantiationTransformer.php',
'PhpCsFixer\\Tokenizer\\Transformer\\BraceTransformer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/BraceTransformer.php',
'PhpCsFixer\\Tokenizer\\Transformer\\ClassConstantTransformer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/ClassConstantTransformer.php',
'PhpCsFixer\\Tokenizer\\Transformer\\ConstructorPromotionTransformer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/ConstructorPromotionTransformer.php',
'PhpCsFixer\\Tokenizer\\Transformer\\DisjunctiveNormalFormTypeParenthesisTransformer' => __DIR__ . '/..' . '/friendsofphp/php-cs-fixer/src/Tokenizer/Transformer/DisjunctiveNormalFormTypeParenthesisTransformer.php',
@ -3693,19 +3714,25 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'Symfony\\Component\\Console\\Command\\ListCommand' => __DIR__ . '/..' . '/symfony/console/Command/ListCommand.php',
'Symfony\\Component\\Console\\Command\\LockableTrait' => __DIR__ . '/..' . '/symfony/console/Command/LockableTrait.php',
'Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => __DIR__ . '/..' . '/symfony/console/Command/SignalableCommandInterface.php',
'Symfony\\Component\\Console\\Command\\TraceableCommand' => __DIR__ . '/..' . '/symfony/console/Command/TraceableCommand.php',
'Symfony\\Component\\Console\\Completion\\CompletionInput' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionInput.php',
'Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionSuggestions.php',
'Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/BashCompletionOutput.php',
'Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => __DIR__ . '/..' . '/symfony/console/Completion/Output/CompletionOutputInterface.php',
'Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/FishCompletionOutput.php',
'Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/ZshCompletionOutput.php',
'Symfony\\Component\\Console\\Completion\\Suggestion' => __DIR__ . '/..' . '/symfony/console/Completion/Suggestion.php',
'Symfony\\Component\\Console\\ConsoleEvents' => __DIR__ . '/..' . '/symfony/console/ConsoleEvents.php',
'Symfony\\Component\\Console\\Cursor' => __DIR__ . '/..' . '/symfony/console/Cursor.php',
'Symfony\\Component\\Console\\DataCollector\\CommandDataCollector' => __DIR__ . '/..' . '/symfony/console/DataCollector/CommandDataCollector.php',
'Symfony\\Component\\Console\\Debug\\CliRequest' => __DIR__ . '/..' . '/symfony/console/Debug/CliRequest.php',
'Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => __DIR__ . '/..' . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php',
'Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => __DIR__ . '/..' . '/symfony/console/Descriptor/ApplicationDescription.php',
'Symfony\\Component\\Console\\Descriptor\\Descriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/Descriptor.php',
'Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => __DIR__ . '/..' . '/symfony/console/Descriptor/DescriptorInterface.php',
'Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/JsonDescriptor.php',
'Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/MarkdownDescriptor.php',
'Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php',
'Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/TextDescriptor.php',
'Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/XmlDescriptor.php',
'Symfony\\Component\\Console\\EventListener\\ErrorListener' => __DIR__ . '/..' . '/symfony/console/EventListener/ErrorListener.php',
@ -3721,6 +3748,7 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'Symfony\\Component\\Console\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/console/Exception/LogicException.php',
'Symfony\\Component\\Console\\Exception\\MissingInputException' => __DIR__ . '/..' . '/symfony/console/Exception/MissingInputException.php',
'Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/NamespaceNotFoundException.php',
'Symfony\\Component\\Console\\Exception\\RunCommandFailedException' => __DIR__ . '/..' . '/symfony/console/Exception/RunCommandFailedException.php',
'Symfony\\Component\\Console\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/console/Exception/RuntimeException.php',
'Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatter.php',
'Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatterStyle.php',
@ -3738,6 +3766,7 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'Symfony\\Component\\Console\\Helper\\HelperInterface' => __DIR__ . '/..' . '/symfony/console/Helper/HelperInterface.php',
'Symfony\\Component\\Console\\Helper\\HelperSet' => __DIR__ . '/..' . '/symfony/console/Helper/HelperSet.php',
'Symfony\\Component\\Console\\Helper\\InputAwareHelper' => __DIR__ . '/..' . '/symfony/console/Helper/InputAwareHelper.php',
'Symfony\\Component\\Console\\Helper\\OutputWrapper' => __DIR__ . '/..' . '/symfony/console/Helper/OutputWrapper.php',
'Symfony\\Component\\Console\\Helper\\ProcessHelper' => __DIR__ . '/..' . '/symfony/console/Helper/ProcessHelper.php',
'Symfony\\Component\\Console\\Helper\\ProgressBar' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressBar.php',
'Symfony\\Component\\Console\\Helper\\ProgressIndicator' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressIndicator.php',
@ -3760,6 +3789,10 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'Symfony\\Component\\Console\\Input\\StreamableInputInterface' => __DIR__ . '/..' . '/symfony/console/Input/StreamableInputInterface.php',
'Symfony\\Component\\Console\\Input\\StringInput' => __DIR__ . '/..' . '/symfony/console/Input/StringInput.php',
'Symfony\\Component\\Console\\Logger\\ConsoleLogger' => __DIR__ . '/..' . '/symfony/console/Logger/ConsoleLogger.php',
'Symfony\\Component\\Console\\Messenger\\RunCommandContext' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandContext.php',
'Symfony\\Component\\Console\\Messenger\\RunCommandMessage' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandMessage.php',
'Symfony\\Component\\Console\\Messenger\\RunCommandMessageHandler' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandMessageHandler.php',
'Symfony\\Component\\Console\\Output\\AnsiColorMode' => __DIR__ . '/..' . '/symfony/console/Output/AnsiColorMode.php',
'Symfony\\Component\\Console\\Output\\BufferedOutput' => __DIR__ . '/..' . '/symfony/console/Output/BufferedOutput.php',
'Symfony\\Component\\Console\\Output\\ConsoleOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutput.php',
'Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutputInterface.php',
@ -3772,6 +3805,7 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'Symfony\\Component\\Console\\Question\\ChoiceQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ChoiceQuestion.php',
'Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ConfirmationQuestion.php',
'Symfony\\Component\\Console\\Question\\Question' => __DIR__ . '/..' . '/symfony/console/Question/Question.php',
'Symfony\\Component\\Console\\SignalRegistry\\SignalMap' => __DIR__ . '/..' . '/symfony/console/SignalRegistry/SignalMap.php',
'Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => __DIR__ . '/..' . '/symfony/console/SignalRegistry/SignalRegistry.php',
'Symfony\\Component\\Console\\SingleCommandApplication' => __DIR__ . '/..' . '/symfony/console/SingleCommandApplication.php',
'Symfony\\Component\\Console\\Style\\OutputStyle' => __DIR__ . '/..' . '/symfony/console/Style/OutputStyle.php',
@ -3843,11 +3877,16 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'Symfony\\Component\\Process\\Exception\\ProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessFailedException.php',
'Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessSignaledException.php',
'Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessTimedOutException.php',
'Symfony\\Component\\Process\\Exception\\RunProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/RunProcessFailedException.php',
'Symfony\\Component\\Process\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/process/Exception/RuntimeException.php',
'Symfony\\Component\\Process\\ExecutableFinder' => __DIR__ . '/..' . '/symfony/process/ExecutableFinder.php',
'Symfony\\Component\\Process\\InputStream' => __DIR__ . '/..' . '/symfony/process/InputStream.php',
'Symfony\\Component\\Process\\Messenger\\RunProcessContext' => __DIR__ . '/..' . '/symfony/process/Messenger/RunProcessContext.php',
'Symfony\\Component\\Process\\Messenger\\RunProcessMessage' => __DIR__ . '/..' . '/symfony/process/Messenger/RunProcessMessage.php',
'Symfony\\Component\\Process\\Messenger\\RunProcessMessageHandler' => __DIR__ . '/..' . '/symfony/process/Messenger/RunProcessMessageHandler.php',
'Symfony\\Component\\Process\\PhpExecutableFinder' => __DIR__ . '/..' . '/symfony/process/PhpExecutableFinder.php',
'Symfony\\Component\\Process\\PhpProcess' => __DIR__ . '/..' . '/symfony/process/PhpProcess.php',
'Symfony\\Component\\Process\\PhpSubprocess' => __DIR__ . '/..' . '/symfony/process/PhpSubprocess.php',
'Symfony\\Component\\Process\\Pipes\\AbstractPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/AbstractPipes.php',
'Symfony\\Component\\Process\\Pipes\\PipesInterface' => __DIR__ . '/..' . '/symfony/process/Pipes/PipesInterface.php',
'Symfony\\Component\\Process\\Pipes\\UnixPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/UnixPipes.php',
@ -3881,7 +3920,6 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'Symfony\\Contracts\\Service\\ServiceProviderInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceProviderInterface.php',
'Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberInterface.php',
'Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberTrait.php',
'Symfony\\Contracts\\Service\\Test\\ServiceLocatorTest' => __DIR__ . '/..' . '/symfony/service-contracts/Test/ServiceLocatorTest.php',
'Symfony\\Polyfill\\Ctype\\Ctype' => __DIR__ . '/..' . '/symfony/polyfill-ctype/Ctype.php',
'Symfony\\Polyfill\\Intl\\Grapheme\\Grapheme' => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme/Grapheme.php',
'Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Normalizer.php',
@ -3943,6 +3981,7 @@ class ComposerStaticInitaf5d45949d7526726de1c031a6bdb085
'setasign\\Fpdi\\PdfParser\\Filter\\FlateException' => __DIR__ . '/..' . '/setasign/fpdi/src/PdfParser/Filter/FlateException.php',
'setasign\\Fpdi\\PdfParser\\Filter\\Lzw' => __DIR__ . '/..' . '/setasign/fpdi/src/PdfParser/Filter/Lzw.php',
'setasign\\Fpdi\\PdfParser\\Filter\\LzwException' => __DIR__ . '/..' . '/setasign/fpdi/src/PdfParser/Filter/LzwException.php',
'setasign\\Fpdi\\PdfParser\\PdfParser' => __DIR__ . '/..' . '/setasign/fpdi/src/PdfParser/PdfParser.php',
'setasign\\Fpdi\\PdfParser\\PdfParserException' => __DIR__ . '/..' . '/setasign/fpdi/src/PdfParser/PdfParserException.php',
'setasign\\Fpdi\\PdfParser\\StreamReader' => __DIR__ . '/..' . '/setasign/fpdi/src/PdfParser/StreamReader.php',
'setasign\\Fpdi\\PdfParser\\Tokenizer' => __DIR__ . '/..' . '/setasign/fpdi/src/PdfParser/Tokenizer.php',

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@
'name' => 'codeigniter4/framework',
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'reference' => 'cf4fe7383e62eebc46bbef87d0d9fbbb4e8d87ae',
'reference' => '178b8cbd7dd0672629ea58c7bb36285588622254',
'type' => 'project',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
@ -22,7 +22,7 @@
'codeigniter4/framework' => array(
'pretty_version' => 'dev-master',
'version' => 'dev-master',
'reference' => 'cf4fe7383e62eebc46bbef87d0d9fbbb4e8d87ae',
'reference' => '178b8cbd7dd0672629ea58c7bb36285588622254',
'type' => 'project',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
@ -56,9 +56,9 @@
'dev_requirement' => true,
),
'doctrine/instantiator' => array(
'pretty_version' => '1.5.0',
'version' => '1.5.0.0',
'reference' => '0a0fa9780f5d4e507415a065172d26a98d02047b',
'pretty_version' => '2.0.0',
'version' => '2.0.0.0',
'reference' => 'c6222283fa3f4ac679f8b9ced9a4e23f163e80d0',
'type' => 'library',
'install_path' => __DIR__ . '/../doctrine/instantiator',
'aliases' => array(),
@ -83,27 +83,27 @@
'dev_requirement' => true,
),
'friendsofphp/php-cs-fixer' => array(
'pretty_version' => 'v3.37.1',
'version' => '3.37.1.0',
'reference' => 'c3fe76976081ab871aa654e872da588077e19679',
'pretty_version' => 'v3.41.1',
'version' => '3.41.1.0',
'reference' => '8b6ae8dcbaf23f09680643ab832a4a3a260265f6',
'type' => 'application',
'install_path' => __DIR__ . '/../friendsofphp/php-cs-fixer',
'aliases' => array(),
'dev_requirement' => true,
),
'kint-php/kint' => array(
'pretty_version' => '5.0.7',
'version' => '5.0.7.0',
'reference' => 'a700653a77250b122920799b10c94e904c9b78c7',
'pretty_version' => '5.1.0',
'version' => '5.1.0.0',
'reference' => '128303461092734a1e3cb4beb1eea9afe7a5a0ee',
'type' => 'library',
'install_path' => __DIR__ . '/../kint-php/kint',
'aliases' => array(),
'dev_requirement' => true,
),
'laminas/laminas-escaper' => array(
'pretty_version' => '2.12.0',
'version' => '2.12.0.0',
'reference' => 'ee7a4c37bf3d0e8c03635d5bddb5bb3184ead490',
'pretty_version' => '2.13.0',
'version' => '2.13.0.0',
'reference' => 'af459883f4018d0f8a0c69c7a209daef3bf973ba',
'type' => 'library',
'install_path' => __DIR__ . '/../laminas/laminas-escaper',
'aliases' => array(),
@ -128,9 +128,9 @@
'dev_requirement' => true,
),
'mpdf/mpdf' => array(
'pretty_version' => 'v8.2.0',
'version' => '8.2.0.0',
'reference' => '170a236a588d177c2aa7447ce490a030ca68e6f4',
'pretty_version' => 'v8.2.2',
'version' => '8.2.2.0',
'reference' => '596a87b876d7793be7be060a8ac13424de120dd5',
'type' => 'library',
'install_path' => __DIR__ . '/../mpdf/mpdf',
'aliases' => array(),
@ -173,9 +173,9 @@
'dev_requirement' => true,
),
'nikic/php-parser' => array(
'pretty_version' => 'v4.17.1',
'version' => '4.17.1.0',
'reference' => 'a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d',
'pretty_version' => 'v4.18.0',
'version' => '4.18.0.0',
'reference' => '1bcbb2179f97633e98bbbc87044ee2611c7d7999',
'type' => 'library',
'install_path' => __DIR__ . '/../nikic/php-parser',
'aliases' => array(),
@ -272,9 +272,9 @@
'dev_requirement' => true,
),
'phpunit/phpunit' => array(
'pretty_version' => '9.6.13',
'version' => '9.6.13.0',
'reference' => 'f3d767f7f9e191eab4189abe41ab37797e30b1be',
'pretty_version' => '9.6.15',
'version' => '9.6.15.0',
'reference' => '05017b80304e0eb3f31d90194a563fd53a6021f1',
'type' => 'library',
'install_path' => __DIR__ . '/../phpunit/phpunit',
'aliases' => array(),
@ -491,45 +491,45 @@
'dev_requirement' => true,
),
'setasign/fpdi' => array(
'pretty_version' => 'v2.5.0',
'version' => '2.5.0.0',
'reference' => 'ecf0459643ec963febfb9a5d529dcd93656006a4',
'pretty_version' => 'v2.6.0',
'version' => '2.6.0.0',
'reference' => 'a6db878129ec6c7e141316ee71872923e7f1b7ad',
'type' => 'library',
'install_path' => __DIR__ . '/../setasign/fpdi',
'aliases' => array(),
'dev_requirement' => false,
),
'symfony/console' => array(
'pretty_version' => 'v6.0.19',
'version' => '6.0.19.0',
'reference' => 'c3ebc83d031b71c39da318ca8b7a07ecc67507ed',
'pretty_version' => 'v7.0.1',
'version' => '7.0.1.0',
'reference' => 'cdce5c684b2f920bb1343deecdfba356ffad83d5',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/console',
'aliases' => array(),
'dev_requirement' => true,
),
'symfony/deprecation-contracts' => array(
'pretty_version' => 'v3.0.2',
'version' => '3.0.2.0',
'reference' => '26954b3d62a6c5fd0ea8a2a00c0353a14978d05c',
'pretty_version' => 'v3.4.0',
'version' => '3.4.0.0',
'reference' => '7c3aff79d10325257a001fcf92d991f24fc967cf',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/deprecation-contracts',
'aliases' => array(),
'dev_requirement' => true,
),
'symfony/event-dispatcher' => array(
'pretty_version' => 'v6.0.19',
'version' => '6.0.19.0',
'reference' => '2eaf8e63bc5b8cefabd4a800157f0d0c094f677a',
'pretty_version' => 'v7.0.0',
'version' => '7.0.0.0',
'reference' => 'c459b40ffe67c49af6fd392aac374c9edf8a027e',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/event-dispatcher',
'aliases' => array(),
'dev_requirement' => true,
),
'symfony/event-dispatcher-contracts' => array(
'pretty_version' => 'v3.0.2',
'version' => '3.0.2.0',
'reference' => '7bc61cc2db649b4637d331240c5346dcc7708051',
'pretty_version' => 'v3.4.0',
'version' => '3.4.0.0',
'reference' => 'a76aed96a42d2b521153fb382d418e30d18b59df',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/event-dispatcher-contracts',
'aliases' => array(),
@ -542,27 +542,27 @@
),
),
'symfony/filesystem' => array(
'pretty_version' => 'v6.0.19',
'version' => '6.0.19.0',
'reference' => '3d49eec03fda1f0fc19b7349fbbe55ebc1004214',
'pretty_version' => 'v7.0.0',
'version' => '7.0.0.0',
'reference' => '7da8ea2362a283771478c5f7729cfcb43a76b8b7',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/filesystem',
'aliases' => array(),
'dev_requirement' => true,
),
'symfony/finder' => array(
'pretty_version' => 'v6.0.19',
'version' => '6.0.19.0',
'reference' => '5cc9cac6586fc0c28cd173780ca696e419fefa11',
'pretty_version' => 'v7.0.0',
'version' => '7.0.0.0',
'reference' => '6e5688d69f7cfc4ed4a511e96007e06c2d34ce56',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/finder',
'aliases' => array(),
'dev_requirement' => true,
),
'symfony/options-resolver' => array(
'pretty_version' => 'v6.0.19',
'version' => '6.0.19.0',
'reference' => '6a180d1c45e0d9797470ca9eb46215692de00fa3',
'pretty_version' => 'v7.0.0',
'version' => '7.0.0.0',
'reference' => '700ff4096e346f54cb628ea650767c8130f1001f',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/options-resolver',
'aliases' => array(),
@ -623,45 +623,45 @@
'dev_requirement' => true,
),
'symfony/process' => array(
'pretty_version' => 'v6.0.19',
'version' => '6.0.19.0',
'reference' => '2114fd60f26a296cc403a7939ab91478475a33d4',
'pretty_version' => 'v7.0.0',
'version' => '7.0.0.0',
'reference' => '13bdb1670c7f510494e04fcb2bfa29af63db9c0d',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/process',
'aliases' => array(),
'dev_requirement' => true,
),
'symfony/service-contracts' => array(
'pretty_version' => 'v3.0.2',
'version' => '3.0.2.0',
'reference' => 'd78d39c1599bd1188b8e26bb341da52c3c6d8a66',
'pretty_version' => 'v3.4.0',
'version' => '3.4.0.0',
'reference' => 'b3313c2dbffaf71c8de2934e2ea56ed2291a3838',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/service-contracts',
'aliases' => array(),
'dev_requirement' => true,
),
'symfony/stopwatch' => array(
'pretty_version' => 'v6.0.19',
'version' => '6.0.19.0',
'reference' => '011e781839dd1d2eb8119f65ac516a530f60226d',
'pretty_version' => 'v7.0.0',
'version' => '7.0.0.0',
'reference' => '7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/stopwatch',
'aliases' => array(),
'dev_requirement' => true,
),
'symfony/string' => array(
'pretty_version' => 'v6.0.19',
'version' => '6.0.19.0',
'reference' => 'd9e72497367c23e08bf94176d2be45b00a9d232a',
'pretty_version' => 'v7.0.0',
'version' => '7.0.0.0',
'reference' => '92bd2bfbba476d4a1838e5e12168bef2fd1e6620',
'type' => 'library',
'install_path' => __DIR__ . '/../symfony/string',
'aliases' => array(),
'dev_requirement' => true,
),
'theseer/tokenizer' => array(
'pretty_version' => '1.2.1',
'version' => '1.2.1.0',
'reference' => '34a41e998c2183e22995f158c581e7b5e755ab9e',
'pretty_version' => '1.2.2',
'version' => '1.2.2.0',
'reference' => 'b2ad5003ca10d4ee50a12da31de12a5774ba6b96',
'type' => 'library',
'install_path' => __DIR__ . '/../theseer/tokenizer',
'aliases' => array(),

View File

@ -4,8 +4,8 @@
$issues = array();
if (!(PHP_VERSION_ID >= 70400)) {
$issues[] = 'Your Composer dependencies require a PHP version ">= 7.4.0". You are running ' . PHP_VERSION . '.';
if (!(PHP_VERSION_ID >= 80100)) {
$issues[] = 'Your Composer dependencies require a PHP version ">= 8.1.0". You are running ' . PHP_VERSION . '.';
}
if ($issues) {

View File

@ -16,17 +16,17 @@
}
],
"require": {
"php": "^7.1 || ^8.0"
"php": "^8.1"
},
"require-dev": {
"ext-phar": "*",
"ext-pdo": "*",
"doctrine/coding-standard": "^9 || ^11",
"phpbench/phpbench": "^0.16 || ^1",
"phpstan/phpstan": "^1.4",
"phpstan/phpstan-phpunit": "^1",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
"vimeo/psalm": "^4.30 || ^5.4"
"doctrine/coding-standard": "^11",
"phpbench/phpbench": "^1.2",
"phpstan/phpstan": "^1.9.4",
"phpstan/phpstan-phpunit": "^1.3",
"phpunit/phpunit": "^9.5.27",
"vimeo/psalm": "^5.4"
},
"autoload": {
"psr-4": {

View File

@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace Doctrine\Instantiator\Exception;
use Throwable;

View File

@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace Doctrine\Instantiator\Exception;
use InvalidArgumentException as BaseInvalidArgumentException;
@ -36,7 +38,7 @@ class InvalidArgumentException extends BaseInvalidArgumentException implements E
{
return new self(sprintf(
'The provided class "%s" is abstract, and cannot be instantiated',
$reflectionClass->getName()
$reflectionClass->getName(),
));
}
@ -44,7 +46,7 @@ class InvalidArgumentException extends BaseInvalidArgumentException implements E
{
return new self(sprintf(
'The provided class "%s" is an enum, and cannot be instantiated',
$className
$className,
));
}
}

View File

@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace Doctrine\Instantiator\Exception;
use Exception;
@ -20,15 +22,15 @@ class UnexpectedValueException extends BaseUnexpectedValueException implements E
*/
public static function fromSerializationTriggeredException(
ReflectionClass $reflectionClass,
Exception $exception
Exception $exception,
): self {
return new self(
sprintf(
'An exception was raised while trying to instantiate an instance of "%s" via un-serialization',
$reflectionClass->getName()
$reflectionClass->getName(),
),
0,
$exception
$exception,
);
}
@ -42,7 +44,7 @@ class UnexpectedValueException extends BaseUnexpectedValueException implements E
string $errorString,
int $errorCode,
string $errorFile,
int $errorLine
int $errorLine,
): self {
return new self(
sprintf(
@ -50,10 +52,10 @@ class UnexpectedValueException extends BaseUnexpectedValueException implements E
. 'in file "%s" at line "%d"',
$reflectionClass->getName(),
$errorFile,
$errorLine
$errorLine,
),
0,
new Exception($errorString, $errorCode)
new Exception($errorString, $errorCode),
);
}
}

View File

@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace Doctrine\Instantiator;
use ArrayIterator;
@ -20,8 +22,6 @@ use function sprintf;
use function strlen;
use function unserialize;
use const PHP_VERSION_ID;
final class Instantiator implements InstantiatorInterface
{
/**
@ -31,37 +31,33 @@ final class Instantiator implements InstantiatorInterface
*
* @deprecated This constant will be private in 2.0
*/
public const SERIALIZATION_FORMAT_USE_UNSERIALIZER = 'C';
/** @deprecated This constant will be private in 2.0 */
public const SERIALIZATION_FORMAT_AVOID_UNSERIALIZER = 'O';
private const SERIALIZATION_FORMAT_USE_UNSERIALIZER = 'C';
private const SERIALIZATION_FORMAT_AVOID_UNSERIALIZER = 'O';
/**
* Used to instantiate specific classes, indexed by class name.
*
* @var callable[]
*/
private static $cachedInstantiators = [];
private static array $cachedInstantiators = [];
/**
* Array of objects that can directly be cloned, indexed by class name.
*
* @var object[]
*/
private static $cachedCloneables = [];
private static array $cachedCloneables = [];
/**
* @param string $className
* @phpstan-param class-string<T> $className
*
* @return object
* @phpstan-return T
*
* @throws ExceptionInterface
*
* @template T of object
*/
public function instantiate($className)
public function instantiate(string $className): object
{
if (isset(self::$cachedCloneables[$className])) {
/** @phpstan-var T */
@ -84,12 +80,11 @@ final class Instantiator implements InstantiatorInterface
*
* @phpstan-param class-string<T> $className
*
* @return object
* @phpstan-return T
*
* @template T of object
*/
private function buildAndCacheFromFactory(string $className)
private function buildAndCacheFromFactory(string $className): object
{
$factory = self::$cachedInstantiators[$className] = $this->buildFactory($className);
$instance = $factory();
@ -127,14 +122,12 @@ final class Instantiator implements InstantiatorInterface
'%s:%d:"%s":0:{}',
is_subclass_of($className, Serializable::class) ? self::SERIALIZATION_FORMAT_USE_UNSERIALIZER : self::SERIALIZATION_FORMAT_AVOID_UNSERIALIZER,
strlen($className),
$className
$className,
);
$this->checkIfUnSerializationIsSupported($reflectionClass, $serializedString);
return static function () use ($serializedString) {
return unserialize($serializedString);
};
return static fn () => unserialize($serializedString);
}
/**
@ -153,7 +146,7 @@ final class Instantiator implements InstantiatorInterface
throw InvalidArgumentException::fromNonExistingClass($className);
}
if (PHP_VERSION_ID >= 80100 && enum_exists($className, false)) {
if (enum_exists($className, false)) {
throw InvalidArgumentException::fromEnum($className);
}
@ -181,7 +174,7 @@ final class Instantiator implements InstantiatorInterface
$message,
$code,
$file,
$line
$line,
);
return true;

View File

@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace Doctrine\Instantiator;
use Doctrine\Instantiator\Exception\ExceptionInterface;
@ -10,15 +12,13 @@ use Doctrine\Instantiator\Exception\ExceptionInterface;
interface InstantiatorInterface
{
/**
* @param string $className
* @phpstan-param class-string<T> $className
*
* @return object
* @phpstan-return T
*
* @throws ExceptionInterface
*
* @template T of object
*/
public function instantiate($className);
public function instantiate(string $className): object;
}

View File

@ -3,6 +3,137 @@ CHANGELOG for PHP CS Fixer
This file contains changelogs for stable releases only.
Changelog for v3.41.1
---------------------
* DX: Change `@testWith` to `@dataProvider` (#7535)
* DX: Introduce Markdownlint (#7534)
* fix: NativeTypeDeclarationCasingFixer - do not crash on `var` keyword (#7538)
Changelog for v3.41.0
---------------------
* chore: Move `mb_str_functions` PHP 8.3 cases to separate test (#7505)
* chore: Symfony v7 is now stable (#7469)
* CI: drop PHP 8.3 hacks (#7519)
* docs: Improve docs for `no_spaces_after_function_name` (#7520)
* DX: Ability to run Sphinx linter locally (#7481)
* DX: AbstractFixerTest - use anonymous classes (#7527)
* DX: Add progress output for `cs:check` script (#7514)
* DX: align doubles naming (#7525)
* DX: remove AbstractFixerTestCase::getTestFile() (#7495)
* DX: remove jangregor/phpstan-prophecy (#7524)
* DX: remove Prophecy (#7509)
* DX: replace Prophecy with anonymous classes in CacheTest (#7503)
* DX: replace Prophecy with anonymous classes in ProcessLintingResultTest (#7501)
* DX: Utilise auto-discovery for PHPStan formatter (#7490)
* feat: Support `mb_str_pad` function in `mb_str_functions` rule (#7499)
* fix: BinaryOperatorSpacesFixer - do not add whitespace inside short function (#7523)
* fix: Downgrade PDepend to version not supporting Symfony 7 (#7513)
* fix: GlobalNamespaceImportFixer - key in PHPDoc's array shape matching class name (#7522)
* fix: SpacesInsideParenthesesFixer - handle class instantiation parentheses (#7531)
* Update PHPstan to 1.10.48 (#7532)
Changelog for v3.40.2
---------------------
* docs: fix link to source classes (#7493)
Changelog for v3.40.1
---------------------
* chore: Delete stray file x (#7473)
* chore: Fix editorconfig (#7478)
* chore: Fix typos (#7474)
* chore: Fix YAML line length (#7476)
* chore: Indent JSON files with 4 spaces (#7480)
* chore: Make YAML workflow git-based (#7477)
* chore: Use stable XDebug (#7489)
* CI: Lint docs (#7479)
* CI: Use PHPStan's native Github error formatter (#7487)
* DX: fix PHPStan error (#7488)
* DX: PsrAutoloadingFixerTest - do not build mock in data provider (#7491)
* DX: PsrAutoloadingFixerTest - merge all data providers into one (#7492)
* DX: Update PHPStan to 1.10.46 (#7486)
* fix: `NoSpacesAfterFunctionNameFixer` - do not remove space if the opening parenthesis part of an expression (#7430)
Changelog for v3.40.0
---------------------
* chore: officially support PHP 8.3 (#7466)
* chore: update deps (#7471)
* CI: add --no-update while dropping non-compat `facile-it/paraunit` (#7470)
* CI: automate --ignore-platform-req=PHP (#7467)
* CI: bump actions/github-script to v7 (#7468)
* CI: move humbug/box out of dev-tools/composer.json (#7472)
Changelog for v3.39.1
---------------------
* DX: introduce SwitchAnalyzer (#7456)
* fix: NoExtraBlankLinesFixer - do not remove blank line after `? : throw` (#7457)
* fix: OrderedInterfacesFixer - do not comment out interface (#7464)
* test: Improve `ExplicitIndirectVariableFixerTest` (#7451)
Changelog for v3.39.0
---------------------
* chore: Add support for Symfony 7 (#7453)
* chore: IntegrationTest - move support of php< requirement to main Integration classes (#7448)
* CI: drop Symfony ^7 incompat exceptions of php-coveralls and cli-executor (#7455)
* CI: early compatibility checks with Symfony 7 (#7431)
* docs: drop list.rst and code behind it (#7436)
* docs: remove Gitter mentions (#7441)
* DX: Ability to run Fixer on PHP8.3 for development (#7449)
* DX: describe command - for rules, list also sets that are including them (#7419)
* DX: Docker clean up (#7450)
* DX: more usage of spaceship operator (#7438)
* DX: Put `Preg`'s last error message in exception message (#7443)
* feat: Introduce `@PHP83Migration` ruleset and PHP 8.3 integration test (#7439)
* test: Improve `AbstractIntegrationTestCase` description (#7452)
Changelog for v3.38.2
---------------------
* docs: fix 'Could not lex literal_block as "php". Highlighting skipped.' (#7433)
* docs: small unification between FixerDocumentGenerator and ListDocumentGenerator (#7435)
* docs: unify ../ <> ./../ (#7434)
Changelog for v3.38.1
---------------------
* chore: ListSetsCommand::execute - add missing return type (#7432)
* chore: PHPStan - add counter to dataProvider exception, so we do not increase the tech debt on it (#7425)
* CI: Use `actions/checkout` v4 (#7423)
* fix: ClassAttributesSeparationFixer - handle Disjunctive Normal Form types parentheses (#7428)
* fix: Remove all variable names in `@var` callable signature (#7429)
* fix: Satisfy `composer normalize` (#7424)
Changelog for v3.38.0
---------------------
* chore: upgrade phpstan (#7421)
* CI: add curl and mbstring to build php (#7409)
* CI: cache dev-tools/bin (#7416)
* CI: Composer - move prefer-stable to file config (#7406)
* CI: conditionally install flex (#7412)
* CI: dev-tools/build.sh - no need to repeat 'prefer-stable', but let's use '--no-scripts' (#7408)
* CI: Do not run post-autoload-dump on Composer install (#7403)
* CI: general restructure (#7407)
* CI: GitHub Actions - use actions/cache for Composer in composite action (#7415)
* CI: Improve QA process - suplement (#7411)
* CI: prevent Infection plugins during build time, as we do not use it (#7422)
* CI: simplify setup-php config (#7404)
* DX: Do not mark as stale issues/PRs with milestone assigned (#7398)
* DX: Improve QA process (#7366)
* feat: phpDoc to property/return/param Fixer - allow fixing mixed on PHP >= 8 (#6356)
* feat: phpDoc to property/return/param Fixer - allow fixing union types on PHP >= 8 (#6359)
* feat: Support for array destructuring in `array_indentation` (#7405)
* feat: `@Symfony` - keep Annotation,NamedArgumentConstructor,Target annotations as single group (#7399)
* fix(SelfAccessorFixer): do not touch references inside lambda and/or arrow function (#7349)
* fix: long_to_shorthand_operator - mark as risky fixer (#7418)
* fix: OrderedImportsFixer - handle non-grouped list of const/function imports (#7397)
Changelog for v3.37.1
---------------------
@ -174,7 +305,7 @@ Changelog for v3.23.0
---------------------
* bug: BlankLineBeforeStatementFixer - do not enforce/add a blank line when there is a blank line between the comment and the statement already (#7190)
* bug: Fix detecting classy invokation in catch (#7191)
* bug: Fix detecting classy invocation in catch (#7191)
* bug: Fix names resolving in `no_superfluous_phpdoc_tags` fixer (#7189)
* bug: Fix various bugs in `FullyQualifiedStrictTypesFixer` fixer (#7188)
* bug: Fixed line between general script documentation and require (#7177)
@ -603,7 +734,7 @@ Changelog for v3.11.0
* bug: Fix MethodChainingIndentationFixer with arrow functions and class instantiation (#5587)
* bug: MethodChainingIndentationFixer - Fix bug with attribute access (#6573)
* bug: NoMultilineWhitespaceAroundDoubleArrowFixer - fix for single line comment (#6589)
* bug: TypeAlternationTransformer - TypeIntersectionTransforme - Bug: handle attributes (#6579)
* bug: TypeAlternationTransformer - TypeIntersectionTransformer - Bug: handle attributes (#6579)
* bug: [BinaryOperatorFixer] Fix more issues with scoped operators (#6559)
* docs: Remove `$` from console command snippets (#6600)
* docs: Remove `$` from console command snippets in documentation (#6599)
@ -662,7 +793,7 @@ Changelog for v3.9.5
* DX: Narrow docblock types in Runner and Report (#6465)
* DX: Narrow docblock types in Tokenizer (#6293)
* minor: extract NoMultipleStatementsPerLineFixer from BracesFixer (#6458)
* minor: Let PhpdocLineSpan fixer detect docblocks when seperator from token with attribute (#6343)
* minor: Let PhpdocLineSpan fixer detect docblocks when separator from token with attribute (#6343)
Changelog for v3.9.4
--------------------
@ -744,7 +875,7 @@ Changelog for v3.7.0
* bug #6112 [BinaryOperatorSpacesFixer] Fix align of `=` inside calls of methods (VincentLanglet)
* bug #6279 ClassReferenceNameCasingFixer - Fix for double arrow (SpacePossum)
* bug #6280 Fix bunch of enum issus (SpacePossum)
* bug #6280 Fix bunch of enum issues (SpacePossum)
* bug #6283 ClassReferenceNameCasingFixer - detect imports (SpacePossum)
* feature #5892 NewWithBracesFixer - option to remove braces (jrmajor)
* feature #6081 Allow multiline constructor arguments in an anonymous classes (jrmajor, SpacePossum)
@ -774,7 +905,7 @@ Changelog for v3.6.0
* bug #6241 NoSuperfluousPhpdocTagsFixer - fix for reference and splat operator (kubawerlos)
* bug #6243 PhpdocTypesOrderFixer - fix for intersection types (kubawerlos)
* bug #6254 PhpUnitDedicateAssertFixer - remove `is_resource`. (drupol)
* bug #6264 TokensAnalyzer - fix isConstantInvocation detection for mulitple exce… (SpacePossum)
* bug #6264 TokensAnalyzer - fix isConstantInvocation detection for multiple exce… (SpacePossum)
* bug #6265 NullableTypeDeclarationForDefaultNullValueFixer - handle "readonly" a… (SpacePossum)
* bug #6266 SimplifiedIfReturnFixer - handle statement in loop without braces (SpacePossum)
* feature #6262 ClassReferenceNameCasingFixer - introduction (SpacePossum)
@ -796,7 +927,7 @@ Changelog for v3.5.0
* bug #6165 DeclareEqualNormalizeFixer - fix for declare having multiple directives (kubawerlos)
* bug #6170 NonPrintableCharacterFixer - fix for string in single quotes, having non-breaking space, linebreak, and single quote inside (kubawerlos)
* bug #6181 UseTransformer - Trait import in enum fix (PHP8.1) (SpacePossum)
* bug #6188 PhpdocTo(Param|Property|Return)TypeFixer - fix for type intersections (kubawerlos)
* bug #6188 `PhpdocTo(Param|Property|Return)TypeFixer` - fix for type intersections (kubawerlos)
* bug #6202 SquareBraceTransformer - fix for destructing square brace after double arrow (kubawerlos)
* bug #6209 OrderedClassElementsFixer - PHP8.0 support abstract private methods in traits (SpacePossum)
* bug #6224 ArgumentsAnalyzer - support PHP8.1 readonly (SpacePossum)
@ -852,7 +983,7 @@ Changelog for v3.4.0
* minor #6109 Add return type to `DummyTestSplFileInfo::getRealPath()` (derrabus)
* minor #6115 Remove PHP 7.2 polyfill (derrabus)
* minor #6116 CI: remove installation of mbstring polyfill in build script, it's required dependency now (keradus)
* minor #6119 OrderedClassElementsFixer - PHPUnit assert(Pre|Post)Conditions methods support (meyerbaptiste)
* minor #6119 OrderedClassElementsFixer - PHPUnit `assert(Pre|Post)Conditions` methods support (meyerbaptiste)
* minor #6121 Use Tokens::ensureWhitespaceAtIndex to simplify code (kubawerlos)
* minor #6127 Remove 2nd parameter to XdebugHandler constructor (phil-davis)
* minor #6129 clean ups (SpacePossum)
@ -975,7 +1106,7 @@ Changelog for v3.2.0
* minor #6029 PhpUnitDedicateAssertFixer - add "assertStringContainsString" and "as… (SpacePossum)
* minor #6030 SingleSpaceAfterConstructFixer - Add `switch` support (SpacePossum)
* minor #6033 ArgumentsAnalyzerTest - add more tests (SpacePossum)
* minor #6034 7.0|7.1 - cleanup tests (SpacePossum)
* minor #6034 Cleanup tests for PHP 7.0 and 7.1 (SpacePossum)
* minor #6035 Documentation generation split up and add list. (SpacePossum)
* minor #6048 Fix "can not" spelling (mvorisek)
@ -1434,7 +1565,7 @@ Changelog for v2.17.3
Changelog for v2.17.2
---------------------
* bug #5345 CleanNamespaceFixer - preserve traling comments (SpacePossum)
* bug #5345 CleanNamespaceFixer - preserve trailing comments (SpacePossum)
* bug #5348 PsrAutoloadingFixer - fix for class without namespace (kubawerlos)
* bug #5362 SingleSpaceAfterConstructFixer: Do not adjust whitespace before multiple multi-line extends (localheinz, SpacePossum)
* minor #5314 Enable testing with PHPUnit 9.x (sanmai)
@ -1532,7 +1663,6 @@ Changelog for v2.17.0
* minor #5323 NoUselessSprintfFixer - Fix test on PHP5.6 (SpacePossum)
* minor #5326 DX: relax composer requirements to not block installation under PHP v8, support for PHP v8 is not yet ready (keradus)
Changelog for v2.16.10
----------------------
@ -2156,7 +2286,7 @@ Changelog for v2.15.4
* minor #4564 Move readme-update command to Section 3 (iwasherefirst2)
* minor #4566 Update symfony ruleset (gharlan)
* minor #4570 Command::execute() should always return an integer (derrabus)
* minor #4580 Add suport for true/false return type hints. (SpacePossum)
* minor #4580 Add support for true/false return type hints. (SpacePossum)
* minor #4584 Increase PHPStan level to 1 (julienfalque)
* minor #4585 Fix deprecation notices (julienfalque)
* minor #4587 Output details - Explain why a file was skipped (SpacePossum)
@ -2317,8 +2447,8 @@ Changelog for v2.14.3
* minor #4340 Travis: build against 7.4snapshot instead of nightly (Slamdunk)
* minor #4351 code grooming (SpacePossum)
* minor #4353 Add more priority tests (SpacePossum)
* minor #4364 DX: MethodChainingIndentationFixer - remove unneccesary loop (Sijun Zhu)
* minor #4366 Unset the auxillary variable $a (GrahamCampbell)
* minor #4364 DX: MethodChainingIndentationFixer - remove unnecessary loop (Sijun Zhu)
* minor #4366 Unset the auxiliary variable $a (GrahamCampbell)
* minor #4368 Fixed TypeShortNameResolverTest::testResolver (GrahamCampbell)
* minor #4380 PHP7.4 - Add "str_split" => "mb_str_split" mapping. (SpacePossum)
* minor #4381 PHP7.4 - Add support for magic methods (un)serialize. (SpacePossum)
@ -2492,7 +2622,7 @@ Changelog for v2.13.0
* feature #3812 Add FopenFlagOrderFixer & FopenFlagsFixer (SpacePossum)
* feature #3826 Add CombineNestedDirnameFixer (gharlan)
* feature #3833 BinaryOperatorSpacesFixer - Add "no space" fix strategy (SpacePossum)
* feature #3841 NoAliasFunctionsFixer - add opt in option for ext-mbstring aliasses (SpacePossum)
* feature #3841 NoAliasFunctionsFixer - add opt in option for ext-mbstring aliases (SpacePossum)
* feature #3876 NativeConstantInvocationFixer - add the scope option (stof, keradus)
* feature #3886 Add PhpUnitMethodCasingFixer (Slamdunk)
* feature #3907 Add ImplodeCallFixer (kubawerlos)
@ -2573,8 +2703,8 @@ Changelog for v2.12.9
* minor #4340 Travis: build against 7.4snapshot instead of nightly (Slamdunk)
* minor #4351 code grooming (SpacePossum)
* minor #4353 Add more priority tests (SpacePossum)
* minor #4364 DX: MethodChainingIndentationFixer - remove unneccesary loop (Sijun Zhu)
* minor #4366 Unset the auxillary variable $a (GrahamCampbell)
* minor #4364 DX: MethodChainingIndentationFixer - remove unnecessary loop (Sijun Zhu)
* minor #4366 Unset the auxiliary variable $a (GrahamCampbell)
* minor #4368 Fixed TypeShortNameResolverTest::testResolver (GrahamCampbell)
* minor #4380 PHP7.4 - Add "str_split" => "mb_str_split" mapping. (SpacePossum)
* minor #4393 DX: add missing explicit return types (kubawerlos)
@ -2829,7 +2959,7 @@ Changelog for v2.11.2
* bug #3673 PhpdocScalarFixer - Add "types" option (julienfalque, keradus)
* bug #3674 YodaStyleFixer - Fix variable detection for multidimensional arrays (julienfalque, SpacePossum)
* bug #3684 PhpUnitStrictFixer - Do not fix if not correct # of arguments are used (SpacePossum)
* bug #3708 EspaceImplicitBackslashesFixer - Fix escaping multiple backslashes (julienfalque)
* bug #3708 EscapeImplicitBackslashesFixer - Fix escaping multiple backslashes (julienfalque)
* bug #3715 SingleImportPerStatementFixer - Fix handling whitespace before opening brace (julienfalque)
* bug #3731 PhpdocIndentFixer - crash fix (SpacePossum)
* bug #3755 YodaStyleFixer - handle space between var name and index (SpacePossum)
@ -2963,7 +3093,7 @@ Changelog for v2.10.3
* minor #3484 Create Tokens::findBlockStart (ntzm)
* minor #3512 Add missing array typehints (ntzm)
* minor #3513 Making AppVeyor happy (kubawerlos)
* minor #3516 Use null|type instead of ?type in PHPDocs (ntzm)
* minor #3516 Use `null|type` instead of `?type` in PHPDocs (ntzm)
* minor #3518 FixerFactoryTest - Test each priority test file is listed as test (SpacePossum)
* minor #3519 Fix typo (SpacePossum)
* minor #3520 Fix typos: ran vs. run (SpacePossum)
@ -3148,7 +3278,7 @@ Changelog for v2.8.1
* bug #3199 TokensAnalyzer - getClassyElements (SpacePossum)
* bug #3208 BracesFixer - Fix for instantiation in control structures (julienfalque, SpacePossum)
* bug #3215 BinaryOperatorSpacesFixer - Fix spaces around multiple exception catching (|) (ntzm)
* bug #3215 BinaryOperatorSpacesFixer - Fix spaces around multiple exception catching (ntzm)
* bug #3216 AbstractLinesBeforeNamespaceFixer - add min. and max. option, not only single target count (SpacePossum)
* bug #3217 TokenizerLinter - fix lack of linting when code is cached (SpacePossum, keradus)
* minor #3200 Skip slow test when Xdebug is loaded (julienfalque)
@ -3195,7 +3325,7 @@ Changelog for v2.7.4
* bug #3199 TokensAnalyzer - getClassyElements (SpacePossum)
* bug #3208 BracesFixer - Fix for instantiation in control structures (julienfalque, SpacePossum)
* bug #3215 BinaryOperatorSpacesFixer - Fix spaces around multiple exception catching (|) (ntzm)
* bug #3215 BinaryOperatorSpacesFixer - Fix spaces around multiple exception catching (ntzm)
* bug #3216 AbstractLinesBeforeNamespaceFixer - add min. and max. option, not only single target count (SpacePossum)
* bug #3217 TokenizerLinter - fix lack of linting when code is cached (SpacePossum, keradus)
* minor #3200 Skip slow test when Xdebug is loaded (julienfalque)
@ -3217,7 +3347,7 @@ Changelog for v2.7.2
* bug #3062 BraceClassInstantiationTransformer - Fix instantiation inside method call braces case (julienfalque, keradus)
* bug #3083 SingleBlankLineBeforeNamespaceFixer - Fix handling namespace right after opening tag (mlocati)
* bug #3109 SwitchCaseSemicolonToColonFixer - Fix bug with nested constructs (SpacePossum)
* bug #3117 Multibyte character in array key makes alignment incorect (kubawerlos)
* bug #3117 Multibyte character in array key makes alignment incorrect (kubawerlos)
* bug #3123 Cache - File permissions (SpacePossum)
* bug #3138 NoHomoglyphNamesFixer - fix crash on non-ascii but not mapped either (SpacePossum)
* bug #3172 IndentationTypeFixer - do not touch whitespace that is not indentation (SpacePossum)
@ -3417,7 +3547,7 @@ Changelog for v2.3.3
* bug #2807 NoUselessElseFixer - Fix detection of conditional block (SpacePossum)
* bug #2809 Phar release - fix readme generation (SpacePossum, keradus)
* bug #2827 MethodArgumentSpaceFixer - Always remove trailing spaces (julienfalque)
* bug #2835 SelfAcessorFixer - class property fix (mnabialek)
* bug #2835 SelfAccessorFixer - class property fix (mnabialek)
* bug #2848 PhpdocIndentFixer - fix edge case with inline phpdoc (keradus)
* bug #2849 BracesFixer - Fix indentation issues with comments (julienfalque)
* bug #2851 Tokens - ensureWhitespaceAtIndex (GrahamCampbell, SpacePossum)
@ -3606,7 +3736,7 @@ Changelog for v2.2.17
* minor #3435 Add tests for general_phpdoc_annotation_remove (BackEndTea)
* minor #3484 Create Tokens::findBlockStart (ntzm)
* minor #3512 Add missing array typehints (ntzm)
* minor #3516 Use null|type instead of ?type in PHPDocs (ntzm)
* minor #3516 Use `null|type` instead of `?type` in PHPDocs (ntzm)
* minor #3518 FixerFactoryTest - Test each priority test file is listed as test (SpacePossum)
* minor #3520 Fix typos: ran vs. run (SpacePossum)
* minor #3521 Use HTTPS (carusogabriel)
@ -3699,7 +3829,7 @@ Changelog for v2.2.10
* bug #3199 TokensAnalyzer - getClassyElements (SpacePossum)
* bug #3208 BracesFixer - Fix for instantiation in control structures (julienfalque, SpacePossum)
* bug #3215 BinaryOperatorSpacesFixer - Fix spaces around multiple exception catching (|) (ntzm)
* bug #3215 BinaryOperatorSpacesFixer - Fix spaces around multiple exception catching (ntzm)
* bug #3216 AbstractLinesBeforeNamespaceFixer - add min. and max. option, not only single target count (SpacePossum)
* bug #3217 TokenizerLinter - fix lack of linting when code is cached (SpacePossum, keradus)
* minor #3200 Skip slow test when Xdebug is loaded (julienfalque)
@ -3805,7 +3935,7 @@ Changelog for v2.2.5
* bug #2807 NoUselessElseFixer - Fix detection of conditional block (SpacePossum)
* bug #2809 Phar release - fix readme generation (SpacePossum, keradus)
* bug #2827 MethodArgumentSpaceFixer - Always remove trailing spaces (julienfalque)
* bug #2835 SelfAcessorFixer - class property fix (mnabialek)
* bug #2835 SelfAccessorFixer - class property fix (mnabialek)
* bug #2848 PhpdocIndentFixer - fix edge case with inline phpdoc (keradus)
* bug #2849 BracesFixer - Fix indentation issues with comments (julienfalque)
* bug #2851 Tokens - ensureWhitespaceAtIndex (GrahamCampbell, SpacePossum)
@ -3894,7 +4024,9 @@ Changelog for v2.2.2
--------------------
Warning, this release breaks BC due to introduction of:
* minor #2554 Add short diff. output format (SpacePossum, keradus)
That PR was reverted in v2.2.3, which should be used instead of v2.2.2.
* bug #2545 RuleSet - change resolvement (SpacePossum)
@ -4093,7 +4225,7 @@ Changelog for v2.0.1
* minor #2499 FileSpecificCodeSample - Specify class name relative to root namespace (localheinz, keradus)
* minor #2506 SCA (SpacePossum)
* minor #2515 Fix code indentation (keradus)
* minor #2521 SCA trailing spces check - ouput lines with trailing white space (SpacePossum)
* minor #2521 SCA trailing spces check - output lines with trailing white space (SpacePossum)
* minor #2522 Fix docs and small code issues (keradus)
Changelog for v2.0.0
@ -4144,7 +4276,7 @@ Changelog for v2.0.0
* feature #1628 Added OrderedClassElementsFixer (gharlan)
* feature #1742 path argument is used to create an intersection with existing finder (keradus, gharlan)
* feature #1779 Added GeneralPhpdocAnnotationRemoveFixer, GeneralPhpdocAnnotationRenameFixer (keradus)
* feature #1811 Added NoSpacesInsideOfssetFixer (phansys)
* feature #1811 Added NoSpacesInsideOffsetFixer (phansys)
* feature #1819 Added DirConstantFixer, ModernizeTypesCastingFixer, RandomApiMigrationFixer (kalessil, SpacePossum, keradus)
* feature #1825 Added junit format (ekho)
* feature #1862 FixerFactory - Do not allow conflicting fixers (SpacePossum)
@ -4261,7 +4393,7 @@ Changelog for v2.0.0
* minor #1846 FileFilterIterator - Corrected an iterator typehint (GrahamCampbell)
* minor #1848 DocBlock - Remove some old unused phpdoc tags (GrahamCampbell)
* minor #1856 NoDuplicateSemicolonsFixer - Remove overcomplete fixer (SpacePossum)
* minor #1861 Fix: Ofsset should be Offset (localheinz)
* minor #1861 Fix: Offset should be Offset (localheinz)
* minor #1867 Print non-report output to stdErr (SpacePossum, keradus)
* minor #1873 Enhancement: Show path to cache file if it exists (localheinz)
* minor #1875 renamed Composer package (fabpot)
@ -4324,7 +4456,7 @@ Changelog for v2.0.0
* minor #2318 *TestCase - Reduce visibility of setUp() (localheinz)
* minor #2319 Code grooming (keradus)
* minor #2322 DX: use whitemessy aware assertion (keradus)
* minor #2324 Echo|Print*Fixer - unify printing fixers (SpacePossum, keradus)
* minor #2324 `Echo|Print*Fixer` - unify printing fixers (SpacePossum, keradus)
* minor #2337 Normalize rule naming (keradus)
* minor #2338 Drop hacks for unsupported HHVM (keradus)
* minor #2339 Add some Fixer descriptions (SpacePossum, keradus)
@ -4402,7 +4534,7 @@ Changelog for v1.12.3
* bug #2209 LinefeedFixer - Fix in a safe way (SpacePossum)
* bug #2228 NoEmptyLinesAfterPhpdocs, SingleBlankLineBeforeNamespace - Fix priority (SpacePossum)
* bug #2230 FunctionDeclarationFixer - Fix T_USE case (SpacePossum)
* bug #2232 Add a test for style of varaible decalration : var (daiglej)
* bug #2232 Add a test for style of variable declaration : var (daiglej)
* bug #2246 Fix itest requirements (keradus)
* minor #2238 .gitattributes - specified line endings (keradus)
* minor #2239 IntegrationCase - no longer internal (keradus)
@ -4691,7 +4823,7 @@ Changelog for v1.10.1
* bug #1444 OrderedUseFixer - fix next case (keradus)
* bug #1441 BracesFixer - fix next case (keradus)
* bug #1422 AlignDoubleArrowFixer - fix handling of nested array (SpacePossum)
* bug #1425 PhpdocInlineTagFixerTest - fix case when met inalid PHPDoc (keradus)
* bug #1425 PhpdocInlineTagFixerTest - fix case when met invalid PHPDoc (keradus)
* bug #1419 AlignDoubleArrowFixer, AlignEqualsFixer - fix priorities (keradus)
* bug #1415 BlanklineAfterOpenTagFixer - Do not add a line break if there is one already. (SpacePossum)
* bug #1410 PhpdocIndentFixer - Fix for open tag (SpacePossum)
@ -4839,7 +4971,7 @@ Changelog for v1.5.1
--------------------
* bug #1054 VisibilityFixer - fix var with array value assigned (localheinz, keradus)
* bug #1048 MultilineArrayTrailingCommaFixer, SingleArrayNoTrailingCommaFixer - using heredoc inside array not cousing to treat it as multiline array (keradus)
* bug #1048 MultilineArrayTrailingCommaFixer, SingleArrayNoTrailingCommaFixer - using heredoc inside array not causing to treat it as multiline array (keradus)
* bug #1043 PhpdocToCommentFixer - also check other control structures, besides foreach (ceeram)
* bug #1045 OrderedUseFixer - fix namespace order for trailing digits (rusitschka)
* bug #1035 PhpdocToCommentFixer - Add static as valid keyword for structural element (ceeram)
@ -4873,7 +5005,7 @@ Changelog for v1.5
* minor #957 Fix Fixers methods order (GrahamCampbell)
* minor #944 Enable caching of composer downloads on Travis (stof)
* minor #941 EncodingFixer - enhance tests (keradus)
* minor #938 Psr0Fixer - remove unneded assignment (keradus)
* minor #938 Psr0Fixer - remove unneeded assignment (keradus)
* minor #936 FixerTest - test description consistency (keradus)
* minor #933 NoEmptyLinesAfterPhpdocsFixer - remove unneeded code, clarify description (ceeram)
* minor #934 StdinFileInfo::getFilename - Replace phpdoc with normal comment and add back empty line before return (ceeram)
@ -4916,7 +5048,7 @@ Changelog for v1.4
* bug #945 Skip files containing __halt_compiler() on PHP 5.3 (stof)
* bug #946 BracesFixer - fix typo in exception name (keradus)
* bug #940 Tokens::setCode - apply missing transformation (keradus)
* bug #908 BracesFixer - fix invalide inserting brace for control structure without brace and lambda inside of it (keradus)
* bug #908 BracesFixer - fix invalid inserting brace for control structure without brace and lambda inside of it (keradus)
* bug #903 NoEmptyLinesAfterPhpdocsFixer - fix bug with Windows style lines (GrahamCampbell)
* bug #895 [PSR-2] Preserve blank line after control structure opening brace (marcaube)
* bug #892 Fixed the double arrow multiline whitespace fixer (GrahamCampbell)
@ -4980,7 +5112,7 @@ Changelog for v1.2
* minor #779 Fixed a docblock type (GrahamCampbell)
* minor #765 Typehinting in FileCacheManager, remove unused variable in Tokens (keradus)
* minor #764 SelfUpdateCommand - get local version only if remote version was successfully obtained (keradus)
* minor #761 aling => (keradus)
* minor #761 align => (keradus)
* minor #757 Some minor code simplify and extra test (keradus)
* minor #713 Download php-cs-fixer.phar without sudo (michaelsauter)
* minor #742 Various Minor Improvements (GrahamCampbell)

View File

@ -1,6 +1,6 @@
# Contributions Are Welcome!
If you need any help, don't hesitate to ask the community using [GitHub Discussions](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/discussions/categories/q-a) or [Gitter](https://gitter.im/PHP-CS-Fixer/Lobby).
If you need any help, don't hesitate to ask the community using [GitHub Discussions](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/discussions/categories/q-a).
## Glossary
@ -26,9 +26,9 @@ A *config* knows about the code style rules and the files and directories that m
* Create new branch on top of the latest revision of `master` branch (if you already had project locally, then make sure to update this branch before going to next steps). It's good when branch's name reflects intent of the changes, but this is not strict requirement since pull request provides description of the change. However, with good branch naming it's easier to work on multiple changes simultaneously.
* Install dependencies by running `composer update` (since project does not contain `composer.lock` it's better to ensure latest versions of packages by running `update` command instead of `install`).
* Make changes. Please remember that **all** changes have to be covered by tests.
* if you work on a bug fix, please start with reproducing the problem by adding failing test case(s). When you have failing test case(s), you can [create pull request](#opening-a-pull-request) just to reproduce fail in the CI. Then you can provide fix _in the subsequent commits_, it will make code review easier. It's allowed to modify existing test cases in bug fix pull request, but *only if* current behavior is proved to be invalid.
* if you work on existing fixers then don't change existing test cases, because these are contract between the maintainers and users (they ensure how tool works). Add new test cases that cover provided changes - preferred way of defining test cases is with [data provider](https://docs.phpunit.de/en/10.0/writing-tests-for-phpunit.html#data-providers) which uses `yield` with proper case description as a key (e.g. `yield 'Some specific scenario' => ['some', 'example', 'data'];`). Codebase may still contain test cases in different format, and it's totally acceptable to use `yield` approach next to existing `return` usages.
* Update documentation: `composer docs`. This requires the highest version of PHP supported by PHP CS Fixer. If it is not installed on your system, you can run it in a Docker container instead: `docker-compose run php-8.2 php dev-tools/doc.php`.
* if you work on a bug fix, please start with reproducing the problem by adding failing test case(s). When you have failing test case(s), you can [create pull request](#opening-a-pull-request) just to reproduce fail in the CI. Then you can provide fix _in the subsequent commits_, it will make code review easier. It's allowed to modify existing test cases in bug fix pull request, but *only if* current behavior is proved to be invalid.
* if you work on existing fixers then don't change existing test cases, because these are contract between the maintainers and users (they ensure how tool works). Add new test cases that cover provided changes - preferred way of defining test cases is with [data provider](https://docs.phpunit.de/en/10.0/writing-tests-for-phpunit.html#data-providers) which uses `yield` with proper case description as a key (e.g. `yield 'Some specific scenario' => ['some', 'example', 'data'];`). Codebase may still contain test cases in different format, and it's totally acceptable to use `yield` approach next to existing `return` usages.
* Update documentation: `composer docs`. This requires the highest version of PHP supported by PHP CS Fixer. If it is not installed on your system, you can run it in a Docker container instead: `docker compose run php-8.2 php dev-tools/doc.php`.
* Run QA suite: `composer qa`.
* Fix project itself (if needed): `composer cs:fix`.
@ -49,31 +49,31 @@ This project provides a Docker setup that allows working on it using any of the
To use it, you first need to install [Docker](https://docs.docker.com/get-docker/) ([Docker Compose](https://docs.docker.com/compose/) is a built-in plugin of the main tool).
Next, copy [`docker-compose.override.yaml.dist`](./docker-compose.override.yaml.dist) to `docker-compose.override.yaml` and edit it to your needs. The relevant parameters that might require some tweaking have comments to help you.
Next, copy [`compose.override.dist.yaml`](./compose.override.dist.yaml) to `compose.override.yaml` and edit it to your needs. The relevant parameters that might require some tweaking have comments to help you.
You can then build the images:
```console
docker-compose build --parallel
docker compose build --parallel
```
Now you can run commands needed to work on the project. For example, say you want to run PHPUnit tests on PHP 7.4:
Now you can run commands needed to work on the project. For example, say you want to run PHPUnit tests on PHP 8.2:
```console
docker-compose run php-7.4 vendor/bin/phpunit
docker compose run php-8.2 vendor/bin/phpunit
```
Sometimes it can be more convenient to have a shell inside the container:
```console
docker-compose run php-7.4 sh
docker compose run php-7.4 sh
/app vendor/bin/phpunit
```
The images come with an [`xdebug` script](github.com/julienfalque/xdebug/) that allows running any PHP command with Xdebug enabled to help debug problems.
```console
docker-compose run php-7.4 xdebug vendor/bin/phpunit
docker compose run php-8.2 xdebug vendor/bin/phpunit
```
If you're using PhpStorm, you need to create a [server](https://www.jetbrains.com/help/phpstorm/servers.html) with a name that matches the `PHP_IDE_CONFIG` environment variable defined in the Docker Compose configuration files, which is `php-cs-fixer` by default.

View File

@ -4,8 +4,7 @@
</a>
</p>
PHP Coding Standards Fixer
==========================
# PHP Coding Standards Fixer
The PHP Coding Standards Fixer (PHP CS Fixer) tool fixes your code to follow standards;
whether you want to follow PHP coding standards as defined in the PSR-1, PSR-2, etc.,
@ -25,6 +24,7 @@ projects. This tool does not only detect them, but also fixes them for you.
* PHP 8.0 (except PHP 8.0.0 due to [bug in PHP tokenizer](https://bugs.php.net/bug.php?id=80462))
* PHP 8.1
* PHP 8.2
* PHP 8.3
> **Note**
> Each new PHP version requires a huge effort to support the new syntax.
@ -48,6 +48,7 @@ composer require --working-dir=tools/php-cs-fixer friendsofphp/php-cs-fixer
```
Or using the main `composer.json`:
```console
composer require --dev friendsofphp/php-cs-fixer
```
@ -82,11 +83,11 @@ Dedicated plugins exist for:
## Community
The PHP CS Fixer is maintained on GitHub at https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.
The PHP CS Fixer is maintained on GitHub at <https://github.com/PHP-CS-Fixer/PHP-CS-Fixer>.
Bug reports and ideas about new features are welcome there.
You can reach us at https://gitter.im/PHP-CS-Fixer/Lobby about the project,
configuration, possible improvements, ideas and questions, please visit us!
You can reach us in the [GitHub Discussions](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/discussions/) regarding the
project, configuration, possible improvements, ideas and questions. Please visit us there!
## Contribute

View File

@ -1,21 +1,18 @@
UPGRADE GUIDE FROM 2.x to 3.0
=============================
# UPGRADE GUIDE FROM 2.x to 3.0
This is guide for upgrade from version 2.x to 3.0 for using the CLI tool.
*Before following this guide, install [v2.19](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/releases/tag/v2.19.0) and run in verbose mode (`php-cs-fixer fix -v`) or in future mode (`PHP_CS_FIXER_FUTURE_MODE=1 php-cs-fixer fix`) to identify deprecations and fix them first.*
Rename of files
---------------
## Rename of files
| 2.x | 3.0 | Description |
| ---------------- | ------------------------ | -------------------------------------- |
|------------------|--------------------------|----------------------------------------|
| `.php_cs` | `.php-cs-fixer.php` | Configuration file (local) |
| `.php_cs.dist` | `.php-cs-fixer.dist.php` | Configuration file (to be distributed) |
| `.php_cs.cache` | `.php-cs-fixer.cache` | Cache file |
CLI options
-----------
## CLI options
| 2.x | 3.0 | Description | Note |
| ---------------- | --------------- | ----------------------------------------------- | -------------------------------------- |
@ -27,94 +24,93 @@ CLI options
| --rules | --rules | Default value changed from @PSR2 to @PSR12 | |
| --config --rules | | | No longer allowed to pass both |
Changes to rules
----------------
## Changes to rules
### Renamed rules
Old name | New name | Note
-------- | -------- | ----
`blank_line_before_return` | `blank_line_before_statement` | use configuration `['statements' => ['return']]`
`final_static_access` | `self_static_accessor` |
`hash_to_slash_comment` | `single_line_comment_style` | use configuration `['comment_types' => ['hash']]`
`lowercase_constants` | `constant_case` | use configuration `['case' => 'lower']`
`method_separation` | `class_attributes_separation` | use configuration `['elements' => ['method']]`
`no_extra_consecutive_blank_lines` | `no_extra_blank_lines` |
`no_multiline_whitespace_before_semicolons` | `multiline_whitespace_before_semicolons` |
`no_short_echo_tag` | `echo_tag_syntax` | use configuration `['format' => 'long']`
`php_unit_ordered_covers` | `phpdoc_order_by_value` | use configuration `['annotations' => [ 'covers' ]]`
`phpdoc_inline_tag` | `general_phpdoc_tag_rename`, `phpdoc_inline_tag_normalizer` and `phpdoc_tag_type` |
`pre_increment` | `increment_style` | use configuration `['style' => 'pre']`
`psr0` | `psr_autoloading` | use configuration `['dir' => x ]`
`psr4` | `psr_autoloading` |
`silenced_deprecation_error` | `error_suppression` |
`trailing_comma_in_multiline_array` | `trailing_comma_in_multiline` | use configuration `['elements' => ['arrays']]`
| Old name | New name | Note |
|--------------------------------------------|-----------------------------------------------------------------------------------|------------------------------------------------------|
|`blank_line_before_return` | `blank_line_before_statement` | use configuration `['statements' => ['return']]` |
|`final_static_access` | `self_static_accessor` | |
|`hash_to_slash_comment` | `single_line_comment_style` | use configuration `['comment_types' => ['hash']]` |
|`lowercase_constants` | `constant_case` | use configuration `['case' => 'lower']` |
|`method_separation` | `class_attributes_separation` | use configuration `['elements' => ['method']]` |
|`no_extra_consecutive_blank_lines` | `no_extra_blank_lines` | |
|`no_multiline_whitespace_before_semicolons` | `multiline_whitespace_before_semicolons` | |
|`no_short_echo_tag` | `echo_tag_syntax` | use configuration `['format' => 'long']` |
|`php_unit_ordered_covers` | `phpdoc_order_by_value` | use configuration `['annotations' => [ 'covers' ]]` |
|`phpdoc_inline_tag` | `general_phpdoc_tag_rename`, `phpdoc_inline_tag_normalizer` and `phpdoc_tag_type` | |
|`pre_increment` | `increment_style` | use configuration `['style' => 'pre']` |
|`psr0` | `psr_autoloading` | use configuration `['dir' => x ]` |
|`psr4` | `psr_autoloading` | |
|`silenced_deprecation_error` | `error_suppression` | |
|`trailing_comma_in_multiline_array` | `trailing_comma_in_multiline` | use configuration `['elements' => ['arrays']]` |
### Removed rootless configuration
Rule | Root option | Note
------------------------------------ | -------------- | ----
`general_phpdoc_annotation_remove` | `annotations`
`no_extra_consecutive_blank_lines` | `tokens`
`no_spaces_around_offset` | `positions`
`no_unneeded_control_parentheses` | `statements`
`ordered_class_elements` | `order`
`php_unit_construct` | `assertions`
`php_unit_dedicate_assert` | `target` | root option works differently than rootless configuration
`php_unit_strict` | `assertions`
`phpdoc_no_alias_tag` | `replacements`
`phpdoc_return_self_reference` | `replacements`
`random_api_migration` | `replacements`
`single_class_element_per_statement` | `elements`
`visibility_required` | `elements`
| Rule | Root option | Note |
|--------------------------------------| -------------- |-----------------------------------------------------------|
| `general_phpdoc_annotation_remove` | `annotations` | |
| `no_extra_consecutive_blank_lines` | `tokens` | |
| `no_spaces_around_offset` | `positions` | |
| `no_unneeded_control_parentheses` | `statements` | |
| `ordered_class_elements` | `order` | |
| `php_unit_construct` | `assertions` | |
| `php_unit_dedicate_assert` | `target` | root option works differently than rootless configuration |
| `php_unit_strict` | `assertions` | |
| `phpdoc_no_alias_tag` | `replacements` | |
| `phpdoc_return_self_reference` | `replacements` | |
| `random_api_migration` | `replacements` | |
| `single_class_element_per_statement` | `elements` | |
| `visibility_required` | `elements` | |
### Changed options
Rule | Option | Change
---- | ------ | ------
`binary_operator_spaces` | `align_double_arrow` | option was removed, use `operators` instead
`binary_operator_spaces` | `align_equals` | option was removed use `operators` instead
`blank_line_before_statement` | `statements: die` | option `die` was removed from `statements`, use `exit` instead
`class_attributes_separation` | `elements` | option does no longer accept flat array as a value, use map instead
`class_definition` | `multiLineExtendsEachSingleLine` | option was renamed to `multi_line_extends_each_single_line`
`class_definition` | `singleItemSingleLine` | option was renamed to `single_item_single_line`
`class_definition` | `singleLine` | option was renamed to `single_line`
`doctrine_annotation_spaces` | `around_argument_assignments` | option was removed, use `before_argument_assignments` and `after_argument_assignments` instead
`doctrine_annotation_spaces` | `around_array_assignments` | option was removed, use `after_array_assignments_colon`, `after_array_assignments_equals`, `before_array_assignments_colon` and `before_array_assignments_equals` instead
`final_internal_class` | `annotation-black-list` | option was renamed, use `annotation_exclude`
`final_internal_class` | `annotation-white-list` | option was renamed, use `annotation_include`
`final_internal_class` | `consider-absent-docblock-as-internal-class` | option was renamed, use `consider_absent_docblock_as_internal_class`
`header_comment` | `commentType` | option was renamed to `comment_type`
`is_null` | `use_yoda_style` | option was removed, use `yoda_style` rule instead
`no_extra_consecutive_blank_lines` | `tokens` | one of possible values, `useTrait`, was renamed to `use_trait`
`ordered_class_elements` | `sortAlgorithm` | option was renamed, use `sort_algorithm` instead
`ordered_imports` | `importsOrder` | option was renamed, use `imports_order`
`ordered_imports` | `sortAlgorithm` | option was renamed, use `sort_algorithm`
`php_unit_dedicate_assert` | `functions` | option was removed, use `target` instead
`php_unit_test_annotation` | `case` | option was removed, use `php_unit_method_casing` rule instead
| Rule | Option | Change |
|------------------------------------|----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `binary_operator_spaces` | `align_double_arrow` | option was removed, use `operators` instead |
| `binary_operator_spaces` | `align_equals` | option was removed use `operators` instead |
| `blank_line_before_statement` | `statements: die` | option `die` was removed from `statements`, use `exit` instead |
| `class_attributes_separation` | `elements` | option does no longer accept flat array as a value, use map instead |
| `class_definition` | `multiLineExtendsEachSingleLine` | option was renamed to `multi_line_extends_each_single_line` |
| `class_definition` | `singleItemSingleLine` | option was renamed to `single_item_single_line` |
| `class_definition` | `singleLine` | option was renamed to `single_line` |
| `doctrine_annotation_spaces` | `around_argument_assignments` | option was removed, use `before_argument_assignments` and `after_argument_assignments` instead |
| `doctrine_annotation_spaces` | `around_array_assignments` | option was removed, use `after_array_assignments_colon`, `after_array_assignments_equals`, `before_array_assignments_colon` and `before_array_assignments_equals` instead |
| `final_internal_class` | `annotation-black-list` | option was renamed, use `annotation_exclude` |
| `final_internal_class` | `annotation-white-list` | option was renamed, use `annotation_include` |
| `final_internal_class` | `consider-absent-docblock-as-internal-class` | option was renamed, use `consider_absent_docblock_as_internal_class` |
| `header_comment` | `commentType` | option was renamed to `comment_type` |
| `is_null` | `use_yoda_style` | option was removed, use `yoda_style` rule instead |
| `no_extra_consecutive_blank_lines` | `tokens` | one of possible values, `useTrait`, was renamed to `use_trait` |
| `ordered_class_elements` | `sortAlgorithm` | option was renamed, use `sort_algorithm` instead |
| `ordered_imports` | `importsOrder` | option was renamed, use `imports_order` |
| `ordered_imports` | `sortAlgorithm` | option was renamed, use `sort_algorithm` |
| `php_unit_dedicate_assert` | `functions` | option was removed, use `target` instead |
| `php_unit_test_annotation` | `case` | option was removed, use `php_unit_method_casing` rule instead |
### Changed default values of options
Rule | Option | Old value | New value
---- | ---- | ---- | ----
`array_syntax` | `syntax` | `'long'` | `'short'`
`function_to_constant` | `functions` | `['get_class', 'php_sapi_name', 'phpversion', 'pi']` | `['get_called_class', 'get_class', 'php_sapi_name', 'phpversion', 'pi']`
`list_syntax` | `syntax` | `'long'` | `'short'`
`method_argument_space` | `on_multiline` | `'ignore'` | `'ensure_fully_multiline'`
`native_constant_invocation` | `strict` | `false` | `true`
`native_function_casing` | `include` | `'@internal'` | `'@compiler_optimized'`
`native_function_invocation` | `include` | `'@internal'` | `'@compiler_optimized'`
`native_function_invocation` | `strict` | `false` | `true`
`non_printable_character` | `use_escape_sequences_in_strings` | `false` | `true` (when running on PHP 7.0 and up)
`php_unit_dedicate_assert` | `target` | `'5.0'` | `'newest'`
`phpdoc_align` | `tags` | `['param', 'return', 'throws', 'type', 'var']` | `['method', 'param', 'property', 'return', 'throws', 'type', 'var']`
`phpdoc_scalar` | `types` | `['boolean', 'double', 'integer', 'real', 'str']` | `['boolean', 'callback', 'double', 'integer', 'real', 'str']`
| Rule | Option | Old value | New value |
|------------------------------|-----------------------------------|------------------------------------------------------|--------------------------------------------------------------------------|
| `array_syntax` | `syntax` | `'long'` | `'short'` |
| `function_to_constant` | `functions` | `['get_class', 'php_sapi_name', 'phpversion', 'pi']` | `['get_called_class', 'get_class', 'php_sapi_name', 'phpversion', 'pi']` |
| `list_syntax` | `syntax` | `'long'` | `'short'` |
| `method_argument_space` | `on_multiline` | `'ignore'` | `'ensure_fully_multiline'` |
| `native_constant_invocation` | `strict` | `false` | `true` |
| `native_function_casing` | `include` | `'@internal'` | `'@compiler_optimized'` |
| `native_function_invocation` | `include` | `'@internal'` | `'@compiler_optimized'` |
| `native_function_invocation` | `strict` | `false` | `true` |
| `non_printable_character` | `use_escape_sequences_in_strings` | `false` | `true` (when running on PHP 7.0 and up) |
| `php_unit_dedicate_assert` | `target` | `'5.0'` | `'newest'` |
| `phpdoc_align` | `tags` | `['param', 'return', 'throws', 'type', 'var']` | `['method', 'param', 'property', 'return', 'throws', 'type', 'var']` |
| `phpdoc_scalar` | `types` | `['boolean', 'double', 'integer', 'real', 'str']` | `['boolean', 'callback', 'double', 'integer', 'real', 'str']` |
### Removed rule sets
Rule set | Note
-------- | ----
`@PHP56Migration` | was empty
| Rule set | Note |
|-------------------|------------|
| `@PHP56Migration` | was empty |
### Rule behavior changes
@ -124,8 +120,7 @@ Rule set | Note
- `udiff` output now includes the file name in the output (if applicable)
Code BC changes
===============
## Code BC changes
### Removed; various
@ -138,11 +133,11 @@ Code BC changes
- `MethodArgumentSpaceFixer` deprecated methods have been removed
- `NoMixedEchoPrintFixer` the property `$defaultConfig` has been removed
- class `Tokens`, the following methods has been removed:
- `current()`
- `key()`
- `next()`
- `rewind()`
- `valid()`
- `current()`
- `key()`
- `next()`
- `rewind()`
- `valid()`
- namespace `PhpCsFixer\Test\` and each class in it has been removed, as it served pure development purpose and should not be part of production code - reach out to community if you are willing to help building dev package
### Interface changes

View File

@ -23,34 +23,32 @@
"php": "^7.4 || ^8.0",
"ext-json": "*",
"ext-tokenizer": "*",
"composer/semver": "^3.3",
"composer/semver": "^3.4",
"composer/xdebug-handler": "^3.0.3",
"sebastian/diff": "^4.0 || ^5.0",
"symfony/console": "^5.4 || ^6.0",
"symfony/event-dispatcher": "^5.4 || ^6.0",
"symfony/filesystem": "^5.4 || ^6.0",
"symfony/finder": "^5.4 || ^6.0",
"symfony/options-resolver": "^5.4 || ^6.0",
"symfony/polyfill-mbstring": "^1.27",
"symfony/polyfill-php80": "^1.27",
"symfony/polyfill-php81": "^1.27",
"symfony/process": "^5.4 || ^6.0",
"symfony/stopwatch": "^5.4 || ^6.0"
"symfony/console": "^5.4 || ^6.0 || ^7.0",
"symfony/event-dispatcher": "^5.4 || ^6.0 || ^7.0",
"symfony/filesystem": "^5.4 || ^6.0 || ^7.0",
"symfony/finder": "^5.4 || ^6.0 || ^7.0",
"symfony/options-resolver": "^5.4 || ^6.0 || ^7.0",
"symfony/polyfill-mbstring": "^1.28",
"symfony/polyfill-php80": "^1.28",
"symfony/polyfill-php81": "^1.28",
"symfony/process": "^5.4 || ^6.0 || ^7.0",
"symfony/stopwatch": "^5.4 || ^6.0 || ^7.0"
},
"require-dev": {
"facile-it/paraunit": "^1.3 || ^2.0",
"justinrainbow/json-schema": "^5.2",
"keradus/cli-executor": "^2.0",
"keradus/cli-executor": "^2.1",
"mikey179/vfsstream": "^1.6.11",
"php-coveralls/php-coveralls": "^2.5.3",
"php-coveralls/php-coveralls": "^2.7",
"php-cs-fixer/accessible-object": "^1.1",
"php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2",
"php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1",
"phpspec/prophecy": "^1.16",
"phpspec/prophecy-phpunit": "^2.0",
"phpunit/phpunit": "^9.5",
"symfony/phpunit-bridge": "^6.2.3",
"symfony/yaml": "^5.4 || ^6.0"
"php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.4",
"php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.4",
"phpunit/phpunit": "^9.6",
"symfony/phpunit-bridge": "^6.3.8 || ^7.0",
"symfony/yaml": "^5.4 || ^6.0 || ^7.0"
},
"suggest": {
"ext-dom": "For handling output formats in XML",
@ -74,13 +72,18 @@
"ergebnis/composer-normalize": true,
"infection/extension-installer": false
},
"prefer-stable": true,
"sort-packages": true
},
"scripts": {
"post-autoload-dump": [
"@install-tools"
],
"cs:check": "@php php-cs-fixer check --diff",
"auto-review": [
"Composer\\Config::disableProcessTimeout",
"paraunit run --testsuite auto-review"
],
"cs:check": "@php php-cs-fixer check --verbose --diff",
"cs:fix": "@php php-cs-fixer fix",
"cs:fix:parallel": "echo '🔍 Will run in batches of 50 files.'; if [[ -f .php-cs-fixer.php ]]; then FIXER_CONFIG=.php-cs-fixer.php; else FIXER_CONFIG=.php-cs-fixer.dist.php; fi; php php-cs-fixer list-files --config=$FIXER_CONFIG | xargs -n 50 -P 8 php php-cs-fixer fix --config=$FIXER_CONFIG --path-mode intersection 2> /dev/null",
"docs": "@php dev-tools/doc.php",
@ -97,7 +100,7 @@
"Composer\\Config::disableProcessTimeout",
"@install-tools --quiet",
"@self-check",
"@sa",
"@static-analysis",
"@test"
],
"require-checker": "@php dev-tools/vendor/bin/composer-require-checker check composer.json --config-file .composer-require-checker.json",
@ -106,7 +109,8 @@
"./dev-tools/check_file_permissions.sh",
"./dev-tools/check_trailing_spaces.sh",
"@normalize",
"@require-checker"
"@require-checker",
"@auto-review"
],
"static-analysis": [
"@cs:check",
@ -115,15 +119,28 @@
],
"test": "@test:all",
"test:all": [
"Composer\\Config::disableProcessTimeout",
"paraunit run --testsuite all"
"@test:unit",
"@test:integration"
],
"test:coverage": [
"Composer\\Config::disableProcessTimeout",
"paraunit run --testsuite coverage"
"paraunit coverage --testsuite unit --exclude-group covers-nothing"
],
"test:integration": [
"Composer\\Config::disableProcessTimeout",
"paraunit run --testsuite integration"
],
"test:smoke": [
"Composer\\Config::disableProcessTimeout",
"paraunit run --testsuite smoke"
],
"test:unit": [
"Composer\\Config::disableProcessTimeout",
"paraunit run --testsuite unit"
]
},
"scripts-descriptions": {
"auto-review": "Execute Auto-review",
"cs:check": "Check coding standards",
"cs:fix": "Fix coding standards",
"cs:fix:parallel": "Fix coding standards in naive parallel mode (using xargs)",
@ -141,7 +158,10 @@
"self-check": "Run set of self-checks ensuring repository's validity",
"static-analysis": "Run static analysis",
"test": "Alias for 'test:all'",
"test:all": "Run all tests",
"test:coverage": "Run tool-related tests"
"test:all": "Run Unit and Integration tests (but *NOT* Smoke tests)",
"test:coverage": "Run tests that provide code coverage",
"test:integration": "Run Integration tests",
"test:smoke": "Run Smoke tests",
"test:unit": "Run Unit tests"
}
}

View File

@ -1,3 +1,3 @@
The logo is © 2010+ Sensio Labs.
Original resolution can be found at https://github.com/PHP-CS-Fixer/logo .
Original resolution can be found at <https://github.com/PHP-CS-Fixer/logo>.

4
vendor/friendsofphp/php-cs-fixer/php-cs-fixer vendored Normal file → Executable file
View File

@ -28,8 +28,8 @@ set_error_handler(static function ($severity, $message, $file, $line) {
exit(1);
}
if (\PHP_VERSION_ID < 70400 || \PHP_VERSION_ID >= 80300) {
fwrite(STDERR, "PHP needs to be a minimum version of PHP 7.4.0 and maximum version of PHP 8.2.*.\n");
if (\PHP_VERSION_ID < 70400 || \PHP_VERSION_ID >= 80400) {
fwrite(STDERR, "PHP needs to be a minimum version of PHP 7.4.0 and maximum version of PHP 8.3.*.\n");
fwrite(STDERR, 'Current PHP version: '.PHP_VERSION.".\n");
if (getenv('PHP_CS_FIXER_IGNORE_ENV')) {

View File

@ -43,6 +43,7 @@ abstract class AbstractPhpdocToTypeDeclarationFixer extends AbstractFixer implem
'iterable' => 7_01_00,
'object' => 7_02_00,
'mixed' => 8_00_00,
'never' => 8_01_00,
];
/**
@ -126,54 +127,49 @@ abstract class AbstractPhpdocToTypeDeclarationFixer extends AbstractFixer implem
*/
protected function createTypeDeclarationTokens(string $type, bool $isNullable): array
{
static $specialTypes = [
'array' => [CT::T_ARRAY_TYPEHINT, 'array'],
'callable' => [T_CALLABLE, 'callable'],
'static' => [T_STATIC, 'static'],
];
$newTokens = [];
if (true === $isNullable && 'mixed' !== $type) {
$newTokens[] = new Token([CT::T_NULLABLE_TYPE, '?']);
}
if (isset($specialTypes[$type])) {
$newTokens[] = new Token($specialTypes[$type]);
} else {
$typeUnqualified = ltrim($type, '\\');
$newTokens = array_merge(
$newTokens,
$this->createTokensFromRawType($type)->toArray()
);
if (isset($this->scalarTypes[$typeUnqualified]) || isset($this->versionSpecificTypes[$typeUnqualified])) {
// 'scalar's, 'void', 'iterable' and 'object' must be unqualified
$newTokens[] = new Token([T_STRING, $typeUnqualified]);
} else {
foreach (explode('\\', $type) as $nsIndex => $value) {
if (0 === $nsIndex && '' === $value) {
continue;
}
// 'scalar's, 'void', 'iterable' and 'object' must be unqualified
foreach ($newTokens as $i => $token) {
if ($token->isGivenKind(T_STRING)) {
$typeUnqualified = $token->getContent();
if (0 < $nsIndex) {
$newTokens[] = new Token([T_NS_SEPARATOR, '\\']);
}
$newTokens[] = new Token([T_STRING, $value]);
if (
(isset($this->scalarTypes[$typeUnqualified]) || isset($this->versionSpecificTypes[$typeUnqualified]))
&& isset($newTokens[$i - 1])
&& '\\' === $newTokens[$i - 1]->getContent()
) {
unset($newTokens[$i - 1]);
}
}
}
return $newTokens;
return array_values($newTokens);
}
/**
* Each fixer inheriting from this class must define a way of creating token collection representing type
* gathered from phpDoc, e.g. `Foo|Bar` should be transformed into 3 tokens (`Foo`, `|` and `Bar`).
* This can't be standardised, because some types may be allowed in one place, and invalid in others.
*
* @param string $type Type determined (and simplified) from phpDoc
*/
abstract protected function createTokensFromRawType(string $type): Tokens;
/**
* @return null|array{string, bool}
*/
protected function getCommonTypeFromAnnotation(Annotation $annotation, bool $isReturnType): ?array
protected function getCommonTypeInfo(TypeExpression $typesExpression, bool $isReturnType): ?array
{
$typesExpression = $annotation->getTypeExpression();
if (null === $typesExpression) {
return null;
}
$commonType = $typesExpression->getCommonType();
$isNullable = $typesExpression->allowsNull();
@ -208,6 +204,66 @@ abstract class AbstractPhpdocToTypeDeclarationFixer extends AbstractFixer implem
return [$commonType, $isNullable];
}
protected function getUnionTypes(TypeExpression $typesExpression, bool $isReturnType): ?string
{
if (\PHP_VERSION_ID < 8_00_00) {
return null;
}
if (!$typesExpression->isUnionType() || '|' !== $typesExpression->getTypesGlue()) {
return null;
}
$types = $typesExpression->getTypes();
$isNullable = $typesExpression->allowsNull();
$unionTypes = [];
$containsOtherThanIterableType = false;
$containsOtherThanEmptyType = false;
foreach ($types as $type) {
if ('null' === $type) {
continue;
}
if ($this->isSkippedType($type)) {
return null;
}
if (isset($this->versionSpecificTypes[$type]) && \PHP_VERSION_ID < $this->versionSpecificTypes[$type]) {
return null;
}
$typeExpression = new TypeExpression($type, null, []);
$commonType = $typeExpression->getCommonType();
if (!$containsOtherThanIterableType && !\in_array($commonType, ['array', 'Traversable', 'iterable'], true)) {
$containsOtherThanIterableType = true;
}
if ($isReturnType && !$containsOtherThanEmptyType && !\in_array($commonType, ['null', 'void', 'never'], true)) {
$containsOtherThanEmptyType = true;
}
if (!$isNullable && $typesExpression->allowsNull()) {
$isNullable = true;
}
$unionTypes[] = $commonType;
}
if (!$containsOtherThanIterableType) {
return null;
}
if ($isReturnType && !$containsOtherThanEmptyType) {
return null;
}
if ($isNullable) {
$unionTypes[] = 'null';
}
return implode($typesExpression->getTypesGlue(), array_unique($unionTypes));
}
final protected function isValidSyntax(string $code): bool
{
if (!isset(self::$syntaxValidationCache[$code])) {

View File

@ -40,8 +40,8 @@ use Symfony\Component\Console\Output\OutputInterface;
*/
final class Application extends BaseApplication
{
public const VERSION = '3.37.1';
public const VERSION_CODENAME = 'ParaCache';
public const VERSION = '3.41.1';
public const VERSION_CODENAME = 'Long Night';
private ToolInfo $toolInfo;

View File

@ -18,6 +18,7 @@ use PhpCsFixer\Config;
use PhpCsFixer\Console\ConfigurationResolver;
use PhpCsFixer\Differ\DiffConsoleFormatter;
use PhpCsFixer\Differ\FullDiffer;
use PhpCsFixer\Documentation\FixerDocumentGenerator;
use PhpCsFixer\Fixer\ConfigurableFixerInterface;
use PhpCsFixer\Fixer\DeprecatedFixerInterface;
use PhpCsFixer\Fixer\FixerInterface;
@ -150,24 +151,25 @@ final class DescribeCommand extends Command
$definition = $fixer->getDefinition();
$summary = $definition->getSummary();
$output->writeln(sprintf('<fg=blue>Description of the <info>`%s`</info> rule.</>', $name));
$output->writeln('');
if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) {
$output->writeln(sprintf('Fixer class: <comment>%s</comment>.', \get_class($fixer)));
$output->writeln('');
}
if ($fixer instanceof DeprecatedFixerInterface) {
$successors = $fixer->getSuccessorsNames();
$message = [] === $successors
? 'will be removed in the next major version'
: sprintf('use %s instead', Utils::naturalLanguageJoinWithBackticks($successors));
$message = Preg::replace('/(`.+?`)/', '<info>$1</info>', $message);
$summary .= sprintf(' <error>DEPRECATED</error>: %s.', $message);
$message = Preg::replace('/(`[^`]+`)/', '<info>$1</info>', $message);
$output->writeln(sprintf('<error>DEPRECATED</error>: %s.', $message));
$output->writeln('');
}
$output->writeln(sprintf('<info>Description of</info> %s <info>rule</info>.', $name));
if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) {
$output->writeln(sprintf('Fixer class: <comment>%s</comment>.', \get_class($fixer)));
}
$output->writeln($summary);
$output->writeln($definition->getSummary());
$description = $definition->getDescription();
@ -251,9 +253,14 @@ final class DescribeCommand extends Command
return true;
});
if (0 === \count($codeSamples)) {
if (0 === \count($definition->getCodeSamples())) {
$output->writeln([
'Fixing examples cannot be demonstrated on the current PHP version.',
'Fixing examples are not available for this rule.',
'',
]);
} elseif (0 === \count($codeSamples)) {
$output->writeln([
'Fixing examples <error>cannot be</error> demonstrated on the current PHP version.',
'',
]);
} else {
@ -300,6 +307,24 @@ final class DescribeCommand extends Command
$output->writeln([$diffFormatter->format($diff, ' %s'), '']);
}
}
$ruleSetConfigs = FixerDocumentGenerator::getSetsOfRule($name);
if ([] !== $ruleSetConfigs) {
ksort($ruleSetConfigs);
$plural = 1 !== \count($ruleSetConfigs) ? 's' : '';
$output->writeln("Fixer is part of the following rule set{$plural}:");
foreach ($ruleSetConfigs as $set => $config) {
if (null !== $config) {
$output->writeln(sprintf('* <info>%s</info> with config: <comment>%s</comment>', $set, Utils::toString($config)));
} else {
$output->writeln(sprintf('* <info>%s</info> with <comment>default</comment> config', $set));
}
}
$output->writeln('');
}
}
private function describeSet(OutputInterface $output, string $name): void
@ -311,15 +336,17 @@ final class DescribeCommand extends Command
$ruleSetDefinitions = RuleSets::getSetDefinitions();
$fixers = $this->getFixers();
$output->writeln(sprintf('<info>Description of the</info> %s <info>set.</info>', $ruleSetDefinitions[$name]->getName()));
$output->writeln(sprintf('<fg=blue>Description of the <info>`%s`</info> set.</>', $ruleSetDefinitions[$name]->getName()));
$output->writeln('');
$output->writeln($this->replaceRstLinks($ruleSetDefinitions[$name]->getDescription()));
$output->writeln('');
if ($ruleSetDefinitions[$name]->isRisky()) {
$output->writeln('This set contains <error>risky</error> rules.');
$output->writeln('<error>This set contains risky rules.</error>');
$output->writeln('');
}
$output->writeln('');
$help = '';
foreach ($ruleSetDefinitions[$name]->getRules() as $rule => $config) {

View File

@ -16,7 +16,6 @@ namespace PhpCsFixer\Console\Command;
use PhpCsFixer\Documentation\DocumentationLocator;
use PhpCsFixer\Documentation\FixerDocumentGenerator;
use PhpCsFixer\Documentation\ListDocumentGenerator;
use PhpCsFixer\Documentation\RuleSetDocumentationGenerator;
use PhpCsFixer\FixerFactory;
use PhpCsFixer\RuleSet\RuleSets;
@ -57,7 +56,6 @@ final class DocumentationCommand extends Command
$fixerDocumentGenerator = new FixerDocumentGenerator($locator);
$ruleSetDocumentationGenerator = new RuleSetDocumentationGenerator($locator);
$listDocumentGenerator = new ListDocumentGenerator($locator);
// Array of existing fixer docs.
// We first override existing files, and then we will delete files that are no longer needed.
@ -111,13 +109,6 @@ final class DocumentationCommand extends Command
$ruleSetDocumentationGenerator->generateRuleSetsDocumentationIndex($paths)
);
// List file / Appendix
$filesystem->dumpFile(
$locator->getListingFilePath(),
$listDocumentGenerator->generateListingDocumentation($fixers)
);
$output->writeln('Docs updated.');
return 0;

View File

@ -50,7 +50,7 @@ final class ListSetsCommand extends Command
;
}
protected function execute(InputInterface $input, OutputInterface $output)
protected function execute(InputInterface $input, OutputInterface $output): int
{
$reporter = $this->resolveReporterWithFactory(
$input->getOption('format'),

View File

@ -32,7 +32,7 @@ final class JsonReporter implements ReporterInterface
{
$sets = $reportSummary->getSets();
usort($sets, static fn (RuleSetDescriptionInterface $a, RuleSetDescriptionInterface $b): int => strcmp($a->getName(), $b->getName()));
usort($sets, static fn (RuleSetDescriptionInterface $a, RuleSetDescriptionInterface $b): int => $a->getName() <=> $b->getName());
$json = ['sets' => []];

View File

@ -32,7 +32,7 @@ final class TextReporter implements ReporterInterface
{
$sets = $reportSummary->getSets();
usort($sets, static fn (RuleSetDescriptionInterface $a, RuleSetDescriptionInterface $b): int => strcmp($a->getName(), $b->getName()));
usort($sets, static fn (RuleSetDescriptionInterface $a, RuleSetDescriptionInterface $b): int => $a->getName() <=> $b->getName());
$output = '';

View File

@ -70,7 +70,7 @@ final class WarningsDetector
return array_unique(array_merge(
$this->warnings,
['If you need help while solving warnings, ask at https://gitter.im/PHP-CS-Fixer, we will help you!']
['If you need help while solving warnings, ask at https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/discussions/, we will help you!']
));
}
}

View File

@ -203,15 +203,7 @@ final class FixerDocumentGenerator
}
}
$ruleSetConfigs = [];
foreach (RuleSets::getSetDefinitionNames() as $set) {
$ruleSet = new RuleSet([$set => true]);
if ($ruleSet->hasRule($name)) {
$ruleSetConfigs[$set] = $ruleSet->getRuleConfiguration($name);
}
}
$ruleSetConfigs = self::getSetsOfRule($name);
if ([] !== $ruleSetConfigs) {
$plural = 1 !== \count($ruleSetConfigs) ? 's' : '';
@ -238,9 +230,46 @@ final class FixerDocumentGenerator
}
}
$reflectionObject = new \ReflectionObject($fixer);
$className = str_replace('\\', '\\\\', $reflectionObject->getName());
$fileName = $reflectionObject->getFileName();
$fileName = str_replace('\\', '/', $fileName);
$fileName = substr($fileName, strrpos($fileName, '/src/Fixer/') + 1);
$fileName = "`{$className} <./../../../{$fileName}>`_";
$doc .= <<<RST
Source class
------------
{$fileName}
RST;
$doc = str_replace("\t", '<TAB>', $doc);
return "{$doc}\n";
}
/**
* @internal
*
* @return array<string, null|array<string, mixed>>
*/
public static function getSetsOfRule(string $ruleName): array
{
$ruleSetConfigs = [];
foreach (RuleSets::getSetDefinitionNames() as $set) {
$ruleSet = new RuleSet([$set => true]);
if ($ruleSet->hasRule($ruleName)) {
$ruleSetConfigs[$set] = $ruleSet->getRuleConfiguration($ruleName);
}
}
return $ruleSetConfigs;
}
/**
* @param FixerInterface[] $fixers
*/
@ -252,7 +281,7 @@ final class FixerDocumentGenerator
'Phpdoc' => 'PHPDoc',
];
usort($fixers, static fn (FixerInterface $a, FixerInterface $b): int => strcmp(\get_class($a), \get_class($b)));
usort($fixers, static fn (FixerInterface $a, FixerInterface $b): int => \get_class($a) <=> \get_class($b));
$documentation = <<<'RST'
=======================

View File

@ -1,170 +0,0 @@
<?php
declare(strict_types=1);
/*
* This file is part of PHP CS Fixer.
*
* (c) Fabien Potencier <fabien@symfony.com>
* Dariusz Rumiński <dariusz.ruminski@gmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace PhpCsFixer\Documentation;
use PhpCsFixer\Console\Command\HelpCommand;
use PhpCsFixer\Fixer\ConfigurableFixerInterface;
use PhpCsFixer\Fixer\DeprecatedFixerInterface;
use PhpCsFixer\Fixer\FixerInterface;
use PhpCsFixer\FixerConfiguration\AliasedFixerOption;
use PhpCsFixer\FixerConfiguration\AllowedValueSubset;
use PhpCsFixer\FixerConfiguration\DeprecatedFixerOptionInterface;
use PhpCsFixer\RuleSet\RuleSet;
use PhpCsFixer\RuleSet\RuleSets;
use PhpCsFixer\Utils;
/**
* @internal
*/
final class ListDocumentGenerator
{
private DocumentationLocator $locator;
public function __construct(DocumentationLocator $locator)
{
$this->locator = $locator;
}
/**
* @param FixerInterface[] $fixers
*/
public function generateListingDocumentation(array $fixers): string
{
usort(
$fixers,
static fn (FixerInterface $fixer1, FixerInterface $fixer2): int => strnatcasecmp($fixer1->getName(), $fixer2->getName())
);
$documentation = <<<'RST'
=======================
List of Available Rules
=======================
RST;
foreach ($fixers as $fixer) {
$name = $fixer->getName();
$definition = $fixer->getDefinition();
$path = './rules/'.$this->locator->getFixerDocumentationFileRelativePath($fixer);
$documentation .= "\n- `{$name} <{$path}>`_\n";
$documentation .= "\n ".str_replace('`', '``', $definition->getSummary())."\n";
$description = $definition->getDescription();
if (null !== $description) {
$documentation .= "\n ".RstUtils::toRst($description, 3)."\n";
}
if ($fixer instanceof DeprecatedFixerInterface) {
$documentation .= "\n *warning deprecated*";
$alternatives = $fixer->getSuccessorsNames();
if (0 !== \count($alternatives)) {
$documentation .= RstUtils::toRst(sprintf(
' Use %s instead.',
Utils::naturalLanguageJoinWithBackticks($alternatives)
), 3);
}
$documentation .= "\n";
}
if ($fixer->isRisky()) {
$documentation .= "\n *warning risky* ".RstUtils::toRst($definition->getRiskyDescription(), 3)."\n";
}
if ($fixer instanceof ConfigurableFixerInterface) {
$documentation .= "\n Configuration options:\n";
$configurationDefinition = $fixer->getConfigurationDefinition();
foreach ($configurationDefinition->getOptions() as $option) {
$documentation .= "\n - | ``{$option->getName()}``";
$documentation .= "\n | ".RstUtils::ensureProperInlineCode($option->getDescription());
if ($option instanceof DeprecatedFixerOptionInterface) {
$deprecationMessage = RstUtils::toRst($option->getDeprecationMessage(), 3);
$documentation .= "\n | warning:: This option is deprecated and will be removed in the next major version. {$deprecationMessage}";
}
if ($option instanceof AliasedFixerOption) {
$documentation .= "\n | note:: The previous name of this option was ``{$option->getAlias()}`` but it is now deprecated and will be removed in the next major version.";
}
$allowed = HelpCommand::getDisplayableAllowedValues($option);
if (null === $allowed) {
$allowedKind = 'Allowed types';
$allowed = array_map(
static fn ($value): string => '``'.$value.'``',
$option->getAllowedTypes(),
);
} else {
$allowedKind = 'Allowed values';
$allowed = array_map(static fn ($value): string => $value instanceof AllowedValueSubset
? 'a subset of ``'.Utils::toString($value->getAllowedValues()).'``'
: '``'.Utils::toString($value).'``', $allowed);
}
$allowed = Utils::naturalLanguageJoin($allowed, '');
$documentation .= "\n | {$allowedKind}: {$allowed}";
if ($option->hasDefault()) {
$default = Utils::toString($option->getDefault());
$documentation .= "\n | Default value: ``{$default}``";
} else {
$documentation .= "\n | This option is required.";
}
}
$documentation .= "\n\n";
}
$ruleSetConfigs = [];
foreach (RuleSets::getSetDefinitionNames() as $set) {
$ruleSet = new RuleSet([$set => true]);
if ($ruleSet->hasRule($name)) {
$ruleSetConfigs[$set] = $ruleSet->getRuleConfiguration($name);
}
}
if ([] !== $ruleSetConfigs) {
$plural = 1 !== \count($ruleSetConfigs) ? 's' : '';
$documentation .= "\n Part of rule set{$plural} ";
foreach ($ruleSetConfigs as $set => $config) {
$ruleSetPath = $this->locator->getRuleSetsDocumentationFilePath($set);
$ruleSetPath = substr($ruleSetPath, strrpos($ruleSetPath, '/'));
$documentation .= "`{$set} <./ruleSets{$ruleSetPath}>`_ ";
}
$documentation = rtrim($documentation)."\n";
}
$reflectionObject = new \ReflectionObject($fixer);
$className = str_replace('\\', '\\\\', $reflectionObject->getName());
$fileName = $reflectionObject->getFileName();
$fileName = str_replace('\\', '/', $fileName);
$fileName = substr($fileName, strrpos($fileName, '/src/Fixer/') + 1);
$fileName = "`Source {$className} <./../{$fileName}>`_";
$documentation .= "\n ".$fileName;
}
return $documentation."\n";
}
}

View File

@ -69,6 +69,10 @@ final class MbStrFunctionsFixer extends AbstractFunctionReferenceFixer
{
parent::__construct();
if (\PHP_VERSION_ID >= 8_03_00) {
self::$functionsMap['str_pad'] = ['alternativeName' => 'mb_str_pad', 'argumentCount' => [1, 2, 3, 4]];
}
$this->functions = array_filter(
self::$functionsMap,
static fn (array $mapping): bool => (new \ReflectionFunction($mapping['alternativeName']))->isInternal()

View File

@ -82,8 +82,8 @@ final class ReturnToYieldFromFixer extends AbstractFixer
$functionEndIndex = $arrayEndIndex;
do {
$functionEndIndex = $tokens->getNextMeaningfulToken($functionEndIndex);
} while ($tokens[$functionEndIndex]->equals(';'));
if (!$tokens[$functionEndIndex]->equals('}')) {
} while (null !== $functionEndIndex && $tokens[$functionEndIndex]->equals(';'));
if (null === $functionEndIndex || !$tokens[$functionEndIndex]->equals('}')) {
return false;
}

View File

@ -39,7 +39,7 @@ final class SingleLineEmptyBodyFixer extends AbstractFixer
/**
* {@inheritdoc}
*
* Must run after ClassDefinitionFixer, CurlyBracesPositionFixer, NoUselessReturnFixer.
* Must run after BracesPositionFixer, ClassDefinitionFixer, CurlyBracesPositionFixer, NoUselessReturnFixer.
*/
public function getPriority(): int
{

View File

@ -511,7 +511,7 @@ class Sample
private function getFirstTokenIndexOfClassElement(Tokens $tokens, array $class, array $element): int
{
$modifierTypes = [T_PRIVATE, T_PROTECTED, T_PUBLIC, T_ABSTRACT, T_FINAL, T_STATIC, T_STRING, T_NS_SEPARATOR, T_VAR, CT::T_NULLABLE_TYPE, CT::T_ARRAY_TYPEHINT, CT::T_TYPE_ALTERNATION, CT::T_TYPE_INTERSECTION];
$modifierTypes = [T_PRIVATE, T_PROTECTED, T_PUBLIC, T_ABSTRACT, T_FINAL, T_STATIC, T_STRING, T_NS_SEPARATOR, T_VAR, CT::T_NULLABLE_TYPE, CT::T_ARRAY_TYPEHINT, CT::T_TYPE_ALTERNATION, CT::T_TYPE_INTERSECTION, CT::T_DISJUNCTIVE_NORMAL_FORM_TYPE_PARENTHESIS_OPEN, CT::T_DISJUNCTIVE_NORMAL_FORM_TYPE_PARENTHESIS_CLOSE];
if (\defined('T_READONLY')) { // @TODO: drop condition when PHP 8.1+ is required
$modifierTypes[] = T_READONLY;

View File

@ -585,7 +585,7 @@ Custom values:
{
if (self::SORT_ALPHA === $this->configuration['sort_algorithm']) {
return $this->configuration['case_sensitive']
? strcmp($a['name'], $b['name'])
? $a['name'] <=> $b['name']
: strcasecmp($a['name'], $b['name']);
}

View File

@ -132,7 +132,7 @@ final class OrderedInterfacesFixer extends AbstractFixer implements Configurable
}
$implementsStart = $index + 1;
$implementsEnd = $tokens->getPrevNonWhitespace($tokens->getNextTokenOfKind($implementsStart, ['{']));
$implementsEnd = $tokens->getPrevMeaningfulToken($tokens->getNextTokenOfKind($implementsStart, ['{']));
$interfaces = $this->getInterfaces($tokens, $implementsStart, $implementsEnd);
@ -168,7 +168,7 @@ final class OrderedInterfacesFixer extends AbstractFixer implements Configurable
? \strlen($first['normalized']) - \strlen($second['normalized'])
: (
$this->configuration['case_sensitive']
? strcmp($first['normalized'], $second['normalized'])
? $first['normalized'] <=> $second['normalized']
: strcasecmp($first['normalized'], $second['normalized'])
);

View File

@ -186,7 +186,7 @@ final class OrderedTraitsFixer extends AbstractFixer implements ConfigurableFixe
uasort(
$sortedElements,
fn (Tokens $useA, Tokens $useB): int => $this->configuration['case_sensitive']
? strcmp($toTraitName($useA), $toTraitName($useB))
? $toTraitName($useA) <=> $toTraitName($useB)
: strcasecmp($toTraitName($useA), $toTraitName($useB))
);

View File

@ -369,7 +369,7 @@ interface Bar
}
if ('alpha' === $this->configuration['sort_algorithm']) {
return $this->configuration['case_sensitive'] ? strcmp($a, $b) : strcasecmp($a, $b);
return $this->configuration['case_sensitive'] ? $a <=> $b : strcasecmp($a, $b);
}
return 0;

View File

@ -120,7 +120,21 @@ class Sample
continue;
}
if ($token->isGivenKind(T_FN)) {
$i = $tokensAnalyzer->getLastTokenIndexOfArrowFunction($i);
$i = $tokens->getNextMeaningfulToken($i);
continue;
}
if ($token->isGivenKind(T_FUNCTION)) {
if ($tokensAnalyzer->isLambda($i)) {
$i = $tokens->getNextTokenOfKind($i, ['{']);
$i = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $i);
continue;
}
$i = $tokens->getNextTokenOfKind($i, ['(']);
$insideMethodSignatureUntil = $tokens->getNextTokenOfKind($i, ['{', ';']);

View File

@ -33,7 +33,7 @@ final class NoSpacesAfterFunctionNameFixer extends AbstractFixer
{
return new FixerDefinition(
'When making a method or function call, there MUST NOT be a space between the method or function name and the opening parenthesis.',
[new CodeSample("<?php\nrequire ('sample.php');\necho (test (3));\nexit (1);\n\$func ();\n")]
[new CodeSample("<?php\nstrlen ('Hello World!');\nfoo (test (3));\nexit (1);\n\$func ();\n")]
);
}
@ -50,7 +50,7 @@ final class NoSpacesAfterFunctionNameFixer extends AbstractFixer
public function isCandidate(Tokens $tokens): bool
{
return $tokens->isAnyTokenKindsFound(array_merge($this->getFunctionyTokenKinds(), [T_STRING]));
return $tokens->isAnyTokenKindsFound([T_STRING, ...$this->getFunctionyTokenKinds()]);
}
protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
@ -73,7 +73,7 @@ final class NoSpacesAfterFunctionNameFixer extends AbstractFixer
$nextNonWhiteSpace = $tokens->getNextMeaningfulToken($endParenthesisIndex);
if (
null !== $nextNonWhiteSpace
&& $tokens[$nextNonWhiteSpace]->equals('?')
&& !$tokens[$nextNonWhiteSpace]->equals(';')
&& $tokens[$lastTokenIndex]->isGivenKind($languageConstructionTokens)
) {
continue;

View File

@ -27,6 +27,8 @@ use PhpCsFixer\Tokenizer\Tokens;
*/
final class PhpdocToParamTypeFixer extends AbstractPhpdocToTypeDeclarationFixer
{
private const TYPE_CHECK_TEMPLATE = '<?php function f(%s $x) {}';
/**
* @var array{int, string}[]
*/
@ -39,7 +41,6 @@ final class PhpdocToParamTypeFixer extends AbstractPhpdocToTypeDeclarationFixer
* @var array<string, true>
*/
private const SKIPPED_TYPES = [
'mixed' => true,
'resource' => true,
'static' => true,
'void' => true,
@ -117,13 +118,33 @@ function bar($foo) {}
}
foreach ($this->getAnnotationsFromDocComment('param', $tokens, $docCommentIndex) as $paramTypeAnnotation) {
$typeInfo = $this->getCommonTypeFromAnnotation($paramTypeAnnotation, false);
$typesExpression = $paramTypeAnnotation->getTypeExpression();
if (null === $typeInfo) {
if (null === $typesExpression) {
continue;
}
[$paramType, $isNullable] = $typeInfo;
$typeInfo = $this->getCommonTypeInfo($typesExpression, false);
$unionTypes = null;
if (null === $typeInfo) {
$unionTypes = $this->getUnionTypes($typesExpression, false);
}
if (null === $typeInfo && null === $unionTypes) {
continue;
}
if (null !== $typeInfo) {
[$paramType, $isNullable] = $typeInfo;
} elseif (null !== $unionTypes) {
$paramType = $unionTypes;
$isNullable = false;
}
if (!isset($paramType, $isNullable)) {
continue;
}
$startIndex = $tokens->getNextTokenOfKind($index, ['(']);
$variableIndex = $this->findCorrectVariable($tokens, $startIndex, $paramTypeAnnotation);
@ -142,7 +163,7 @@ function bar($foo) {}
continue;
}
if (!$this->isValidSyntax(sprintf('<?php function f(%s $x) {}', $paramType))) {
if (!$this->isValidSyntax(sprintf(self::TYPE_CHECK_TEMPLATE, $paramType))) {
continue;
}
@ -154,6 +175,16 @@ function bar($foo) {}
}
}
protected function createTokensFromRawType(string $type): Tokens
{
$typeTokens = Tokens::fromCode(sprintf(self::TYPE_CHECK_TEMPLATE, $type));
$typeTokens->clearRange(0, 4);
$typeTokens->clearRange(\count($typeTokens) - 6, \count($typeTokens) - 1);
$typeTokens->clearEmptyTokens();
return $typeTokens;
}
private function findCorrectVariable(Tokens $tokens, int $startIndex, Annotation $paramTypeAnnotation): ?int
{
$endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $startIndex);

View File

@ -24,11 +24,12 @@ use PhpCsFixer\Tokenizer\Tokens;
final class PhpdocToPropertyTypeFixer extends AbstractPhpdocToTypeDeclarationFixer
{
private const TYPE_CHECK_TEMPLATE = '<?php class A { private %s $b; }';
/**
* @var array<string, true>
*/
private array $skippedTypes = [
'mixed' => true,
'resource' => true,
'null' => true,
];
@ -95,6 +96,16 @@ class Foo {
}
}
protected function createTokensFromRawType(string $type): Tokens
{
$typeTokens = Tokens::fromCode(sprintf(self::TYPE_CHECK_TEMPLATE, $type));
$typeTokens->clearRange(0, 8);
$typeTokens->clearRange(\count($typeTokens) - 5, \count($typeTokens) - 1);
$typeTokens->clearEmptyTokens();
return $typeTokens;
}
private function fixClass(Tokens $tokens, int $index): void
{
$index = $tokens->getNextTokenOfKind($index, ['{']);
@ -137,6 +148,10 @@ class Foo {
continue;
}
if (!$this->isValidSyntax(sprintf(self::TYPE_CHECK_TEMPLATE, $propertyType))) {
continue;
}
$newTokens = array_merge(
$this->createTypeDeclarationTokens($propertyType, $isNullable),
[new Token([T_WHITESPACE, ' '])]
@ -204,11 +219,28 @@ class Foo {
continue;
}
$typeInfo = $this->getCommonTypeFromAnnotation($annotation, false);
$typesExpression = $annotation->getTypeExpression();
if (!isset($propertyTypes[$propertyName])) {
$propertyTypes[$propertyName] = [];
} elseif ($typeInfo !== $propertyTypes[$propertyName]) {
if (null === $typesExpression) {
continue;
}
$typeInfo = $this->getCommonTypeInfo($typesExpression, false);
$unionTypes = null;
if (null === $typeInfo) {
$unionTypes = $this->getUnionTypes($typesExpression, false);
}
if (null === $typeInfo && null === $unionTypes) {
continue;
}
if (null !== $unionTypes) {
$typeInfo = [$unionTypes, false];
}
if (\array_key_exists($propertyName, $propertyTypes) && $typeInfo !== $propertyTypes[$propertyName]) {
return null;
}

View File

@ -15,6 +15,7 @@ declare(strict_types=1);
namespace PhpCsFixer\Fixer\FunctionNotation;
use PhpCsFixer\AbstractPhpdocToTypeDeclarationFixer;
use PhpCsFixer\DocBlock\Annotation;
use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\FixerDefinitionInterface;
@ -29,6 +30,8 @@ use PhpCsFixer\Tokenizer\Tokens;
*/
final class PhpdocToReturnTypeFixer extends AbstractPhpdocToTypeDeclarationFixer
{
private const TYPE_CHECK_TEMPLATE = '<?php function f(): %s {}';
/**
* @var array<int, array<int, int|string>>
*/
@ -42,7 +45,6 @@ final class PhpdocToReturnTypeFixer extends AbstractPhpdocToTypeDeclarationFixer
* @var array<string, true>
*/
private array $skippedTypes = [
'mixed' => true,
'resource' => true,
'null' => true,
];
@ -120,10 +122,6 @@ final class Foo {
protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
{
if (\PHP_VERSION_ID >= 8_00_00) {
unset($this->skippedTypes['mixed']);
}
for ($index = $tokens->count() - 1; 0 < $index; --$index) {
if (!$tokens[$index]->isGivenKind([T_FUNCTION, T_FN])) {
continue;
@ -140,18 +138,41 @@ final class Foo {
continue;
}
$returnTypeAnnotation = $this->getAnnotationsFromDocComment('return', $tokens, $docCommentIndex);
if (1 !== \count($returnTypeAnnotation)) {
$returnTypeAnnotations = $this->getAnnotationsFromDocComment('return', $tokens, $docCommentIndex);
if (1 !== \count($returnTypeAnnotations)) {
continue;
}
$typeInfo = $this->getCommonTypeFromAnnotation(current($returnTypeAnnotation), true);
/** @var Annotation $returnTypeAnnotation */
$returnTypeAnnotation = current($returnTypeAnnotations);
$typesExpression = $returnTypeAnnotation->getTypeExpression();
if (null === $typesExpression) {
continue;
}
$typeInfo = $this->getCommonTypeInfo($typesExpression, true);
$unionTypes = null;
if (null === $typeInfo) {
$unionTypes = $this->getUnionTypes($typesExpression, true);
}
if (null === $typeInfo && null === $unionTypes) {
continue;
}
[$returnType, $isNullable] = $typeInfo;
if (null !== $typeInfo) {
[$returnType, $isNullable] = $typeInfo;
} elseif (null !== $unionTypes) {
$returnType = $unionTypes;
$isNullable = false;
}
if (!isset($returnType, $isNullable)) {
continue;
}
$startIndex = $tokens->getNextTokenOfKind($index, ['{', ';']);
@ -159,7 +180,7 @@ final class Foo {
continue;
}
if (!$this->isValidSyntax(sprintf('<?php function f():%s {}', $returnType))) {
if (!$this->isValidSyntax(sprintf(self::TYPE_CHECK_TEMPLATE, $returnType))) {
continue;
}
@ -178,6 +199,16 @@ final class Foo {
}
}
protected function createTokensFromRawType(string $type): Tokens
{
$typeTokens = Tokens::fromCode(sprintf(self::TYPE_CHECK_TEMPLATE, $type));
$typeTokens->clearRange(0, 7);
$typeTokens->clearRange(\count($typeTokens) - 3, \count($typeTokens) - 1);
$typeTokens->clearEmptyTokens();
return $typeTokens;
}
/**
* Determine whether the function already has a return type hint.
*

View File

@ -71,7 +71,7 @@ final class StaticLambdaFixer extends AbstractFixer
$lambdaEndIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $lambdaOpenIndex);
} else { // T_FN
$lambdaOpenIndex = $tokens->getNextTokenOfKind($argumentsEndIndex, [[T_DOUBLE_ARROW]]);
$lambdaEndIndex = $this->findExpressionEnd($tokens, $lambdaOpenIndex);
$lambdaEndIndex = $analyzer->getLastTokenIndexOfArrowFunction($index);
}
if ($this->hasPossibleReferenceToThis($tokens, $lambdaOpenIndex, $lambdaEndIndex)) {
@ -91,31 +91,6 @@ final class StaticLambdaFixer extends AbstractFixer
}
}
private function findExpressionEnd(Tokens $tokens, int $index): int
{
$nextIndex = $tokens->getNextMeaningfulToken($index);
while (null !== $nextIndex) {
/** @var Token $nextToken */
$nextToken = $tokens[$nextIndex];
if ($nextToken->equalsAny([',', ';', [T_CLOSE_TAG]])) {
break;
}
$blockType = Tokens::detectBlockType($nextToken);
if (null !== $blockType && $blockType['isStart']) {
$nextIndex = $tokens->findBlockEnd($blockType['type'], $nextIndex);
}
$index = $nextIndex;
$nextIndex = $tokens->getNextMeaningfulToken($index);
}
return $index;
}
/**
* Returns 'true' if there is a possible reference to '$this' within the given tokens index range.
*/

View File

@ -706,7 +706,7 @@ if (count($x)) {
foreach ($types as $i => $fullType) {
$newFullType = $fullType;
Preg::matchAll('/[\\\\\w]+/', $fullType, $matches, PREG_OFFSET_CAPTURE);
Preg::matchAll('/[\\\\\w]+(?![\\\\\w:])/', $fullType, $matches, PREG_OFFSET_CAPTURE);
foreach (array_reverse($matches[0]) as [$type, $offset]) {
$newType = $callback($type);

View File

@ -89,9 +89,9 @@ final class GroupImportFixer extends AbstractFixer
$namespaceA = $this->getNamespaceNameWithSlash($a);
$namespaceB = $this->getNamespaceNameWithSlash($b);
$namespaceDifference = \strlen($namespaceA) - \strlen($namespaceB);
$namespaceDifference = \strlen($namespaceA) <=> \strlen($namespaceB);
return 0 !== $namespaceDifference ? $namespaceDifference : strcmp($a->getFullName(), $b->getFullName());
return 0 !== $namespaceDifference ? $namespaceDifference : $a->getFullName() <=> $b->getFullName();
});
return $sameNamespaceAnalysis;

View File

@ -289,7 +289,7 @@ use Bar;
$secondNamespace = str_replace('\\', ' ', $this->prepareNamespace($second['namespace']));
return true === $this->configuration['case_sensitive']
? strcmp($firstNamespace, $secondNamespace)
? $firstNamespace <=> $secondNamespace
: strcasecmp($firstNamespace, $secondNamespace);
}
@ -311,7 +311,7 @@ use Bar;
if ($firstNamespaceLength === $secondNamespaceLength) {
$sortResult = true === $this->configuration['case_sensitive']
? strcmp($firstNamespace, $secondNamespace)
? $firstNamespace <=> $secondNamespace
: strcasecmp($firstNamespace, $secondNamespace);
} else {
$sortResult = $firstNamespaceLength > $secondNamespaceLength ? 1 : -1;
@ -569,8 +569,16 @@ use Bar;
$use['namespace']
);
$numberOfInitialTokensToClear = 3; // clear `<?php use `
if (self::IMPORT_TYPE_CLASS !== $use['importType']) {
$prevIndex = $tokens->getPrevMeaningfulToken($index);
if ($tokens[$prevIndex]->equals(',')) {
$numberOfInitialTokensToClear = 5; // clear `<?php use const ` or `<?php use function `
}
}
$declarationTokens = Tokens::fromCode($code);
$declarationTokens->clearRange(0, 2); // clear `<?php use `
$declarationTokens->clearRange(0, $numberOfInitialTokensToClear - 1);
$declarationTokens->clearAt(\count($declarationTokens) - 1); // clear `;`
$declarationTokens->clearEmptyTokens();

View File

@ -188,7 +188,7 @@ $className = Baz::class;
$classStringArray = explode('\\', $classString);
$namespaceToTest = $classStringArray[0];
if (0 === strcmp($namespaceToTest, substr($import, -\strlen($namespaceToTest)))) {
if (0 === ($namespaceToTest <=> substr($import, -\strlen($namespaceToTest)))) {
$classImport = $import;
break;

View File

@ -47,7 +47,7 @@ final class NullableTypeDeclarationFixer extends AbstractFixer implements Config
'Nullable single type declaration should be standardised using configured syntax.',
[
new VersionSpecificCodeSample(
"<?php\nfunction bar(null|int \$value, null|\\Closure \$callable): void {}\n",
"<?php\nfunction bar(null|int \$value, null|\\Closure \$callable): int|null {}\n",
new VersionSpecification(8_00_00)
),
new VersionSpecificCodeSample(

View File

@ -256,7 +256,7 @@ yield from baz();
* {@inheritdoc}
*
* Must run before BracesFixer, FunctionDeclarationFixer, NullableTypeDeclarationFixer.
* Must run after ModernizeStrposFixer.
* Must run after ArraySyntaxFixer, ModernizeStrposFixer.
*/
public function getPriority(): int
{

View File

@ -626,7 +626,7 @@ $array = [
if ($token->isGivenKind(T_FN)) {
$from = $tokens->getNextMeaningfulToken($index);
$until = $this->getLastTokenIndexOfFn($tokens, $index);
$until = $this->tokensAnalyzer->getLastTokenIndexOfArrowFunction($index);
$this->injectAlignmentPlaceholders($tokens, $from + 1, $until - 1, $tokenContent);
$index = $until;
@ -715,7 +715,7 @@ $array = [
if ($token->isGivenKind(T_FN)) {
$yieldFoundSinceLastPlaceholder = false;
$from = $tokens->getNextMeaningfulToken($index);
$until = $this->getLastTokenIndexOfFn($tokens, $index);
$until = $this->tokensAnalyzer->getLastTokenIndexOfArrowFunction($index);
$this->injectArrayAlignmentPlaceholders($tokens, $from + 1, $until - 1);
$index = $until;
@ -935,33 +935,4 @@ $array = [
return $tmpCode;
}
private function getLastTokenIndexOfFn(Tokens $tokens, int $index): int
{
$index = $tokens->getNextTokenOfKind($index, [[T_DOUBLE_ARROW]]);
while (true) {
$index = $tokens->getNextMeaningfulToken($index);
if ($tokens[$index]->equalsAny([';', ',', [T_CLOSE_TAG]])) {
break;
}
$blockType = Tokens::detectBlockType($tokens[$index]);
if (null === $blockType) {
continue;
}
if ($blockType['isStart']) {
$index = $tokens->findBlockEnd($blockType['type'], $index);
continue;
}
break;
}
return $index;
}
}

View File

@ -124,13 +124,13 @@ final class NoUselessConcatOperatorFixer extends AbstractFixer implements Config
(self::STR_DOUBLE_QUOTE === $firstOperand['type'] && self::STR_DOUBLE_QUOTE === $secondOperand['type'])
|| (self::STR_SINGLE_QUOTE === $firstOperand['type'] && self::STR_SINGLE_QUOTE === $secondOperand['type'])
) {
$this->mergeContantEscapedStringOperands($tokens, $firstOperand, $concatIndex, $secondOperand);
$this->mergeConstantEscapedStringOperands($tokens, $firstOperand, $concatIndex, $secondOperand);
return;
}
if (self::STR_DOUBLE_QUOTE_VAR === $firstOperand['type'] && self::STR_DOUBLE_QUOTE_VAR === $secondOperand['type']) {
$this->mergeContantEscapedStringVarOperands($tokens, $firstOperand, $concatIndex, $secondOperand);
$this->mergeConstantEscapedStringVarOperands($tokens, $firstOperand, $concatIndex, $secondOperand);
return;
}
@ -146,7 +146,7 @@ final class NoUselessConcatOperatorFixer extends AbstractFixer implements Config
[$operand1, $operand2] = $operandPair;
if (self::STR_DOUBLE_QUOTE_VAR === $operand1['type'] && self::STR_DOUBLE_QUOTE === $operand2['type']) {
$this->mergeContantEscapedStringVarOperands($tokens, $firstOperand, $concatIndex, $secondOperand);
$this->mergeConstantEscapedStringVarOperands($tokens, $firstOperand, $concatIndex, $secondOperand);
return;
}
@ -159,7 +159,7 @@ final class NoUselessConcatOperatorFixer extends AbstractFixer implements Config
$operantContent = $tokens[$operand2['start']]->getContent();
if ($this->isSimpleQuotedStringContent($operantContent)) {
$this->mergeContantEscapedStringOperands($tokens, $firstOperand, $concatIndex, $secondOperand);
$this->mergeConstantEscapedStringOperands($tokens, $firstOperand, $concatIndex, $secondOperand);
}
return;
@ -169,7 +169,7 @@ final class NoUselessConcatOperatorFixer extends AbstractFixer implements Config
$operantContent = $tokens[$operand2['start']]->getContent();
if ($this->isSimpleQuotedStringContent($operantContent)) {
$this->mergeContantEscapedStringVarOperands($tokens, $firstOperand, $concatIndex, $secondOperand);
$this->mergeConstantEscapedStringVarOperands($tokens, $firstOperand, $concatIndex, $secondOperand);
}
return;
@ -227,7 +227,7 @@ final class NoUselessConcatOperatorFixer extends AbstractFixer implements Config
* type: self::STR_*,
* } $secondOperand
*/
private function mergeContantEscapedStringOperands(
private function mergeConstantEscapedStringOperands(
Tokens $tokens,
array $firstOperand,
int $concatOperatorIndex,
@ -260,7 +260,7 @@ final class NoUselessConcatOperatorFixer extends AbstractFixer implements Config
* type: self::STR_*,
* } $secondOperand
*/
private function mergeContantEscapedStringVarOperands(
private function mergeConstantEscapedStringVarOperands(
Tokens $tokens,
array $firstOperand,
int $concatOperatorIndex,

View File

@ -24,10 +24,9 @@ use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\FixerDefinitionInterface;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Analyzer\AlternativeSyntaxAnalyzer;
use PhpCsFixer\Tokenizer\Analyzer\Analysis\SwitchAnalysis;
use PhpCsFixer\Tokenizer\Analyzer\ControlCaseStructuresAnalyzer;
use PhpCsFixer\Tokenizer\Analyzer\GotoLabelAnalyzer;
use PhpCsFixer\Tokenizer\Analyzer\ReferenceAnalyzer;
use PhpCsFixer\Tokenizer\Analyzer\SwitchAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
@ -106,8 +105,6 @@ function foo() {
$gotoLabelAnalyzer = new GotoLabelAnalyzer();
$alternativeSyntaxAnalyzer = new AlternativeSyntaxAnalyzer();
$excludedIndices = $this->getExcludedIndices($tokens);
$index = $tokens->count();
while ($index > 1) {
--$index;
@ -128,7 +125,7 @@ function foo() {
continue;
}
if (\in_array($index, $excludedIndices, true)) {
if (SwitchAnalyzer::belongsToSwitch($tokens, $index)) {
continue;
}
@ -146,31 +143,6 @@ function foo() {
}
}
/**
* Currently only colons from "switch".
*
* @return int[]
*/
private function getExcludedIndices(Tokens $tokens): array
{
$colonIndices = [];
/** @var SwitchAnalysis $analysis */
foreach (ControlCaseStructuresAnalyzer::findControlStructures($tokens, [T_SWITCH]) as $analysis) {
foreach ($analysis->getCases() as $case) {
$colonIndices[] = $case->getColonIndex();
}
$defaultAnalysis = $analysis->getDefaultAnalysis();
if (null !== $defaultAnalysis) {
$colonIndices[] = $defaultAnalysis->getColonIndex();
}
}
return $colonIndices;
}
/**
* @param int[] $operatorIndices
*/

View File

@ -19,9 +19,8 @@ use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\FixerDefinitionInterface;
use PhpCsFixer\Tokenizer\Analyzer\AlternativeSyntaxAnalyzer;
use PhpCsFixer\Tokenizer\Analyzer\Analysis\SwitchAnalysis;
use PhpCsFixer\Tokenizer\Analyzer\ControlCaseStructuresAnalyzer;
use PhpCsFixer\Tokenizer\Analyzer\GotoLabelAnalyzer;
use PhpCsFixer\Tokenizer\Analyzer\SwitchAnalyzer;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
@ -58,14 +57,13 @@ final class TernaryOperatorSpacesFixer extends AbstractFixer
$alternativeSyntaxAnalyzer = new AlternativeSyntaxAnalyzer();
$gotoLabelAnalyzer = new GotoLabelAnalyzer();
$ternaryOperatorIndices = [];
$excludedIndices = $this->getColonIndicesForSwitch($tokens);
foreach ($tokens as $index => $token) {
if (!$token->equalsAny(['?', ':'])) {
continue;
}
if (\in_array($index, $excludedIndices, true)) {
if (SwitchAnalyzer::belongsToSwitch($tokens, $index)) {
continue;
}
@ -114,29 +112,6 @@ final class TernaryOperatorSpacesFixer extends AbstractFixer
}
}
/**
* @return int[]
*/
private function getColonIndicesForSwitch(Tokens $tokens): array
{
$colonIndices = [];
/** @var SwitchAnalysis $analysis */
foreach (ControlCaseStructuresAnalyzer::findControlStructures($tokens, [T_SWITCH]) as $analysis) {
foreach ($analysis->getCases() as $case) {
$colonIndices[] = $case->getColonIndex();
}
$defaultAnalysis = $analysis->getDefaultAnalysis();
if (null !== $defaultAnalysis) {
$colonIndices[] = $defaultAnalysis->getColonIndex();
}
}
return $colonIndices;
}
private function ensureWhitespaceExistence(Tokens $tokens, int $index, bool $after): void
{
if ($tokens[$index]->isWhitespace()) {

View File

@ -35,6 +35,18 @@ use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;
*/
final class PhpdocSeparationFixer extends AbstractFixer implements ConfigurableFixerInterface
{
/**
* @internal
*
* @var string[][]
*/
public const OPTION_GROUPS_DEFAULT = [
['author', 'copyright', 'license'],
['category', 'package', 'subpackage'],
['property', 'property-read', 'property-write'],
['deprecated', 'link', 'see', 'since'],
];
/**
* @var string[][]
*/
@ -161,12 +173,7 @@ final class PhpdocSeparationFixer extends AbstractFixer implements ConfigurableF
return new FixerConfigurationResolver([
(new FixerOptionBuilder('groups', 'Sets of annotation types to be grouped together. Use `*` to match any tag character.'))
->setAllowedTypes(['string[][]'])
->setDefault([
['deprecated', 'link', 'see', 'since'],
['author', 'copyright', 'license'],
['category', 'package', 'subpackage'],
['property', 'property-read', 'property-write'],
])
->setDefault(self::OPTION_GROUPS_DEFAULT)
->setAllowedValues([$allowTagToBelongToOnlyOneGroup])
->getOption(),
(new FixerOptionBuilder('skip_unlisted_annotations', 'Whether to skip annotations that are not listed in any group.'))

View File

@ -188,7 +188,7 @@ final class PhpdocTypesOrderFixer extends AbstractFixer implements ConfigurableF
}
if ('alpha' === $this->configuration['sort_algorithm']) {
return $this->configuration['case_sensitive'] ? strcmp($a, $b) : strcasecmp($a, $b);
return $this->configuration['case_sensitive'] ? $a <=> $b : strcasecmp($a, $b);
}
return 0;

View File

@ -114,12 +114,12 @@ final class Foo
private function fixLine(Line $line): void
{
$content = $line->getContent();
Preg::matchAll('/ \$'.TypeExpression::REGEX_IDENTIFIER.'(?<!\$this)/', $line->getContent(), $matches);
Preg::matchAll('/ \$'.TypeExpression::REGEX_IDENTIFIER.'(?<!\$this)/', $content, $matches);
if (isset($matches[0][0])) {
$line->setContent(str_replace($matches[0][0], '', $content));
if (isset($matches[0])) {
foreach ($matches[0] as $match) {
$line->setContent(str_replace($match, '', $line->getContent()));
}
}
}

View File

@ -41,7 +41,7 @@ final class ArrayIndentationFixer extends AbstractFixer implements WhitespacesAw
public function isCandidate(Tokens $tokens): bool
{
return $tokens->isAnyTokenKindsFound([T_ARRAY, CT::T_ARRAY_SQUARE_BRACE_OPEN]);
return $tokens->isAnyTokenKindsFound([T_ARRAY, T_LIST, CT::T_ARRAY_SQUARE_BRACE_OPEN, CT::T_DESTRUCTURING_SQUARE_BRACE_OPEN]);
}
/**
@ -70,13 +70,11 @@ final class ArrayIndentationFixer extends AbstractFixer implements WhitespacesAw
}
if (
$token->isGivenKind(CT::T_ARRAY_SQUARE_BRACE_OPEN)
|| ($token->equals('(') && $tokens[$tokens->getPrevMeaningfulToken($index)]->isGivenKind(T_ARRAY))
$token->isGivenKind([CT::T_ARRAY_SQUARE_BRACE_OPEN, CT::T_DESTRUCTURING_SQUARE_BRACE_OPEN])
|| ($token->equals('(') && $tokens[$tokens->getPrevMeaningfulToken($index)]->isGivenKind([T_ARRAY, T_LIST]))
) {
$endIndex = $tokens->findBlockEnd(
$token->equals('(') ? Tokens::BLOCK_TYPE_PARENTHESIS_BRACE : Tokens::BLOCK_TYPE_ARRAY_SQUARE_BRACE,
$index
);
$blockType = Tokens::detectBlockType($token);
$endIndex = $tokens->findBlockEnd($blockType['type'], $index);
$scopes[] = [
'type' => 'array',
@ -175,7 +173,9 @@ final class ArrayIndentationFixer extends AbstractFixer implements WhitespacesAw
for ($searchEndIndex = $index + 1; $searchEndIndex < $parentScopeEndIndex; ++$searchEndIndex) {
$searchEndToken = $tokens[$searchEndIndex];
if ($searchEndToken->equalsAny(['(', '{']) || $searchEndToken->isGivenKind(CT::T_ARRAY_SQUARE_BRACE_OPEN)) {
if ($searchEndToken->equalsAny(['(', '{'])
|| $searchEndToken->isGivenKind([CT::T_ARRAY_SQUARE_BRACE_OPEN, CT::T_DESTRUCTURING_SQUARE_BRACE_OPEN])
) {
$type = Tokens::detectBlockType($searchEndToken);
$searchEndIndex = $tokens->findBlockEnd(
$type['type'],

View File

@ -25,6 +25,7 @@ use PhpCsFixer\FixerDefinition\CodeSample;
use PhpCsFixer\FixerDefinition\FixerDefinition;
use PhpCsFixer\FixerDefinition\FixerDefinitionInterface;
use PhpCsFixer\Preg;
use PhpCsFixer\Tokenizer\Analyzer\SwitchAnalyzer;
use PhpCsFixer\Tokenizer\CT;
use PhpCsFixer\Tokenizer\Token;
use PhpCsFixer\Tokenizer\Tokens;
@ -374,9 +375,17 @@ switch($a) {
private function fixAfterThrowToken(int $index): void
{
if ($this->tokens[$this->tokens->getPrevMeaningfulToken($index)]->equalsAny([';', '{', '}', ':', [T_OPEN_TAG]])) {
$this->fixAfterToken($index);
$prevIndex = $this->tokens->getPrevMeaningfulToken($index);
if (!$this->tokens[$prevIndex]->equalsAny([';', '{', '}', ':', [T_OPEN_TAG]])) {
return;
}
if ($this->tokens[$prevIndex]->equals(':') && !SwitchAnalyzer::belongsToSwitch($this->tokens, $prevIndex)) {
return;
}
$this->fixAfterToken($index);
}
/**

View File

@ -71,19 +71,19 @@ function foo(\$bar, \$baz)
*/
public function getPriority(): int
{
return 2;
return 3;
}
public function isCandidate(Tokens $tokens): bool
{
return $tokens->isTokenKindFound('(');
return $tokens->isAnyTokenKindsFound(['(', CT::T_BRACE_CLASS_INSTANTIATION_OPEN]);
}
protected function applyFix(\SplFileInfo $file, Tokens $tokens): void
{
if ('none' === $this->configuration['space']) {
foreach ($tokens as $index => $token) {
if (!$token->equals('(')) {
if (!$token->equalsAny(['(', [CT::T_BRACE_CLASS_INSTANTIATION_OPEN]])) {
continue;
}
@ -94,7 +94,8 @@ function foo(\$bar, \$baz)
continue;
}
$endIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index);
$blockType = Tokens::detectBlockType($tokens[$index]);
$endIndex = $tokens->findBlockEnd($blockType['type'], $index);
// remove space after opening `(`
if (!$tokens[$tokens->getNextNonWhitespace($index)]->isComment()) {
@ -110,11 +111,12 @@ function foo(\$bar, \$baz)
if ('single' === $this->configuration['space']) {
foreach ($tokens as $index => $token) {
if (!$token->equals('(')) {
if (!$token->equalsAny(['(', [CT::T_BRACE_CLASS_INSTANTIATION_OPEN]])) {
continue;
}
$endParenthesisIndex = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_PARENTHESIS_BRACE, $index);
$blockType = Tokens::detectBlockType($tokens[$index]);
$endParenthesisIndex = $tokens->findBlockEnd($blockType['type'], $index);
// if not other content than spaces in block remove spaces
$blockContent = $this->getBlockContent($index, $endParenthesisIndex, $tokens);

View File

@ -65,7 +65,7 @@ final class PhpUnitTestCaseIndicator
* Returns an indices of PHPUnit classes in reverse appearance order.
* Order is important - it's reverted, so if we inject tokens into collection,
* we do it for bottom of file first, and then to the top of the file, so we
* mitigate risk of not visiting whole collcetion (final indices).
* mitigate risk of not visiting whole collections (final indices).
*
* @return iterable<array{0: int, 1: int}> array of [int start, int end] indices from later to earlier classes
*/

View File

@ -42,7 +42,7 @@ final class Preg
return 1 === $result;
}
throw self::newPregException(preg_last_error(), __METHOD__, (array) $pattern);
throw self::newPregException(preg_last_error(), preg_last_error_msg(), __METHOD__, (array) $pattern);
}
/**
@ -62,7 +62,7 @@ final class Preg
return $result;
}
throw self::newPregException(preg_last_error(), __METHOD__, (array) $pattern);
throw self::newPregException(preg_last_error(), preg_last_error_msg(), __METHOD__, (array) $pattern);
}
/**
@ -82,7 +82,7 @@ final class Preg
return $result;
}
throw self::newPregException(preg_last_error(), __METHOD__, (array) $pattern);
throw self::newPregException(preg_last_error(), preg_last_error_msg(), __METHOD__, (array) $pattern);
}
/**
@ -100,7 +100,7 @@ final class Preg
return $result;
}
throw self::newPregException(preg_last_error(), __METHOD__, (array) $pattern);
throw self::newPregException(preg_last_error(), preg_last_error_msg(), __METHOD__, (array) $pattern);
}
/**
@ -120,7 +120,7 @@ final class Preg
return $result;
}
throw self::newPregException(preg_last_error(), __METHOD__, (array) $pattern);
throw self::newPregException(preg_last_error(), preg_last_error_msg(), __METHOD__, (array) $pattern);
}
/**
@ -167,7 +167,7 @@ final class Preg
*
* @param string[] $patterns
*/
private static function newPregException(int $error, string $method, array $patterns): PregException
private static function newPregException(int $error, string $errorMsg, string $method, array $patterns): PregException
{
foreach ($patterns as $pattern) {
$last = error_get_last();
@ -196,6 +196,6 @@ final class Preg
);
}
return new PregException(sprintf('Error occurred when calling %s.', $method), $error);
return new PregException(sprintf('Error occurred when calling %s: %s.', $method, $errorMsg), $error);
}
}

View File

@ -21,6 +21,9 @@ use PhpCsFixer\RuleSet\AbstractRuleSetDescription;
*
* PER Coding Style v1.0.
*
* @TODO 4.0 Remove this class
*
* @deprecated Use `@PER-CS2.0:risky` instead.
* @see https://github.com/php-fig/per-coding-style/blob/1.0.0/spec.md
*/
final class PERCS1x0RiskySet extends AbstractRuleSetDescription
@ -39,6 +42,10 @@ final class PERCS1x0RiskySet extends AbstractRuleSetDescription
public function getDescription(): string
{
return 'Rules that follow `PER Coding Style 1.0 <https://www.php-fig.org/per/coding-style/>`_.';
return <<<'DESC'
**This ruleset is deprecated** in favour of ``@PER-CS2.0:risky``.
Rules that follow `PER Coding Style 1.0 <https://www.php-fig.org/per/coding-style/>`_.
DESC;
}
}

View File

@ -21,6 +21,9 @@ use PhpCsFixer\RuleSet\AbstractRuleSetDescription;
*
* PER Coding Style v1.0.
*
* @TODO 4.0 Remove this class
*
* @deprecated Use `@PER-CS2.0` instead.
* @see https://github.com/php-fig/per-coding-style/blob/1.0.0/spec.md
*/
final class PERCS1x0Set extends AbstractRuleSetDescription
@ -39,6 +42,10 @@ final class PERCS1x0Set extends AbstractRuleSetDescription
public function getDescription(): string
{
return 'Rules that follow `PER Coding Style 1.0 <https://www.php-fig.org/per/coding-style/>`_.';
return <<<'DESC'
**This ruleset is deprecated** in favour of ``@PER-CS2.0``.
Rules that follow `PER Coding Style 1.0 <https://www.php-fig.org/per/coding-style/>`_.
DESC;
}
}

View File

@ -40,6 +40,7 @@ final class SymfonyRiskySet extends AbstractRuleSetDescription
'implode_call' => true,
'is_null' => true,
'logical_operators' => true,
'long_to_shorthand_operator' => true,
'modernize_strpos' => true,
'modernize_types_casting' => true,
'native_constant_invocation' => ['strict' => false],

View File

@ -14,6 +14,7 @@ declare(strict_types=1);
namespace PhpCsFixer\RuleSet\Sets;
use PhpCsFixer\Fixer\Phpdoc\PhpdocSeparationFixer;
use PhpCsFixer\RuleSet\AbstractRuleSetDescription;
/**
@ -70,7 +71,6 @@ final class SymfonySet extends AbstractRuleSetDescription
'integer_literal_case' => true,
'lambda_not_used_import' => true,
'linebreak_after_opening_tag' => true,
'long_to_shorthand_operator' => true,
'magic_constant_casing' => true,
'magic_method_casing' => true,
'method_argument_space' => [
@ -166,7 +166,12 @@ final class SymfonySet extends AbstractRuleSetDescription
],
'phpdoc_return_self_reference' => true,
'phpdoc_scalar' => true,
'phpdoc_separation' => true,
'phpdoc_separation' => [
'groups' => [
['Annotation', 'NamedArgumentConstructor', 'Target'],
...PhpdocSeparationFixer::OPTION_GROUPS_DEFAULT,
],
],
'phpdoc_single_line_var_spacing' => true,
'phpdoc_summary' => true,
'phpdoc_tag_type' => [

View File

@ -27,7 +27,7 @@ use PhpCsFixer\Linter\LintingResultInterface;
final class FileLintingIterator extends \IteratorIterator
{
/**
* @var LintingResultInterface
* @var null|LintingResultInterface
*/
private $currentResult;

View File

@ -319,6 +319,40 @@ final class TokensAnalyzer
return $startParenthesisToken->equals('(');
}
public function getLastTokenIndexOfArrowFunction(int $index): int
{
if (!$this->tokens[$index]->isGivenKind(T_FN)) {
throw new \InvalidArgumentException(sprintf('Not an "arrow function" at given index %d.', $index));
}
$stopTokens = [')', ']', ',', ';', [T_CLOSE_TAG]];
$index = $this->tokens->getNextTokenOfKind($index, [[T_DOUBLE_ARROW]]);
while (true) {
$index = $this->tokens->getNextMeaningfulToken($index);
if ($this->tokens[$index]->equalsAny($stopTokens)) {
break;
}
$blockType = Tokens::detectBlockType($this->tokens[$index]);
if (null === $blockType) {
continue;
}
if ($blockType['isStart']) {
$index = $this->tokens->findBlockEnd($blockType['type'], $index);
continue;
}
break;
}
return $this->tokens->getPrevMeaningfulToken($index);
}
/**
* Check if the T_STRING under given index is a constant invocation.
*/
@ -518,13 +552,14 @@ final class TokensAnalyzer
';',
'{',
'}',
[T_FN],
[T_FUNCTION],
[T_OPEN_TAG],
[T_OPEN_TAG_WITH_ECHO],
];
$prevToken = $tokens[$tokens->getPrevTokenOfKind($index, $searchTokens)];
return $prevToken->isGivenKind(T_FUNCTION);
return $prevToken->isGivenKind([T_FN, T_FUNCTION]);
}
/**

View File

@ -66,6 +66,7 @@ d('Get off my lawn!'); // Debugs no longer have any effect
* `solarized.css`
* `solarized-dark.css`
* `aante-light.css`
* `aante-dark.css`
* Kint has *keyboard shortcuts*! When Kint is visible, press <kbd>D</kbd> on the keyboard and you will be able to traverse the tree with arrows, <kbd>H</kbd><kbd>J</kbd><kbd>K</kbd><kbd>L</kbd>, and <kbd>TAB</kbd> keys - and expand/collapse nodes with <kbd>SPACE</kbd> or <kbd>ENTER</kbd>.
* You can write plugins and wrapper functions to customize dump behavior!
* Read [the full documentation](https://kint-php.github.io/kint/) for more information

View File

@ -22,9 +22,9 @@
"friendsofphp/php-cs-fixer": "^3",
"phpunit/phpunit": "^9",
"phpspec/prophecy-phpunit": "^2",
"symfony/finder": "^4.0 || ^5.0 || ^6.0",
"symfony/finder": ">=4.0",
"seld/phar-utils": "^1",
"vimeo/psalm": "^5@dev"
"vimeo/psalm": "^5"
},
"autoload": {
"files": ["init.php"],
@ -39,7 +39,7 @@
},
"config": {
"platform": {
"php": "8.1"
"php": "8.2"
}
},
"scripts": {

View File

@ -45,6 +45,7 @@ if (\version_compare(PHP_VERSION, '7.1') < 0) {
\define('KINT_PHP81', \version_compare(PHP_VERSION, '8.1') >= 0);
\define('KINT_PHP82', \version_compare(PHP_VERSION, '8.2') >= 0);
\define('KINT_PHP83', \version_compare(PHP_VERSION, '8.3') >= 0);
\define('KINT_PHP84', \version_compare(PHP_VERSION, '8.4') >= 0);
// Dynamic default settings
if (false !== \ini_get('xdebug.file_link_format')) {

View File

@ -32,7 +32,7 @@ if (!\function_exists('d')) {
/**
* Alias of Kint::dump().
*
* @param mixed ...$args
* @psalm-param mixed ...$args
*
* @return int|string
*/
@ -53,7 +53,7 @@ if (!\function_exists('s')) {
*
* If run in CLI colors are disabled
*
* @param mixed ...$args
* @psalm-param mixed ...$args
*
* @return int|string
*/

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
.kint-plain{background:rgba(255,255,255,0.9);white-space:pre;display:block;font-family:monospace;color:#222}.kint-plain i{color:#d00;font-style:normal}.kint-plain u{color:#030;text-decoration:none;font-weight:bold}.kint-plain .kint-microtime-lap{font-weight:bold;text-shadow:1px 0 #fff, 0 1px #fff, -1px 0 #fff, 0 -1px #fff}
.kint-plain{background:rgba(255,255,255,.9);white-space:pre;display:block;font-family:monospace;color:#222}.kint-plain i{color:#d00;font-style:normal}.kint-plain u{color:#030;text-decoration:none;font-weight:bold}.kint-plain .kint-microtime-lap{font-weight:bold;text-shadow:1px 0 #fff,0 1px #fff,-1px 0 #fff,0 -1px #fff}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -138,7 +138,7 @@ class CallFinder
/**
* @psalm-param callable-array|callable-string $function
*
* @param mixed $function
* @psalm-return list<array{parameters: list, modifiers: list<PhpToken>}>
*
* @return array List of matching calls on the relevant line
*/
@ -187,6 +187,7 @@ class CallFinder
$identifier[T_NAME_RELATIVE] = true;
}
/** @psalm-var list<PhpToken> */
$tokens = \token_get_all($source);
$cursor = 1;
$function_calls = [];
@ -449,8 +450,6 @@ class CallFinder
* for `$token[0]` then "..." will incorrectly match the "." operator.
*
* @psalm-param PhpToken $token The token to check
*
* @param mixed $token
*/
private static function tokenIsOperator($token): bool
{

View File

@ -133,7 +133,7 @@ class Kint implements FacadeInterface
public static $aliases = [
['Kint\\Kint', 'dump'],
['Kint\\Kint', 'trace'],
['Kint\\Kint', 'dumpArray'],
['Kint\\Kint', 'dumpAll'],
];
/**
@ -537,7 +537,7 @@ class Kint implements FacadeInterface
*
* Functionally equivalent to Kint::dump(1) or Kint::dump(debug_backtrace())
*
* @param mixed ...$args
* @psalm-param array ...$args
*
* @return int|string
*/
@ -599,6 +599,7 @@ class Kint implements FacadeInterface
$match = '/';
foreach (static::$app_root_dirs as $path => $alias) {
/** @psalm-var string $path */
if (empty($path)) {
continue;
}

View File

@ -29,6 +29,7 @@ namespace Kint\Parser;
use Kint\Zval\InstanceValue;
use Kint\Zval\Value;
use Psr\Container\ContainerInterface;
class BlacklistPlugin extends AbstractPlugin
{
@ -44,7 +45,7 @@ class BlacklistPlugin extends AbstractPlugin
*
* @var array
*/
public static $shallow_blacklist = ['Psr\\Container\\ContainerInterface'];
public static $shallow_blacklist = [ContainerInterface::class];
public function getTypes(): array
{

View File

@ -67,7 +67,7 @@ class ClosurePlugin extends AbstractPlugin
}
$p = new Representation('Parameters');
$p->contents = &$o->parameters;
$p->contents = $o->parameters;
$o->addRepresentation($p, 0);
$statics = [];

View File

@ -72,7 +72,7 @@ class Parser
* @param int $depth_limit Maximum depth to parse data
* @param ?string $caller Caller class name
*/
public function __construct(int $depth_limit = 0, ?string $caller = null)
public function __construct(int $depth_limit = 0, string $caller = null)
{
$this->marker = "kint\0".\random_bytes(16);
@ -83,7 +83,7 @@ class Parser
/**
* Set the caller class.
*/
public function setCallerClass(?string $caller = null): void
public function setCallerClass(string $caller = null): void
{
$this->noRecurseCall();

View File

@ -38,7 +38,7 @@ interface PluginInterface
public function getTriggers(): int;
/**
* @param mixed &$var
* @psalm-param mixed &$var
*/
public function parse(&$var, Value &$o, int $trigger): void;
}

View File

@ -30,6 +30,12 @@ namespace Kint\Parser;
use Kint\Zval\Representation\Representation;
use Kint\Zval\Value;
// Note: Interaction with ArrayLimitPlugin:
// Any array limited children will be shown in tables identically to
// non-array-limited children since the table only shows that it is an array
// and it's size anyway. Because ArrayLimitPlugin halts the parse on finding
// a limit all other plugins including this one are stopped, so you cannot get
// a tabular representation of an array that is longer than the limit.
class TablePlugin extends AbstractPlugin
{
public function getTypes(): array

View File

@ -140,6 +140,13 @@ class RichRenderer extends AbstractRenderer
*/
public static $sort = self::SORT_NONE;
/**
* Timestamp to print in footer in date() format.
*
* @var ?string
*/
public static $timestamp = null;
public static $needs_pre_render = true;
public static $needs_folder_render = true;
@ -465,29 +472,7 @@ class RichRenderer extends AbstractRenderer
$output .= '<nav></nav>';
}
if (isset($this->call_info['callee']['file'])) {
$output .= 'Called from '.$this->ideLink(
$this->call_info['callee']['file'],
$this->call_info['callee']['line']
);
}
if (
isset($this->call_info['callee']['function']) &&
(
!empty($this->call_info['callee']['class']) ||
!\in_array(
$this->call_info['callee']['function'],
['include', 'include_once', 'require', 'require_once'],
true
)
)
) {
$output .= ' [';
$output .= $this->call_info['callee']['class'] ?? '';
$output .= $this->call_info['callee']['type'] ?? '';
$output .= $this->call_info['callee']['function'].'()]';
}
$output .= $this->calledFrom();
if (!empty($this->call_info['trace']) && \count($this->call_info['trace']) > 1) {
$output .= '<ol>';
@ -497,8 +482,8 @@ class RichRenderer extends AbstractRenderer
}
$output .= '<li>'.$this->ideLink($step['file'], $step['line']); // closing tag not required
if (isset($step['function'])
&& !\in_array($step['function'], ['include', 'include_once', 'require', 'require_once'], true)
if (isset($step['function']) &&
!\in_array($step['function'], ['include', 'include_once', 'require', 'require_once'], true)
) {
$output .= ' [';
$output .= $step['class'] ?? '';
@ -516,8 +501,6 @@ class RichRenderer extends AbstractRenderer
/**
* @psalm-param Encoding $encoding
*
* @param mixed $encoding
*/
public function escape(string $string, $encoding = false): string
{
@ -559,6 +542,45 @@ class RichRenderer extends AbstractRenderer
return '<a '.$class.'href="'.$this->escape($ideLink).'">'.$path.'</a>';
}
protected function calledFrom(): string
{
$output = '';
if (isset($this->call_info['callee']['file'])) {
$output .= ' '.$this->ideLink(
$this->call_info['callee']['file'],
$this->call_info['callee']['line']
);
}
if (
isset($this->call_info['callee']['function']) &&
(
!empty($this->call_info['callee']['class']) ||
!\in_array(
$this->call_info['callee']['function'],
['include', 'include_once', 'require', 'require_once'],
true
)
)
) {
$output .= ' [';
$output .= $this->call_info['callee']['class'] ?? '';
$output .= $this->call_info['callee']['type'] ?? '';
$output .= $this->call_info['callee']['function'].'()]';
}
if ('' !== $output) {
$output = 'Called from'.$output;
}
if (null !== self::$timestamp) {
$output .= ' '.\date(self::$timestamp);
}
return $output;
}
protected function renderTab(Value $o, Representation $rep): string
{
if (($plugin = $this->getPlugin(self::$tab_plugins, $rep->hints)) && $plugin instanceof TabPluginInterface) {

View File

@ -42,7 +42,7 @@ abstract class AbstractPlugin implements PluginInterface
$this->renderer = $r;
}
public function renderLockedHeader(Value $o, ?string $content = null): string
public function renderLockedHeader(Value $o, string $content = null): string
{
$out = '';

View File

@ -108,6 +108,13 @@ class TextRenderer extends AbstractRenderer
*/
public static $sort = self::SORT_NONE;
/**
* Timestamp to print in footer in date() format.
*
* @var ?string
*/
public static $timestamp = null;
public $header_width = 80;
public $indent_width = 4;
@ -300,7 +307,7 @@ class TextRenderer extends AbstractRenderer
{
$return = [];
foreach ($plugins as $index => $plugin) {
foreach ($plugins as $plugin) {
foreach (self::$parser_plugin_whitelist as $whitelist) {
if ($plugin instanceof $whitelist) {
$return[] = $plugin;
@ -319,8 +326,6 @@ class TextRenderer extends AbstractRenderer
/**
* @psalm-param Encoding $encoding
*
* @param mixed $encoding
*/
public function escape(string $string, $encoding = false): string
{
@ -355,6 +360,13 @@ class TextRenderer extends AbstractRenderer
$output .= $this->call_info['callee']['function'].'()]';
}
if (null !== self::$timestamp) {
if (\strlen($output)) {
$output .= ' ';
}
$output .= \date(self::$timestamp);
}
return $output;
}

View File

@ -255,8 +255,6 @@ final class Utils
/**
* @psalm-param Encoding $encoding
*
* @param mixed $encoding
*/
public static function truncateString(string $input, int $length = PHP_INT_MAX, string $end = '...', $encoding = false): string
{

View File

@ -122,8 +122,6 @@ class BlobValue extends Value
/**
* @psalm-param Encoding $encoding
*
* @param mixed $encoding
*/
public static function strlen(string $string, $encoding = false): int
{
@ -142,10 +140,8 @@ class BlobValue extends Value
/**
* @psalm-param Encoding $encoding
*
* @param mixed $encoding
*/
public static function substr(string $string, int $start, ?int $length = null, $encoding = false): string
public static function substr(string $string, int $start, int $length = null, $encoding = false): string
{
if (\function_exists('mb_substr')) {
if (false === $encoding) {

View File

@ -211,7 +211,7 @@ class ColorRepresentation extends Representation
$this->setValues($value);
}
public function getColor(?int $variant = null): ?string
public function getColor(int $variant = null): ?string
{
if (!$variant) {
$variant = $this->variant;
@ -275,7 +275,7 @@ class ColorRepresentation extends Representation
return null;
}
public function hasAlpha(?int $variant = null): bool
public function hasAlpha(int $variant = null): bool
{
if (null === $variant) {
$variant = $this->variant;

View File

@ -44,7 +44,7 @@ class MicrotimeRepresentation extends Representation
public $mem_peak_real = 0;
public $hints = ['microtime'];
public function __construct(int $seconds, int $microseconds, int $group, ?float $lap = null, ?float $total = null, int $i = 0)
public function __construct(int $seconds, int $microseconds, int $group, float $lap = null, float $total = null, int $i = 0)
{
parent::__construct('Microtime');

View File

@ -36,7 +36,7 @@ class Representation
protected $name;
public function __construct(string $label, ?string $name = null)
public function __construct(string $label, string $name = null)
{
$this->label = $label;

View File

@ -57,7 +57,7 @@ class SourceRepresentation extends Representation
* @param int $start_line The first line to display (1 based)
* @param null|int $length Amount of lines to show
*/
public static function getSource(string $filename, int $start_line = 1, ?int $length = null): ?array
public static function getSource(string $filename, int $start_line = 1, int $length = null): ?array
{
if (!$filename || !\file_exists($filename) || !\is_readable($filename)) {
return null;

View File

@ -53,8 +53,8 @@ class Value
public $reference = false;
public $depth = 0;
public $size;
public $value;
public $hints = [];
public $value;
protected $representations = [];
@ -62,7 +62,7 @@ class Value
{
}
public function addRepresentation(Representation $rep, ?int $pos = null): bool
public function addRepresentation(Representation $rep, int $pos = null): bool
{
if (isset($this->representations[$rep->getName()])) {
return false;
@ -81,7 +81,7 @@ class Value
return true;
}
public function replaceRepresentation(Representation $rep, ?int $pos = null): void
public function replaceRepresentation(Representation $rep, int $pos = null): void
{
if (null === $pos) {
$this->representations[$rep->getName()] = $rep;
@ -234,7 +234,7 @@ class Value
/**
* Creates a new basic object with a name and access path.
*/
public static function blank(?string $name = null, ?string $access_path = null): self
public static function blank(string $name = null, string $access_path = null): self
{
$o = new self();
$o->name = $name;

Some files were not shown because too many files have changed in this diff Show More