From a2e3898b53d41281457655cf9763ee15fbe17419 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20B=C3=B6sing?= <2189546+boesing@users.noreply.github.com> Date: Tue, 10 Oct 2023 23:54:16 +0200 Subject: [PATCH 1/2] feature: add support for PHP 8.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com> --- composer.json | 18 +- composer.lock | 793 ++++++++++-------- .../FunctionArgumentValidator.php | 6 +- src/Parser/PhpParser/ConstantTypeParser.php | 2 +- 4 files changed, 436 insertions(+), 383 deletions(-) diff --git a/composer.json b/composer.json index 31dd475..08fa653 100644 --- a/composer.json +++ b/composer.json @@ -4,21 +4,21 @@ "description": "Psalm plugin to work with `sprintf`, `printf`, `sscanf` and `fscanf`.", "license": "BSD-3-Clause", "require": { - "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0", + "php": "~8.1.0 || ~8.2.0 || ~8.3.0", "ext-simplexml": "*", - "vimeo/psalm": "^5.7.1", + "vimeo/psalm": "^5.15.0", "webmozart/assert": "^1.11" }, "require-dev": { - "codeception/codeception": "^4.1", + "codeception/codeception": "^4.2.2", "doctrine/coding-standard": "^11.1", - "codeception/module-phpbrowser": "^2.0", - "codeception/module-asserts": "^2.0", + "codeception/module-phpbrowser": "^2.0.3", + "codeception/module-asserts": "^2.0.1", "weirdan/codeception-psalm-module": "^0.14.0", - "symfony/yaml": "^5.4", - "symfony/console": "^5.4", - "symfony/finder": "^5.4", - "composer/xdebug-handler": "^2" + "symfony/yaml": "^5.4.23", + "symfony/console": "^5.4.28", + "symfony/finder": "^5.4.27", + "composer/xdebug-handler": "^2.0.5" }, "extra": { "psalm": { diff --git a/composer.lock b/composer.lock index f7b0abb..786c507 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "f227fdb74d0e042b976328a088137bb3", + "content-hash": "924b4b49d642281eb1082b7b410610bc", "packages": [ { "name": "amphp/amp", @@ -245,16 +245,16 @@ }, { "name": "composer/semver", - "version": "3.3.2", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", + "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", "shasum": "" }, "require": { @@ -304,9 +304,9 @@ "versioning" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.3.2" + "source": "https://github.com/composer/semver/tree/3.4.0" }, "funding": [ { @@ -322,7 +322,7 @@ "type": "tidelift" } ], - "time": "2022-04-01T19:23:25+00:00" + "time": "2023-08-31T09:50:34+00:00" }, { "name": "composer/xdebug-handler", @@ -429,25 +429,29 @@ }, { "name": "doctrine/deprecations", - "version": "v1.0.0", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de" + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", - "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", "shasum": "" }, "require": { - "php": "^7.1|^8.0" + "php": "^7.1 || ^8.0" }, "require-dev": { "doctrine/coding-standard": "^9", - "phpunit/phpunit": "^7.5|^8.5|^9.5", - "psr/log": "^1|^2|^3" + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" }, "suggest": { "psr/log": "Allows logging deprecations via PSR-3 logger implementation" @@ -466,9 +470,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/v1.0.0" + "source": "https://github.com/doctrine/deprecations/tree/1.1.2" }, - "time": "2022-05-02T15:47:09+00:00" + "time": "2023-09-27T20:04:15+00:00" }, { "name": "felixfbecker/advanced-json-rpc", @@ -685,16 +689,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.15.4", + "version": "v4.17.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290" + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290", - "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", "shasum": "" }, "require": { @@ -735,9 +739,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.4" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" }, - "time": "2023-03-05T19:49:14+00:00" + "time": "2023-08-13T19:53:39+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -851,16 +855,16 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.7.1", + "version": "1.7.3", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "dfc078e8af9c99210337325ff5aa152872c98714" + "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/dfc078e8af9c99210337325ff5aa152872c98714", - "reference": "dfc078e8af9c99210337325ff5aa152872c98714", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", + "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", "shasum": "" }, "require": { @@ -903,28 +907,30 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.1" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.3" }, - "time": "2023-03-27T19:02:04+00:00" + "time": "2023-08-12T11:01:26+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "1.15.3", + "version": "1.24.2", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "61800f71a5526081d1b5633766aa88341f1ade76" + "reference": "bcad8d995980440892759db0c32acae7c8e79442" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/61800f71a5526081d1b5633766aa88341f1ade76", - "reference": "61800f71a5526081d1b5633766aa88341f1ade76", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bcad8d995980440892759db0c32acae7c8e79442", + "reference": "bcad8d995980440892759db0c32acae7c8e79442", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^4.15", "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/extension-installer": "^1.0", "phpstan/phpstan": "^1.5", @@ -948,28 +954,33 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.15.3" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.2" }, - "time": "2022-12-20T20:56:55+00:00" + "time": "2023-09-26T12:28:12+00:00" }, { "name": "psr/container", - "version": "1.1.2", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", "shasum": "" }, "require": { "php": ">=7.4.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { "psr-4": { "Psr\\Container\\": "src/" @@ -996,36 +1007,36 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/container/tree/2.0.2" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-11-05T16:47:00+00:00" }, { "name": "psr/log", - "version": "1.1.4", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376", + "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=8.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Log\\": "Psr/Log/" + "Psr\\Log\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1046,9 +1057,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/1.1.4" + "source": "https://github.com/php-fig/log/tree/2.0.0" }, - "time": "2021-05-03T11:20:27+00:00" + "time": "2021-07-14T16:41:46+00:00" }, { "name": "sebastian/diff", @@ -1118,26 +1129,25 @@ }, { "name": "spatie/array-to-xml", - "version": "2.17.1", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/spatie/array-to-xml.git", - "reference": "5cbec9c6ab17e320c58a259f0cebe88bde4a7c46" + "reference": "f9ab39c808500c347d5a8b6b13310bd5221e39e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/5cbec9c6ab17e320c58a259f0cebe88bde4a7c46", - "reference": "5cbec9c6ab17e320c58a259f0cebe88bde4a7c46", + "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/f9ab39c808500c347d5a8b6b13310bd5221e39e7", + "reference": "f9ab39c808500c347d5a8b6b13310bd5221e39e7", "shasum": "" }, "require": { "ext-dom": "*", - "php": "^7.4|^8.0" + "php": "^8.0" }, "require-dev": { "mockery/mockery": "^1.2", "pestphp/pest": "^1.21", - "phpunit/phpunit": "^9.0", "spatie/pest-plugin-snapshots": "^1.1" }, "type": "library", @@ -1166,7 +1176,7 @@ "xml" ], "support": { - "source": "https://github.com/spatie/array-to-xml/tree/2.17.1" + "source": "https://github.com/spatie/array-to-xml/tree/3.2.0" }, "funding": [ { @@ -1178,20 +1188,20 @@ "type": "github" } ], - "time": "2022-12-26T08:22:07+00:00" + "time": "2023-07-19T18:30:26+00:00" }, { "name": "symfony/console", - "version": "v5.4.23", + "version": "v5.4.28", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "90f21e27d0d88ce38720556dd164d4a1e4c3934c" + "reference": "f4f71842f24c2023b91237c72a365306f3c58827" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/90f21e27d0d88ce38720556dd164d4a1e4c3934c", - "reference": "90f21e27d0d88ce38720556dd164d4a1e4c3934c", + "url": "https://api.github.com/repos/symfony/console/zipball/f4f71842f24c2023b91237c72a365306f3c58827", + "reference": "f4f71842f24c2023b91237c72a365306f3c58827", "shasum": "" }, "require": { @@ -1261,7 +1271,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.23" + "source": "https://github.com/symfony/console/tree/v5.4.28" }, "funding": [ { @@ -1277,29 +1287,29 @@ "type": "tidelift" } ], - "time": "2023-04-24T18:47:29+00:00" + "time": "2023-08-07T06:12:30+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.2", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.1" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -1328,7 +1338,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0" }, "funding": [ { @@ -1344,27 +1354,26 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { "name": "symfony/filesystem", - "version": "v5.4.23", + "version": "v6.3.1", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "b2f79d86cd9e7de0fff6d03baa80eaed7a5f38b5" + "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/b2f79d86cd9e7de0fff6d03baa80eaed7a5f38b5", - "reference": "b2f79d86cd9e7de0fff6d03baa80eaed7a5f38b5", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", + "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-mbstring": "~1.8" }, "type": "library", "autoload": { @@ -1392,7 +1401,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.23" + "source": "https://github.com/symfony/filesystem/tree/v6.3.1" }, "funding": [ { @@ -1408,20 +1417,20 @@ "type": "tidelift" } ], - "time": "2023-03-02T11:38:35+00:00" + "time": "2023-06-01T08:30:39+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", "shasum": "" }, "require": { @@ -1436,7 +1445,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1474,7 +1483,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" }, "funding": [ { @@ -1490,20 +1499,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + "reference": "875e90aeea2777b6f135677f618529449334a612" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", + "reference": "875e90aeea2777b6f135677f618529449334a612", "shasum": "" }, "require": { @@ -1515,7 +1524,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1555,7 +1564,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" }, "funding": [ { @@ -1571,20 +1580,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", "shasum": "" }, "require": { @@ -1596,7 +1605,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1639,7 +1648,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" }, "funding": [ { @@ -1655,20 +1664,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + "reference": "42292d99c55abe617799667f454222c54c60e229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", "shasum": "" }, "require": { @@ -1683,7 +1692,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1722,7 +1731,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" }, "funding": [ { @@ -1738,20 +1747,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-07-28T09:04:16+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fe2f306d1d9d346a7fee353d0d5012e401e984b5", + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5", "shasum": "" }, "require": { @@ -1760,7 +1769,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1801,7 +1810,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.28.0" }, "funding": [ { @@ -1817,20 +1826,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", "shasum": "" }, "require": { @@ -1839,7 +1848,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1884,7 +1893,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" }, "funding": [ { @@ -1900,37 +1909,33 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.5.2", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.1", - "symfony/deprecation-contracts": "^2.1|^3" + "php": ">=8.1", + "psr/container": "^2.0" }, "conflict": { "ext-psr": "<1.1|>=2" }, - "suggest": { - "symfony/service-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -1940,7 +1945,10 @@ "autoload": { "psr-4": { "Symfony\\Contracts\\Service\\": "" - } + }, + "exclude-from-classmap": [ + "/Test/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1967,7 +1975,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/service-contracts/tree/v3.3.0" }, "funding": [ { @@ -1983,38 +1991,38 @@ "type": "tidelift" } ], - "time": "2022-05-30T19:17:29+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { "name": "symfony/string", - "version": "v5.4.22", + "version": "v6.3.5", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "8036a4c76c0dd29e60b6a7cafcacc50cf088ea62" + "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/8036a4c76c0dd29e60b6a7cafcacc50cf088ea62", - "reference": "8036a4c76c0dd29e60b6a7cafcacc50cf088ea62", + "url": "https://api.github.com/repos/symfony/string/zipball/13d76d0fb049051ed12a04bef4f9de8715bea339", + "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "~1.15" + "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/translation-contracts": ">=3.0" + "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/translation-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.4|^5.0|^6.0" + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/intl": "^6.2", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -2053,7 +2061,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.22" + "source": "https://github.com/symfony/string/tree/v6.3.5" }, "funding": [ { @@ -2069,20 +2077,20 @@ "type": "tidelift" } ], - "time": "2023-03-14T06:11:53+00:00" + "time": "2023-09-18T10:38:32+00:00" }, { "name": "vimeo/psalm", - "version": "5.11.0", + "version": "5.15.0", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "c9b192ab8400fdaf04b2b13d110575adc879aa90" + "reference": "5c774aca4746caf3d239d9c8cadb9f882ca29352" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/c9b192ab8400fdaf04b2b13d110575adc879aa90", - "reference": "c9b192ab8400fdaf04b2b13d110575adc879aa90", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/5c774aca4746caf3d239d9c8cadb9f882ca29352", + "reference": "5c774aca4746caf3d239d9c8cadb9f882ca29352", "shasum": "" }, "require": { @@ -2103,13 +2111,16 @@ "felixfbecker/language-server-protocol": "^1.5.2", "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1", "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "nikic/php-parser": "^4.14", - "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0", + "nikic/php-parser": "^4.16", + "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", "sebastian/diff": "^4.0 || ^5.0", "spatie/array-to-xml": "^2.17.0 || ^3.0", "symfony/console": "^4.1.6 || ^5.0 || ^6.0", "symfony/filesystem": "^5.4 || ^6.0" }, + "conflict": { + "nikic/php-parser": "4.17.0" + }, "provide": { "psalm/psalm": "self.version" }, @@ -2173,9 +2184,9 @@ ], "support": { "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm/tree/5.11.0" + "source": "https://github.com/vimeo/psalm/tree/5.15.0" }, - "time": "2023-05-04T21:35:44+00:00" + "time": "2023-08-20T23:07:30+00:00" }, { "name": "webmozart/assert", @@ -2571,24 +2582,25 @@ }, { "name": "codeception/module-cli", - "version": "1.0.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/Codeception/module-cli.git", - "reference": "ad8b180c1b0133ac4da29d02d37aabb95acf5a49" + "reference": "a3a101fae4049fa2f810107f7bd5db3b3266ce63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-cli/zipball/ad8b180c1b0133ac4da29d02d37aabb95acf5a49", - "reference": "ad8b180c1b0133ac4da29d02d37aabb95acf5a49", + "url": "https://api.github.com/repos/Codeception/module-cli/zipball/a3a101fae4049fa2f810107f7bd5db3b3266ce63", + "reference": "a3a101fae4049fa2f810107f7bd5db3b3266ce63", "shasum": "" }, "require": { - "codeception/codeception": "4.0.x-dev | ^4.0", - "php": ">=5.6.0 <8.0" + "codeception/codeception": "*@dev", + "codeception/module-asserts": "*", + "php": "^7.4 || ^8.0" }, - "require-dev": { - "codeception/util-robohelpers": "dev-master" + "conflict": { + "codeception/codeception": "<4.0" }, "type": "library", "autoload": { @@ -2606,40 +2618,37 @@ } ], "description": "Codeception module for testing basic shell commands and shell output", - "homepage": "http://codeception.com/", + "homepage": "https://codeception.com/", "keywords": [ "codeception" ], "support": { "issues": "https://github.com/Codeception/module-cli/issues", - "source": "https://github.com/Codeception/module-cli/tree/master" + "source": "https://github.com/Codeception/module-cli/tree/2.0.1" }, - "time": "2019-09-19T10:50:14+00:00" + "time": "2023-01-13T18:41:03+00:00" }, { "name": "codeception/module-filesystem", - "version": "1.0.2", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/Codeception/module-filesystem.git", - "reference": "fe3c352479924ec0aaf6a6c3d6825dc14242b81e" + "reference": "ae1fa5f13ba00bdb8a83d4258ef577c5114ddef9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-filesystem/zipball/fe3c352479924ec0aaf6a6c3d6825dc14242b81e", - "reference": "fe3c352479924ec0aaf6a6c3d6825dc14242b81e", + "url": "https://api.github.com/repos/Codeception/module-filesystem/zipball/ae1fa5f13ba00bdb8a83d4258ef577c5114ddef9", + "reference": "ae1fa5f13ba00bdb8a83d4258ef577c5114ddef9", "shasum": "" }, "require": { - "codeception/codeception": "*@dev", - "php": ">=5.6.0 <8.0", - "symfony/finder": ">=2.7 <6.0" + "codeception/codeception": "^4.1 | *@dev", + "php": "^7.4 | ^8.0", + "symfony/finder": "^4.4 | ^5.4 | ^6.0" }, "conflict": { - "codeception/codeception": "<4.0" - }, - "require-dev": { - "codeception/util-robohelpers": "dev-master" + "codeception/codeception": "<4.1" }, "type": "library", "autoload": { @@ -2660,16 +2669,16 @@ } ], "description": "Codeception module for testing local filesystem", - "homepage": "http://codeception.com/", + "homepage": "https://codeception.com/", "keywords": [ "codeception", "filesystem" ], "support": { "issues": "https://github.com/Codeception/module-filesystem/issues", - "source": "https://github.com/Codeception/module-filesystem/tree/1.0.2" + "source": "https://github.com/Codeception/module-filesystem/tree/2.0.2" }, - "time": "2019-12-04T17:13:39+00:00" + "time": "2021-12-18T14:11:30+00:00" }, { "name": "codeception/module-phpbrowser", @@ -2957,30 +2966,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": { @@ -3007,7 +3016,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": [ { @@ -3023,26 +3032,26 @@ "type": "tidelift" } ], - "time": "2022-12-30T00:15:36+00:00" + "time": "2022-12-30T00:23:10+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.5.0", + "version": "7.8.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba" + "reference": "1110f66a6530a40fe7aea0378fe608ee2b2248f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b50a2a1251152e43f6a37f0fa053e730a67d25ba", - "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/1110f66a6530a40fe7aea0378fe608ee2b2248f9", + "reference": "1110f66a6530a40fe7aea0378fe608ee2b2248f9", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5", - "guzzlehttp/psr7": "^1.9 || ^2.4", + "guzzlehttp/promises": "^1.5.3 || ^2.0.1", + "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -3053,7 +3062,8 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.1", "ext-curl": "*", - "php-http/client-integration-tests": "^3.0", + "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "php-http/message-factory": "^1.1", "phpunit/phpunit": "^8.5.29 || ^9.5.23", "psr/log": "^1.1 || ^2.0 || ^3.0" }, @@ -3067,9 +3077,6 @@ "bamarni-bin": { "bin-links": true, "forward-command": false - }, - "branch-alias": { - "dev-master": "7.5-dev" } }, "autoload": { @@ -3135,7 +3142,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.5.0" + "source": "https://github.com/guzzle/guzzle/tree/7.8.0" }, "funding": [ { @@ -3151,38 +3158,37 @@ "type": "tidelift" } ], - "time": "2022-08-28T15:39:27+00:00" + "time": "2023-08-27T10:20:53+00:00" }, { "name": "guzzlehttp/promises", - "version": "1.5.2", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "b94b2807d85443f9719887892882d0329d1e2598" + "reference": "111166291a0f8130081195ac4556a5587d7f1b5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", - "reference": "b94b2807d85443f9719887892882d0329d1e2598", + "url": "https://api.github.com/repos/guzzle/promises/zipball/111166291a0f8130081195ac4556a5587d7f1b5d", + "reference": "111166291a0f8130081195ac4556a5587d7f1b5d", "shasum": "" }, "require": { - "php": ">=5.5" + "php": "^7.2.5 || ^8.0" }, "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" + "bamarni/composer-bin-plugin": "^1.8.1", + "phpunit/phpunit": "^8.5.29 || ^9.5.23" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.5-dev" + "bamarni-bin": { + "bin-links": true, + "forward-command": false } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\Promise\\": "src/" } @@ -3219,7 +3225,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.5.2" + "source": "https://github.com/guzzle/promises/tree/2.0.1" }, "funding": [ { @@ -3235,26 +3241,26 @@ "type": "tidelift" } ], - "time": "2022-08-28T14:55:35+00:00" + "time": "2023-08-03T15:11:55+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.4.3", + "version": "2.6.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "67c26b443f348a51926030c83481b85718457d3d" + "reference": "be45764272e8873c72dbe3d2edcfdfcc3bc9f727" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/67c26b443f348a51926030c83481b85718457d3d", - "reference": "67c26b443f348a51926030c83481b85718457d3d", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/be45764272e8873c72dbe3d2edcfdfcc3bc9f727", + "reference": "be45764272e8873c72dbe3d2edcfdfcc3bc9f727", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", "psr/http-factory": "^1.0", - "psr/http-message": "^1.0", + "psr/http-message": "^1.1 || ^2.0", "ralouphie/getallheaders": "^3.0" }, "provide": { @@ -3274,9 +3280,6 @@ "bamarni-bin": { "bin-links": true, "forward-command": false - }, - "branch-alias": { - "dev-master": "2.4-dev" } }, "autoload": { @@ -3338,7 +3341,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.4.3" + "source": "https://github.com/guzzle/psr7/tree/2.6.1" }, "funding": [ { @@ -3354,20 +3357,87 @@ "type": "tidelift" } ], - "time": "2022-10-26T14:07:24+00:00" + "time": "2023-08-27T10:13:57+00:00" + }, + { + "name": "masterminds/html5", + "version": "2.8.1", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f47dcf3c70c584de14f21143c55d9939631bc6cf", + "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.8.1" + }, + "time": "2023-05-10T11:58:31+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.11.0", + "version": "1.11.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", "shasum": "" }, "require": { @@ -3405,7 +3475,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" }, "funding": [ { @@ -3413,7 +3483,7 @@ "type": "tidelift" } ], - "time": "2022-03-03T13:19:32+00:00" + "time": "2023-03-08T13:26:56+00:00" }, { "name": "phar-io/manifest", @@ -3528,16 +3598,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.26", + "version": "9.2.29", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1" + "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", - "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6a3a87ac2bbe33b25042753df8195ba4aa534c76", + "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76", "shasum": "" }, "require": { @@ -3593,7 +3663,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26" + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.29" }, "funding": [ { @@ -3601,7 +3672,7 @@ "type": "github" } ], - "time": "2023-03-06T12:58:08+00:00" + "time": "2023-09-19T04:57:46+00:00" }, { "name": "phpunit/php-file-iterator", @@ -3846,16 +3917,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.4", + "version": "9.6.13", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "9125ee085b6d95e78277dc07aa1f46f9e0607b8d" + "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9125ee085b6d95e78277dc07aa1f46f9e0607b8d", - "reference": "9125ee085b6d95e78277dc07aa1f46f9e0607b8d", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f3d767f7f9e191eab4189abe41ab37797e30b1be", + "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be", "shasum": "" }, "require": { @@ -3870,7 +3941,7 @@ "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.13", + "phpunit/php-code-coverage": "^9.2.28", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", @@ -3888,8 +3959,8 @@ "sebastian/version": "^3.0.2" }, "suggest": { - "ext-soap": "*", - "ext-xdebug": "*" + "ext-soap": "To be able to generate mocks based on WSDL files", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, "bin": [ "phpunit" @@ -3928,7 +3999,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.4" + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.13" }, "funding": [ { @@ -3944,7 +4016,7 @@ "type": "tidelift" } ], - "time": "2023-02-27T13:06:37+00:00" + "time": "2023-09-19T05:39:22+00:00" }, { "name": "psr/event-dispatcher", @@ -3998,21 +4070,21 @@ }, { "name": "psr/http-client", - "version": "1.0.1", + "version": "1.0.3", "source": { "type": "git", "url": "https://github.com/php-fig/http-client.git", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", "shasum": "" }, "require": { "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0" + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", "extra": { @@ -4032,7 +4104,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP clients", @@ -4044,27 +4116,27 @@ "psr-18" ], "support": { - "source": "https://github.com/php-fig/http-client/tree/master" + "source": "https://github.com/php-fig/http-client" }, - "time": "2020-06-29T06:28:15+00:00" + "time": "2023-09-23T14:17:50+00:00" }, { "name": "psr/http-factory", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/http-factory.git", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + "reference": "e616d01114759c4c489f93b099585439f795fe35" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", + "reference": "e616d01114759c4c489f93b099585439f795fe35", "shasum": "" }, "require": { "php": ">=7.0.0", - "psr/http-message": "^1.0" + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", "extra": { @@ -4084,7 +4156,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interfaces for PSR-7 HTTP message factories", @@ -4099,31 +4171,31 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-factory/tree/master" + "source": "https://github.com/php-fig/http-factory/tree/1.0.2" }, - "time": "2019-04-30T12:38:16+00:00" + "time": "2023-04-10T20:10:41+00:00" }, { "name": "psr/http-message", - "version": "1.0.1", + "version": "2.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -4138,7 +4210,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP messages", @@ -4152,9 +4224,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/master" + "source": "https://github.com/php-fig/http-message/tree/2.0" }, - "time": "2016-08-06T14:39:51+00:00" + "time": "2023-04-04T09:54:51+00:00" }, { "name": "ralouphie/getallheaders", @@ -4640,16 +4712,16 @@ }, { "name": "sebastian/global-state", - "version": "5.0.5", + "version": "5.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + "reference": "bde739e7565280bda77be70044ac1047bc007e34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", + "reference": "bde739e7565280bda77be70044ac1047bc007e34", "shasum": "" }, "require": { @@ -4692,7 +4764,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" }, "funding": [ { @@ -4700,7 +4772,7 @@ "type": "github" } ], - "time": "2022-02-14T08:28:10+00:00" + "time": "2023-08-02T09:26:13+00:00" }, { "name": "sebastian/lines-of-code", @@ -5100,32 +5172,32 @@ }, { "name": "slevomat/coding-standard", - "version": "8.8.0", + "version": "8.14.1", "source": { "type": "git", "url": "https://github.com/slevomat/coding-standard.git", - "reference": "59e25146a4ef0a7b194c5bc55b32dd414345db89" + "reference": "fea1fd6f137cc84f9cba0ae30d549615dbc6a926" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/59e25146a4ef0a7b194c5bc55b32dd414345db89", - "reference": "59e25146a4ef0a7b194c5bc55b32dd414345db89", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/fea1fd6f137cc84f9cba0ae30d549615dbc6a926", + "reference": "fea1fd6f137cc84f9cba0ae30d549615dbc6a926", "shasum": "" }, "require": { "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0", "php": "^7.2 || ^8.0", - "phpstan/phpdoc-parser": ">=1.15.2 <1.16.0", + "phpstan/phpdoc-parser": "^1.23.1", "squizlabs/php_codesniffer": "^3.7.1" }, "require-dev": { "phing/phing": "2.17.4", "php-parallel-lint/php-parallel-lint": "1.3.2", - "phpstan/phpstan": "1.4.10|1.9.6", - "phpstan/phpstan-deprecation-rules": "1.1.1", - "phpstan/phpstan-phpunit": "1.0.0|1.3.3", - "phpstan/phpstan-strict-rules": "1.4.4", - "phpunit/phpunit": "7.5.20|8.5.21|9.5.27" + "phpstan/phpstan": "1.10.37", + "phpstan/phpstan-deprecation-rules": "1.1.4", + "phpstan/phpstan-phpunit": "1.3.14", + "phpstan/phpstan-strict-rules": "1.5.1", + "phpunit/phpunit": "8.5.21|9.6.8|10.3.5" }, "type": "phpcodesniffer-standard", "extra": { @@ -5135,7 +5207,7 @@ }, "autoload": { "psr-4": { - "SlevomatCodingStandard\\": "SlevomatCodingStandard" + "SlevomatCodingStandard\\": "SlevomatCodingStandard/" } }, "notification-url": "https://packagist.org/downloads/", @@ -5149,7 +5221,7 @@ ], "support": { "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/8.8.0" + "source": "https://github.com/slevomat/coding-standard/tree/8.14.1" }, "funding": [ { @@ -5161,7 +5233,7 @@ "type": "tidelift" } ], - "time": "2023-01-09T10:46:13+00:00" + "time": "2023-10-08T07:28:08+00:00" }, { "name": "squizlabs/php_codesniffer", @@ -5222,31 +5294,27 @@ }, { "name": "symfony/browser-kit", - "version": "v5.4.21", + "version": "v6.3.2", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "a866ca7e396f15d7efb6d74a8a7d364d4e05b704" + "reference": "ca4a988488f61ac18f8f845445eabdd36f89aa8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/a866ca7e396f15d7efb6d74a8a7d364d4e05b704", - "reference": "a866ca7e396f15d7efb6d74a8a7d364d4e05b704", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/ca4a988488f61ac18f8f845445eabdd36f89aa8d", + "reference": "ca4a988488f61ac18f8f845445eabdd36f89aa8d", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/dom-crawler": "^4.4|^5.0|^6.0", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.1", + "symfony/dom-crawler": "^5.4|^6.0" }, "require-dev": { - "symfony/css-selector": "^4.4|^5.0|^6.0", - "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/mime": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0" - }, - "suggest": { - "symfony/process": "" + "symfony/css-selector": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -5274,7 +5342,7 @@ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/browser-kit/tree/v5.4.21" + "source": "https://github.com/symfony/browser-kit/tree/v6.3.2" }, "funding": [ { @@ -5290,20 +5358,20 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:03:56+00:00" + "time": "2023-07-06T06:56:43+00:00" }, { "name": "symfony/css-selector", - "version": "v5.4.21", + "version": "v5.4.26", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "95f3c7468db1da8cc360b24fa2a26e7cefcb355d" + "reference": "0ad3f7e9a1ab492c5b4214cf22a9dc55dcf8600a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/95f3c7468db1da8cc360b24fa2a26e7cefcb355d", - "reference": "95f3c7468db1da8cc360b24fa2a26e7cefcb355d", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/0ad3f7e9a1ab492c5b4214cf22a9dc55dcf8600a", + "reference": "0ad3f7e9a1ab492c5b4214cf22a9dc55dcf8600a", "shasum": "" }, "require": { @@ -5340,7 +5408,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.4.21" + "source": "https://github.com/symfony/css-selector/tree/v5.4.26" }, "funding": [ { @@ -5356,38 +5424,30 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:03:56+00:00" + "time": "2023-07-07T06:10:25+00:00" }, { "name": "symfony/dom-crawler", - "version": "v5.4.21", + "version": "v6.3.4", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "105a7ac54ecacc1f52a99b9c4963935ca62aac8f" + "reference": "3fdd2a3d5fdc363b2e8dbf817f9726a4d013cbd1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/105a7ac54ecacc1f52a99b9c4963935ca62aac8f", - "reference": "105a7ac54ecacc1f52a99b9c4963935ca62aac8f", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/3fdd2a3d5fdc363b2e8dbf817f9726a4d013cbd1", + "reference": "3fdd2a3d5fdc363b2e8dbf817f9726a4d013cbd1", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "masterminds/html5": "^2.6", + "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "masterminds/html5": "<2.6" + "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { - "masterminds/html5": "^2.6", - "symfony/css-selector": "^4.4|^5.0|^6.0" - }, - "suggest": { - "symfony/css-selector": "" + "symfony/css-selector": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -5415,7 +5475,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v5.4.21" + "source": "https://github.com/symfony/dom-crawler/tree/v6.3.4" }, "funding": [ { @@ -5431,20 +5491,20 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:03:56+00:00" + "time": "2023-08-01T07:43:40+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.4.21", + "version": "v5.4.26", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "f0ae1383a8285dfc6752b8d8602790953118ff5a" + "reference": "5dcc00e03413f05c1e7900090927bb7247cb0aac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f0ae1383a8285dfc6752b8d8602790953118ff5a", - "reference": "f0ae1383a8285dfc6752b8d8602790953118ff5a", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/5dcc00e03413f05c1e7900090927bb7247cb0aac", + "reference": "5dcc00e03413f05c1e7900090927bb7247cb0aac", "shasum": "" }, "require": { @@ -5500,7 +5560,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/v5.4.21" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.26" }, "funding": [ { @@ -5516,33 +5576,30 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:03:56+00:00" + "time": "2023-07-06T06:34:20+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v2.5.2", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1" + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1", - "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.1", "psr/event-dispatcher": "^1" }, - "suggest": { - "symfony/event-dispatcher-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -5579,7 +5636,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.3.0" }, "funding": [ { @@ -5595,20 +5652,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { "name": "symfony/finder", - "version": "v5.4.21", + "version": "v5.4.27", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "078e9a5e1871fcfe6a5ce421b539344c21afef19" + "reference": "ff4bce3c33451e7ec778070e45bd23f74214cd5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/078e9a5e1871fcfe6a5ce421b539344c21afef19", - "reference": "078e9a5e1871fcfe6a5ce421b539344c21afef19", + "url": "https://api.github.com/repos/symfony/finder/zipball/ff4bce3c33451e7ec778070e45bd23f74214cd5d", + "reference": "ff4bce3c33451e7ec778070e45bd23f74214cd5d", "shasum": "" }, "require": { @@ -5642,7 +5699,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.21" + "source": "https://github.com/symfony/finder/tree/v5.4.27" }, "funding": [ { @@ -5658,20 +5715,20 @@ "type": "tidelift" } ], - "time": "2023-02-16T09:33:00+00:00" + "time": "2023-07-31T08:02:31+00:00" }, { "name": "symfony/yaml", - "version": "v5.4.21", + "version": "v5.4.23", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "3713e20d93e46e681e51605d213027e48dab3469" + "reference": "4cd2e3ea301aadd76a4172756296fe552fb45b0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/3713e20d93e46e681e51605d213027e48dab3469", - "reference": "3713e20d93e46e681e51605d213027e48dab3469", + "url": "https://api.github.com/repos/symfony/yaml/zipball/4cd2e3ea301aadd76a4172756296fe552fb45b0b", + "reference": "4cd2e3ea301aadd76a4172756296fe552fb45b0b", "shasum": "" }, "require": { @@ -5717,7 +5774,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.4.21" + "source": "https://github.com/symfony/yaml/tree/v5.4.23" }, "funding": [ { @@ -5733,7 +5790,7 @@ "type": "tidelift" } ], - "time": "2023-02-21T19:46:44+00:00" + "time": "2023-04-23T19:33:36+00:00" }, { "name": "theseer/tokenizer", @@ -5848,9 +5905,9 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0", + "php": "~8.1.0 || ~8.2.0 || ~8.3.0", "ext-simplexml": "*" }, "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.6.0" } diff --git a/src/EventHandler/FunctionArgumentValidator.php b/src/EventHandler/FunctionArgumentValidator.php index ddad79f..a4f480b 100644 --- a/src/EventHandler/FunctionArgumentValidator.php +++ b/src/EventHandler/FunctionArgumentValidator.php @@ -81,16 +81,12 @@ private function createCodeIssue( */ private function createIssueMessage(string $functionName, int $requiredArgumentCount, int $argumentCount): string { - $message = sprintf( + return sprintf( $this->getIssueTemplate(), $functionName, $requiredArgumentCount, $argumentCount, ); - - assert($message !== ''); - - return $message; } /** diff --git a/src/Parser/PhpParser/ConstantTypeParser.php b/src/Parser/PhpParser/ConstantTypeParser.php index 315560d..b76a0eb 100644 --- a/src/Parser/PhpParser/ConstantTypeParser.php +++ b/src/Parser/PhpParser/ConstantTypeParser.php @@ -29,7 +29,7 @@ public static function parse(Expr\ConstFetch $expr): Union private function toType(): Union { - $resolvedName = $this->expr->name->parts[0] ?? null; + $resolvedName = $this->expr->name->getParts()[0] ?? null; if ($resolvedName === null) { throw new InvalidArgumentException('Provided constant does not contain resolved name.'); } From be0589f52cece47e86658273f6ca11dbbf2813ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20B=C3=B6sing?= <2189546+boesing@users.noreply.github.com> Date: Tue, 10 Oct 2023 23:59:18 +0200 Subject: [PATCH 2/2] qa: apply coding standard to match rules for PHP 8.1+ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com> --- .../ArgumentValidationResult.php | 12 +----- .../StringfArgumentValidator.php | 6 +-- .../FunctionArgumentValidator.php | 21 ++-------- ...lyInvalidArgumentForSpecifierValidator.php | 18 +++------ .../SprintfFunctionReturnProvider.php | 12 +++--- .../UnnecessaryFunctionCallValidator.php | 18 +++------ src/Parser/PhpParser/ArgumentValueParser.php | 10 +---- src/Parser/PhpParser/ConstantTypeParser.php | 5 +-- .../LiteralStringVariableInContextParser.php | 5 +-- src/Parser/PhpParser/ReturnTypeParser.php | 25 ++++-------- .../StringableVariableInContextParser.php | 5 +-- .../VariableFromConstInContextParser.php | 18 ++------- src/Parser/PhpParser/VariableTypeParser.php | 5 +-- src/Parser/Psalm/PhpVersion.php | 6 +-- src/Parser/Psalm/TypeParser.php | 7 +--- .../TemplatedStringParser/Placeholder.php | 40 ++++++------------- .../SpecifierTypeGenerator.php | 7 +--- .../TemplatedStringParser.php | 16 +++----- src/Plugin.php | 4 +- src/Psalm/Issue/PossiblyInvalidArgument.php | 4 +- src/Psalm/Issue/TooFewArguments.php | 4 +- src/Psalm/Issue/TooManyArguments.php | 4 +- src/Psalm/Issue/UnnecessaryFunctionCall.php | 6 +-- 23 files changed, 71 insertions(+), 187 deletions(-) diff --git a/src/ArgumentValidator/ArgumentValidationResult.php b/src/ArgumentValidator/ArgumentValidationResult.php index f25f99c..8c6638b 100644 --- a/src/ArgumentValidator/ArgumentValidationResult.php +++ b/src/ArgumentValidator/ArgumentValidationResult.php @@ -6,22 +6,14 @@ final class ArgumentValidationResult { - /** @var 0|positive-int */ - public int $requiredArgumentCount; - - /** @var 0|positive-int */ - public int $actualArgumentCount; - /** * @param 0|positive-int $requiredArgumentCount * @param 0|positive-int $actualArgumentCount */ public function __construct( - int $requiredArgumentCount, - int $actualArgumentCount + public int $requiredArgumentCount, + public int $actualArgumentCount, ) { - $this->requiredArgumentCount = $requiredArgumentCount; - $this->actualArgumentCount = $actualArgumentCount; } public function valid(): bool diff --git a/src/ArgumentValidator/StringfArgumentValidator.php b/src/ArgumentValidator/StringfArgumentValidator.php index 8c981b0..256c4b4 100644 --- a/src/ArgumentValidator/StringfArgumentValidator.php +++ b/src/ArgumentValidator/StringfArgumentValidator.php @@ -11,15 +11,11 @@ final class StringfArgumentValidator implements ArgumentValidator { - /** @var 0|positive-int */ - private int $argumentsPriorPlaceholderArgumentsStart; - /** * @param 0|positive-int $argumentsPriorPlaceholderArgumentsStart */ - public function __construct(int $argumentsPriorPlaceholderArgumentsStart) + public function __construct(private int $argumentsPriorPlaceholderArgumentsStart) { - $this->argumentsPriorPlaceholderArgumentsStart = $argumentsPriorPlaceholderArgumentsStart; } public function validate(TemplatedStringParser $templatedStringParser, array $arguments): ArgumentValidationResult diff --git a/src/EventHandler/FunctionArgumentValidator.php b/src/EventHandler/FunctionArgumentValidator.php index a4f480b..b23a4fb 100644 --- a/src/EventHandler/FunctionArgumentValidator.php +++ b/src/EventHandler/FunctionArgumentValidator.php @@ -21,7 +21,6 @@ use Psalm\Plugin\EventHandler\Event\AfterEveryFunctionCallAnalysisEvent; use Psalm\StatementsSource; -use function assert; use function sprintf; /** @@ -29,20 +28,8 @@ */ abstract class FunctionArgumentValidator implements AfterEveryFunctionCallAnalysisInterface { - protected StatementsSource $statementsSource; - - protected CodeLocation $codeLocation; - - protected PhpVersion $phpVersion; - - protected FuncCall $functionCall; - - protected function __construct(StatementsSource $statementsSource, CodeLocation $codeLocation, PhpVersion $phpVersion, FuncCall $functionCall) + protected function __construct(protected StatementsSource $statementsSource, protected CodeLocation $codeLocation, protected PhpVersion $phpVersion, protected FuncCall $functionCall) { - $this->statementsSource = $statementsSource; - $this->codeLocation = $codeLocation; - $this->phpVersion = $phpVersion; - $this->functionCall = $functionCall; } /** @@ -61,7 +48,7 @@ private function createCodeIssue( CodeLocation $codeLocation, string $functionName, int $argumentCount, - int $requiredArgumentCount + int $requiredArgumentCount, ): PluginIssue { $message = $this->createIssueMessage( $functionName, @@ -120,7 +107,7 @@ public static function afterEveryFunctionCallAnalysis(AfterEveryFunctionCallAnal private function validate( string $functionName, array $arguments, - Context $context + Context $context, ): void { if (! $this->canHandleFunction($functionName)) { return; @@ -156,7 +143,7 @@ private function validate( false, $this->statementsSource, ); - } catch (InvalidArgumentException $exception) { + } catch (InvalidArgumentException) { return; } diff --git a/src/EventHandler/PossiblyInvalidArgumentForSpecifierValidator.php b/src/EventHandler/PossiblyInvalidArgumentForSpecifierValidator.php index 5ba0488..7d1dd02 100644 --- a/src/EventHandler/PossiblyInvalidArgumentForSpecifierValidator.php +++ b/src/EventHandler/PossiblyInvalidArgumentForSpecifierValidator.php @@ -34,22 +34,14 @@ final class PossiblyInvalidArgumentForSpecifierValidator implements AfterEveryFu 'printf', ]; - /** @psalm-var non-empty-string */ - private string $functionName; - - /** @psalm-var non-empty-list */ - private array $arguments; - /** * @param non-empty-string $functionName * @param non-empty-list $arguments */ public function __construct( - string $functionName, - array $arguments + private string $functionName, + private array $arguments, ) { - $this->functionName = $functionName; - $this->arguments = $arguments; } public static function afterEveryFunctionCallAnalysis(AfterEveryFunctionCallAnalysisEvent $event): void @@ -91,7 +83,7 @@ public function assert( StatementsSource $statementsSource, CodeLocation $codeLocation, Context $context, - int $phpVersion + int $phpVersion, ): void { $template = $this->arguments[0]; @@ -104,7 +96,7 @@ public function assert( self::$allowIntegerForStringPlaceholder, $statementsSource, ); - } catch (InvalidArgumentException $exception) { + } catch (InvalidArgumentException) { return; } @@ -123,7 +115,7 @@ private function assertArgumentsMatchingPlaceholderTypes( CodeLocation $codeLocation, TemplatedStringParser $parsed, array $args, - Context $context + Context $context, ): void { foreach ($parsed->getPlaceholders() as $placeholder) { $argumentType = $placeholder->getArgumentType($args, $context); diff --git a/src/EventHandler/SprintfFunctionReturnProvider.php b/src/EventHandler/SprintfFunctionReturnProvider.php index 269dbf0..a5ae628 100644 --- a/src/EventHandler/SprintfFunctionReturnProvider.php +++ b/src/EventHandler/SprintfFunctionReturnProvider.php @@ -28,7 +28,7 @@ public static function getFunctionIds(): array return [self::FUNCTION_SPRINTF]; } - public static function getFunctionReturnType(FunctionReturnTypeProviderEvent $event): ?Type\Union + public static function getFunctionReturnType(FunctionReturnTypeProviderEvent $event): Type\Union|null { $functionName = $event->getFunctionId(); $functionCallArguments = $event->getCallArgs(); @@ -49,7 +49,7 @@ public static function getFunctionReturnType(FunctionReturnTypeProviderEvent $ev false, $statementSource, ); - } catch (InvalidArgumentException $exception) { + } catch (InvalidArgumentException) { return null; } @@ -62,8 +62,8 @@ public static function getFunctionReturnType(FunctionReturnTypeProviderEvent $ev private static function detectTypes( TemplatedStringParser $parser, array $functionCallArguments, - Context $context - ): ?Type\Union { + Context $context, + ): Type\Union|null { $templateWithoutPlaceholder = $parser->getTemplateWithoutPlaceholder(); if ($templateWithoutPlaceholder !== '') { @@ -88,8 +88,8 @@ private static function detectTypes( private static function detectReturnTypeWithConsideringFunctionCallArguments( array $placeholders, array $functionCallArguments, - Context $context - ): ?Type\Union { + Context $context, + ): Type\Union|null { if ($placeholders === [] || $functionCallArguments === []) { return null; } diff --git a/src/EventHandler/UnnecessaryFunctionCallValidator.php b/src/EventHandler/UnnecessaryFunctionCallValidator.php index 698440a..bca4db5 100644 --- a/src/EventHandler/UnnecessaryFunctionCallValidator.php +++ b/src/EventHandler/UnnecessaryFunctionCallValidator.php @@ -26,22 +26,14 @@ final class UnnecessaryFunctionCallValidator implements AfterEveryFunctionCallAn 'printf', ]; - /** @psalm-var non-empty-string */ - private string $functionName; - - /** @psalm-var non-empty-list */ - private array $arguments; - /** * @param non-empty-string $functionName * @param non-empty-list $arguments */ public function __construct( - string $functionName, - array $arguments + private string $functionName, + private array $arguments, ) { - $this->functionName = $functionName; - $this->arguments = $arguments; } public static function afterEveryFunctionCallAnalysis(AfterEveryFunctionCallAnalysisEvent $event): void @@ -83,7 +75,7 @@ private function assert( StatementsSource $statementsSource, CodeLocation $codeLocation, Context $context, - int $phpVersion + int $phpVersion, ): void { $template = $this->arguments[0]; @@ -96,7 +88,7 @@ private function assert( false, $statementsSource, ); - } catch (InvalidArgumentException $exception) { + } catch (InvalidArgumentException) { return; } @@ -108,7 +100,7 @@ private function assert( private function assertFunctionCallMakesSense( CodeLocation $codeLocation, - TemplatedStringParser $parsed + TemplatedStringParser $parsed, ): void { if ($parsed->getTemplate() !== $parsed->getTemplateWithoutPlaceholder()) { return; diff --git a/src/Parser/PhpParser/ArgumentValueParser.php b/src/Parser/PhpParser/ArgumentValueParser.php index ac2a998..0522ce3 100644 --- a/src/Parser/PhpParser/ArgumentValueParser.php +++ b/src/Parser/PhpParser/ArgumentValueParser.php @@ -22,16 +22,8 @@ final class ArgumentValueParser Provided argument contains an unparsable value of type "%s". EOT; - - private Expr $expr; - private Context $context; - private StatementsSource $statementsSource; - - private function __construct(Expr $expr, Context $context, StatementsSource $statementsSource) + private function __construct(private Expr $expr, private Context $context, private StatementsSource $statementsSource) { - $this->expr = $expr; - $this->context = $context; - $this->statementsSource = $statementsSource; } public static function create(Expr $expr, Context $context, StatementsSource $statementsSource): self diff --git a/src/Parser/PhpParser/ConstantTypeParser.php b/src/Parser/PhpParser/ConstantTypeParser.php index b76a0eb..1d7f0d4 100644 --- a/src/Parser/PhpParser/ConstantTypeParser.php +++ b/src/Parser/PhpParser/ConstantTypeParser.php @@ -15,11 +15,8 @@ final class ConstantTypeParser { private const BOOLEAN_FALSE = ['false']; - private Expr\ConstFetch $expr; - - private function __construct(Expr\ConstFetch $expr) + private function __construct(private Expr\ConstFetch $expr) { - $this->expr = $expr; } public static function parse(Expr\ConstFetch $expr): Union diff --git a/src/Parser/PhpParser/LiteralStringVariableInContextParser.php b/src/Parser/PhpParser/LiteralStringVariableInContextParser.php index 026724c..7221b13 100644 --- a/src/Parser/PhpParser/LiteralStringVariableInContextParser.php +++ b/src/Parser/PhpParser/LiteralStringVariableInContextParser.php @@ -14,11 +14,8 @@ final class LiteralStringVariableInContextParser { - private Expr\Variable $variable; - - private function __construct(Expr\Variable $variable) + private function __construct(private Expr\Variable $variable) { - $this->variable = $variable; } public static function parse(Expr\Variable $variable, Context $context, StatementsSource $statementsSource): string diff --git a/src/Parser/PhpParser/ReturnTypeParser.php b/src/Parser/PhpParser/ReturnTypeParser.php index 678f25c..b464a3a 100644 --- a/src/Parser/PhpParser/ReturnTypeParser.php +++ b/src/Parser/PhpParser/ReturnTypeParser.php @@ -19,27 +19,16 @@ use Psalm\Type\Union; use Webmozart\Assert\Assert; -use function get_class; use function is_string; use function sprintf; final class ReturnTypeParser { - private StatementsSource $statementsSource; - - private Context $context; - - /** @var FuncCall|StaticCall|MethodCall */ - private Expr $value; - /** * @param FuncCall|StaticCall|MethodCall $value */ - private function __construct(StatementsSource $statementsSource, Context $context, Expr $value) + private function __construct(private StatementsSource $statementsSource, private Context $context, private Expr $value) { - $this->statementsSource = $statementsSource; - $this->context = $context; - $this->value = $value; } /** @@ -48,7 +37,7 @@ private function __construct(StatementsSource $statementsSource, Context $contex public static function create( StatementsSource $statementsSource, Context $context, - Expr $value + Expr $value, ): self { return new self($statementsSource, $context, $value); } @@ -107,7 +96,7 @@ private function detectTypeFromStaticMethodCall(StaticCall $value): Union throw new InvalidArgumentException(sprintf( 'Expected `class` to be instance of `%s`: `%s` given.', Name::class, - get_class($class), + $class::class, )); } @@ -116,7 +105,7 @@ private function detectTypeFromStaticMethodCall(StaticCall $value): Union throw new InvalidArgumentException(sprintf( 'Expected `name` to be instance of `%s`: `%s` given.', Identifier::class, - get_class($method), + $method::class, )); } @@ -135,7 +124,7 @@ private function detectTypeFromMethodCall(MethodCall $value): Union throw new InvalidArgumentException(sprintf( 'Expected `name` to be instance of `%s`: `%s` given.', Identifier::class, - get_class($method), + $method::class, )); } @@ -175,7 +164,7 @@ private function detectClass(Expr $var): string throw new InvalidArgumentException(sprintf( 'Expected `class` to be instance of `%s`: `%s` given.', Name::class, - get_class($class), + $class::class, )); } @@ -212,6 +201,6 @@ private function detectClass(Expr $var): string return $className; } - throw new InvalidArgumentException(sprintf('Unable to parse class name from expression of type: %s', get_class($var))); + throw new InvalidArgumentException(sprintf('Unable to parse class name from expression of type: %s', $var::class)); } } diff --git a/src/Parser/PhpParser/StringableVariableInContextParser.php b/src/Parser/PhpParser/StringableVariableInContextParser.php index 92bc167..5c03bb1 100644 --- a/src/Parser/PhpParser/StringableVariableInContextParser.php +++ b/src/Parser/PhpParser/StringableVariableInContextParser.php @@ -17,11 +17,8 @@ final class StringableVariableInContextParser { - private Variable $variable; - - private function __construct(Variable $variable) + private function __construct(private Variable $variable) { - $this->variable = $variable; } public static function parse(Variable $variable, Context $context, StatementsSource $statementsSource): string diff --git a/src/Parser/PhpParser/VariableFromConstInContextParser.php b/src/Parser/PhpParser/VariableFromConstInContextParser.php index f8caf3e..032b991 100644 --- a/src/Parser/PhpParser/VariableFromConstInContextParser.php +++ b/src/Parser/PhpParser/VariableFromConstInContextParser.php @@ -25,21 +25,11 @@ final class VariableFromConstInContextParser { - /** @var ClassConstFetch|ConstFetch */ - private Expr $expr; - - private Context $context; - - private StatementsSource $statementsSource; - /** * @param ClassConstFetch|ConstFetch $expr */ - private function __construct(Expr $expr, Context $context, StatementsSource $statementsSource) + private function __construct(private Expr $expr, private Context $context, private StatementsSource $statementsSource) { - $this->expr = $expr; - $this->context = $context; - $this->statementsSource = $statementsSource; } /** @@ -48,7 +38,7 @@ private function __construct(Expr $expr, Context $context, StatementsSource $sta public static function parse( Expr $expr, Context $context, - StatementsSource $statementsSource + StatementsSource $statementsSource, ): string { return (new self($expr, $context, $statementsSource))->toString(); } @@ -115,7 +105,7 @@ private function parseConstant(ConstFetch $expr, Context $context): string * @param ClassConstFetch|ConstFetch $expr */ private function extractMostAccurateStringRepresentationOfType( - Union $type + Union $type, ): string { if ($type->isSingleStringLiteral()) { return $type->getSingleStringLiteral()->value; @@ -146,7 +136,7 @@ private function extractMostAccurateStringRepresentationOfType( */ private function extractMostAccurateStringRepresentationOfTypeFromNodeDataProvider( NodeDataProvider $nodeDataProvider, - Union $type + Union $type, ): string { $reflectionClass = new ReflectionClass($nodeDataProvider); if (! $reflectionClass->hasProperty('node_types')) { diff --git a/src/Parser/PhpParser/VariableTypeParser.php b/src/Parser/PhpParser/VariableTypeParser.php index 9d88d18..4d3a99a 100644 --- a/src/Parser/PhpParser/VariableTypeParser.php +++ b/src/Parser/PhpParser/VariableTypeParser.php @@ -13,11 +13,8 @@ final class VariableTypeParser { - private Expr\Variable $expr; - - private function __construct(Expr\Variable $expr) + private function __construct(private Expr\Variable $expr) { - $this->expr = $expr; } public static function parse(Expr\Variable $expr, Context $context): Union diff --git a/src/Parser/Psalm/PhpVersion.php b/src/Parser/Psalm/PhpVersion.php index ba098f5..71d69f9 100644 --- a/src/Parser/Psalm/PhpVersion.php +++ b/src/Parser/Psalm/PhpVersion.php @@ -10,15 +10,11 @@ final class PhpVersion { - /** @var positive-int */ - public int $versionId; - /** * @param positive-int $versionId */ - private function __construct(int $versionId) + private function __construct(public int $versionId) { - $this->versionId = $versionId; } public static function fromCodebase(Codebase $codebase): self diff --git a/src/Parser/Psalm/TypeParser.php b/src/Parser/Psalm/TypeParser.php index d0dabf3..34f57ec 100644 --- a/src/Parser/Psalm/TypeParser.php +++ b/src/Parser/Psalm/TypeParser.php @@ -8,11 +8,8 @@ final class TypeParser { - private Union $type; - - private function __construct(Union $type) + private function __construct(private Union $type) { - $this->type = $type; } public static function create(Union $type): self @@ -20,7 +17,7 @@ public static function create(Union $type): self return new self($type); } - public function stringify(): ?string + public function stringify(): string|null { $type = $this->type; diff --git a/src/Parser/TemplatedStringParser/Placeholder.php b/src/Parser/TemplatedStringParser/Placeholder.php index d591666..a5b9763 100644 --- a/src/Parser/TemplatedStringParser/Placeholder.php +++ b/src/Parser/TemplatedStringParser/Placeholder.php @@ -17,39 +17,25 @@ final class Placeholder { - /** @psalm-var positive-int */ - public int $position; - - /** @psalm-var non-empty-string */ - public string $value; - - private ?Union $argumentValueType; + private Union|null $argumentValueType; /** @var list */ private array $repeated = []; - private ?Union $type; - - private bool $allowIntegerForStringPlaceholder; - - private StatementsSource $statementsSource; + private Union|null $type; /** * @psalm-param non-empty-string $value * @psalm-param positive-int $position */ private function __construct( - string $value, - int $position, - bool $allowIntegerForStringPlaceholder, - StatementsSource $statementsSource + public string $value, + public int $position, + private bool $allowIntegerForStringPlaceholder, + private StatementsSource $statementsSource, ) { - $this->value = $value; - $this->position = $position; - $this->argumentValueType = null; - $this->type = null; - $this->allowIntegerForStringPlaceholder = $allowIntegerForStringPlaceholder; - $this->statementsSource = $statementsSource; + $this->argumentValueType = null; + $this->type = null; } /** @@ -83,7 +69,7 @@ public function stringifiedValueMayBeEmpty(array $functionCallArguments, Context /** * @psalm-param list $functionCallArguments */ - public function getArgumentType(array $functionCallArguments, Context $context): ?Union + public function getArgumentType(array $functionCallArguments, Context $context): Union|null { if ($this->argumentValueType) { return $this->argumentValueType; @@ -96,14 +82,14 @@ public function getArgumentType(array $functionCallArguments, Context $context): try { $this->argumentValueType = $this->getArgumentValueType($argument->value, $context); - } catch (InvalidArgumentException $exception) { + } catch (InvalidArgumentException) { return null; } return $this->argumentValueType; } - private function stringify(Union $type): ?string + private function stringify(Union $type): string|null { return TypeParser::create($type)->stringify(); } @@ -132,7 +118,7 @@ public function withRepeatedPlaceholder(Placeholder $placeholder): self return $instance; } - public function getSuggestedType(): ?Union + public function getSuggestedType(): Union|null { if ($this->type) { return $this->type; @@ -140,7 +126,7 @@ public function getSuggestedType(): ?Union try { $type = SpecifierTypeGenerator::create($this->value, $this->allowIntegerForStringPlaceholder)->getSuggestedType(); - } catch (InvalidArgumentException $exception) { + } catch (InvalidArgumentException) { return null; } diff --git a/src/Parser/TemplatedStringParser/SpecifierTypeGenerator.php b/src/Parser/TemplatedStringParser/SpecifierTypeGenerator.php index f9e054e..f9bc0fe 100644 --- a/src/Parser/TemplatedStringParser/SpecifierTypeGenerator.php +++ b/src/Parser/TemplatedStringParser/SpecifierTypeGenerator.php @@ -20,15 +20,12 @@ final class SpecifierTypeGenerator /** @psalm-var non-empty-string */ private string $specifier; - private bool $allowIntegerForStringPlaceholder; - /** * @psalm-param non-empty-string $specifier */ - private function __construct(string $specifier, bool $allowIntegerForStringPlaceholder) + private function __construct(string $specifier, private bool $allowIntegerForStringPlaceholder) { - $this->specifier = $this->parse($specifier); - $this->allowIntegerForStringPlaceholder = $allowIntegerForStringPlaceholder; + $this->specifier = $this->parse($specifier); } /** diff --git a/src/Parser/TemplatedStringParser/TemplatedStringParser.php b/src/Parser/TemplatedStringParser/TemplatedStringParser.php index 045d0e4..7e2bc45 100644 --- a/src/Parser/TemplatedStringParser/TemplatedStringParser.php +++ b/src/Parser/TemplatedStringParser/TemplatedStringParser.php @@ -41,24 +41,18 @@ final class TemplatedStringParser /** @psalm-var array */ private array $placeholders; - private string $template; - - private StatementsSource $statementsSource; - /** * @psalm-param positive-int $phpVersion */ private function __construct( string $functionName, - string $template, + private string $template, int $phpVersion, bool $allowIntegerForStringPlaceholder, - StatementsSource $statementsSource + private StatementsSource $statementsSource, ) { - $this->template = $template; $this->templateWithoutPlaceholder = $template; $this->placeholders = []; - $this->statementsSource = $statementsSource; $this->parse($functionName, $template, $phpVersion, $allowIntegerForStringPlaceholder); } @@ -66,7 +60,7 @@ private function parse( string $functionName, string $template, int $phpVersion, - bool $allowIntegerForStringPlaceholder + bool $allowIntegerForStringPlaceholder, ): void { $additionalSpecifierDependingOnPhpVersion = ''; if ($phpVersion >= 80000) { @@ -96,7 +90,7 @@ private function parse( $potentialPlaceholders, /** @param array{before:array{0:string}} $placeholder */ static function ( - array $placeholder + array $placeholder, ): bool { $patternPrefix = $placeholder['before'][0]; @@ -165,7 +159,7 @@ public static function fromArgument( Context $context, int $phpVersion, bool $allowIntegerForStringPlaceholder, - StatementsSource $statementsSource + StatementsSource $statementsSource, ): self { return new self( $functionName, diff --git a/src/Plugin.php b/src/Plugin.php index bd177ae..8c1ff75 100644 --- a/src/Plugin.php +++ b/src/Plugin.php @@ -26,7 +26,7 @@ final class Plugin implements PluginEntryPointInterface 'ReportUnnecessaryFunctionCalls' => UnnecessaryFunctionCallValidator::class, ]; - public function __invoke(RegistrationInterface $registration, ?SimpleXMLElement $config = null): void + public function __invoke(RegistrationInterface $registration, SimpleXMLElement|null $config = null): void { require_once __DIR__ . '/EventHandler/SprintfFunctionReturnProvider.php'; require_once __DIR__ . '/EventHandler/PrintfFunctionArgumentValidator.php'; @@ -65,7 +65,7 @@ private function registerExperimentalHooks(RegistrationInterface $registration, private function registerFeatureHook( RegistrationInterface $registration, string $featureName, - array $options + array $options, ): void { $eventHandlerClassName = self::EXPERIMENTAL_FEATURES[$featureName]; diff --git a/src/Psalm/Issue/PossiblyInvalidArgument.php b/src/Psalm/Issue/PossiblyInvalidArgument.php index 2c34df3..8332b3d 100644 --- a/src/Psalm/Issue/PossiblyInvalidArgument.php +++ b/src/Psalm/Issue/PossiblyInvalidArgument.php @@ -11,12 +11,12 @@ final class PossiblyInvalidArgument extends PluginIssue { - public ?string $function_id; + public string|null $function_id; public function __construct( string $message, CodeLocation $code_location, - ?string $function_id = null + string|null $function_id = null, ) { parent::__construct($message, $code_location); diff --git a/src/Psalm/Issue/TooFewArguments.php b/src/Psalm/Issue/TooFewArguments.php index 1afb783..e8811c9 100644 --- a/src/Psalm/Issue/TooFewArguments.php +++ b/src/Psalm/Issue/TooFewArguments.php @@ -11,12 +11,12 @@ final class TooFewArguments extends PluginIssue { - public ?string $function_id; + public string|null $function_id; public function __construct( string $message, CodeLocation $code_location, - ?string $function_id = null + string|null $function_id = null, ) { parent::__construct($message, $code_location); diff --git a/src/Psalm/Issue/TooManyArguments.php b/src/Psalm/Issue/TooManyArguments.php index c13383a..fb0b8de 100644 --- a/src/Psalm/Issue/TooManyArguments.php +++ b/src/Psalm/Issue/TooManyArguments.php @@ -11,12 +11,12 @@ final class TooManyArguments extends PluginIssue { - public ?string $function_id; + public string|null $function_id; public function __construct( string $message, CodeLocation $code_location, - ?string $function_id = null + string|null $function_id = null, ) { parent::__construct($message, $code_location); diff --git a/src/Psalm/Issue/UnnecessaryFunctionCall.php b/src/Psalm/Issue/UnnecessaryFunctionCall.php index aff8dd4..9edd56c 100644 --- a/src/Psalm/Issue/UnnecessaryFunctionCall.php +++ b/src/Psalm/Issue/UnnecessaryFunctionCall.php @@ -9,15 +9,11 @@ final class UnnecessaryFunctionCall extends PluginIssue { - public string $function_id; - - public function __construct(CodeLocation $code_location, string $function_id) + public function __construct(CodeLocation $code_location, public string $function_id) { parent::__construct( 'Function call is unnecessary as there is no placeholder within the template.', $code_location, ); - - $this->function_id = $function_id; } }