diff --git a/Build/Scripts/annotationChecker.php b/Build/Scripts/annotationChecker.php index b5933e24f685a11b65c87badcb4e2e71604cf24a..be593104f35fcf56c70e473493cc4f2f3402abbd 100755 --- a/Build/Scripts/annotationChecker.php +++ b/Build/Scripts/annotationChecker.php @@ -22,6 +22,7 @@ use PhpParser\Node; use PhpParser\NodeTraverser; use PhpParser\NodeVisitorAbstract; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use Symfony\Component\Console\Output\ConsoleOutput; require_once __DIR__ . '/../../vendor/autoload.php'; @@ -102,7 +103,7 @@ class NodeVisitor extends NodeVisitorAbstract } } -$parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); +$parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $finder = new Symfony\Component\Finder\Finder(); $finder->files() diff --git a/Build/Scripts/checkNamespaceIntegrity.php b/Build/Scripts/checkNamespaceIntegrity.php index 432f45dfb3fa71a2b1a288e1f4026402c9aae04f..a38086cc09d984ad933561b23e58edf09f391e95 100755 --- a/Build/Scripts/checkNamespaceIntegrity.php +++ b/Build/Scripts/checkNamespaceIntegrity.php @@ -1,5 +1,6 @@ #!/usr/bin/env php <?php + declare(strict_types=1); /* @@ -20,6 +21,7 @@ use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\NodeVisitorAbstract; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use Symfony\Component\Finder\Finder; if (PHP_SAPI !== 'cli') { @@ -42,7 +44,7 @@ class CheckNamespaceIntegrity 'typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/Fixtures/PropertyExistsStaticMatcherFixture.php', ]; $ignoreNamespaceParts = ['Classes']; - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $files = $this->createFinder(); $invalidNamespaces = []; foreach ($files as $file) { diff --git a/Build/Scripts/splitAcceptanceTests.php b/Build/Scripts/splitAcceptanceTests.php index a936d96bc576a05283f9985a844b164b40a150f8..f6327dd61c63476a7be583edb8354e4bfd37715d 100755 --- a/Build/Scripts/splitAcceptanceTests.php +++ b/Build/Scripts/splitAcceptanceTests.php @@ -21,6 +21,7 @@ use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\NodeVisitorAbstract; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use Symfony\Component\Console\Input\ArgvInput; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputDefinition; @@ -93,7 +94,7 @@ class SplitAcceptanceTests extends NodeVisitorAbstract ->sortByName() ; - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $testStats = []; foreach ($testFiles as $file) { /** @var $file SplFileInfo */ diff --git a/Build/Scripts/splitFunctionalTests.php b/Build/Scripts/splitFunctionalTests.php index cac63e15524e98f96b0411eb261caaa5a9de4cda..ff81f33f69f0b8154c5ad0623a51cedf3bd729c2 100755 --- a/Build/Scripts/splitFunctionalTests.php +++ b/Build/Scripts/splitFunctionalTests.php @@ -1,5 +1,6 @@ #!/usr/bin/env php <?php + declare(strict_types=1); /* @@ -20,6 +21,7 @@ use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\NodeVisitorAbstract; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use Symfony\Component\Console\Input\ArgvInput; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputDefinition; @@ -84,7 +86,7 @@ class SplitFunctionalTests ->sortByName() ; - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $testStats = []; foreach ($testFiles as $file) { /** @var $file SplFileInfo */ diff --git a/Build/Scripts/testClassFinalChecker.php b/Build/Scripts/testClassFinalChecker.php index f3e79ced6d8cf20a4048ef423acd86381b38a14c..e429c5a688017fabc6871a22eab0deb5dfc56be5 100644 --- a/Build/Scripts/testClassFinalChecker.php +++ b/Build/Scripts/testClassFinalChecker.php @@ -6,6 +6,7 @@ use PhpParser\Node; use PhpParser\NodeTraverser; use PhpParser\NodeVisitorAbstract; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use Symfony\Component\Console\Output\ConsoleOutput; require_once __DIR__ . '/../../vendor/autoload.php'; @@ -25,7 +26,7 @@ class NodeVisitor extends NodeVisitorAbstract } } -$parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); +$parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $finder = new Symfony\Component\Finder\Finder(); $finder->files() diff --git a/Build/Scripts/testMethodPrefixChecker.php b/Build/Scripts/testMethodPrefixChecker.php index c9dea214062bae22282f1574a011c1c2edf19e35..ef71201e2874d51017860fa92fd6f7fa602555dd 100644 --- a/Build/Scripts/testMethodPrefixChecker.php +++ b/Build/Scripts/testMethodPrefixChecker.php @@ -6,6 +6,7 @@ use PhpParser\Node; use PhpParser\NodeTraverser; use PhpParser\NodeVisitorAbstract; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use Symfony\Component\Console\Output\ConsoleOutput; require_once __DIR__ . '/../../vendor/autoload.php'; @@ -30,7 +31,7 @@ class NodeVisitor extends NodeVisitorAbstract } } -$parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); +$parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $finder = new Symfony\Component\Finder\Finder(); $finder->files() diff --git a/Build/phpstan/phpstan-baseline.neon b/Build/phpstan/phpstan-baseline.neon index 1063811815f61d7adb583e46c3b83ce23e7058de..68512fd1a03d52c5ac06879a4e9665c3331b8e81 100644 --- a/Build/phpstan/phpstan-baseline.neon +++ b/Build/phpstan/phpstan-baseline.neon @@ -1960,131 +1960,21 @@ parameters: count: 1 path: ../../typo3/sysext/indexed_search/Classes/Indexer.php - - - message: "#^Method TYPO3\\\\CMS\\\\Install\\\\ExtensionScanner\\\\Php\\\\CodeStatistics\\:\\:enterNode\\(\\) should return int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/CodeStatistics.php - - - - message: "#^Method TYPO3\\\\CMS\\\\Install\\\\ExtensionScanner\\\\Php\\\\Matcher\\\\ArrayDimensionMatcher\\:\\:enterNode\\(\\) should return int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ArrayDimensionMatcher.php - - - - message: "#^Method TYPO3\\\\CMS\\\\Install\\\\ExtensionScanner\\\\Php\\\\Matcher\\\\ArrayGlobalMatcher\\:\\:enterNode\\(\\) should return int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ArrayGlobalMatcher.php - - - - message: "#^Method TYPO3\\\\CMS\\\\Install\\\\ExtensionScanner\\\\Php\\\\Matcher\\\\ClassConstantMatcher\\:\\:enterNode\\(\\) should return int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ClassConstantMatcher.php - - - - message: "#^Method TYPO3\\\\CMS\\\\Install\\\\ExtensionScanner\\\\Php\\\\Matcher\\\\ClassNameMatcher\\:\\:enterNode\\(\\) should return int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ClassNameMatcher.php - - - - message: "#^Method TYPO3\\\\CMS\\\\Install\\\\ExtensionScanner\\\\Php\\\\Matcher\\\\ConstantMatcher\\:\\:enterNode\\(\\) should return int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ConstantMatcher.php - - - - message: "#^Property PhpParser\\\\Node\\\\Expr\\\\New_\\:\\:\\$class \\(PhpParser\\\\Node\\\\Expr\\|PhpParser\\\\Node\\\\Name\\|PhpParser\\\\Node\\\\Stmt\\\\Class_\\) in isset\\(\\) is not nullable\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ConstructorArgumentMatcher.php - - message: "#^Result of \\|\\| is always true\\.$#" count: 1 path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ConstructorArgumentMatcher.php - - - message: "#^Method TYPO3\\\\CMS\\\\Install\\\\ExtensionScanner\\\\Php\\\\Matcher\\\\FunctionCallMatcher\\:\\:enterNode\\(\\) should return int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/FunctionCallMatcher.php - - - - message: "#^Property PhpParser\\\\Node\\\\Expr\\\\MethodCall\\:\\:\\$args \\(array\\<PhpParser\\\\Node\\\\Arg\\|PhpParser\\\\Node\\\\VariadicPlaceholder\\>\\) in isset\\(\\) is not nullable\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/InterfaceMethodChangedMatcher.php - - - - message: "#^Property PhpParser\\\\Node\\\\Stmt\\\\ClassMethod\\:\\:\\$params \\(array\\<PhpParser\\\\Node\\\\Param\\>\\) in isset\\(\\) is not nullable\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/InterfaceMethodChangedMatcher.php - - message: "#^Right side of && is always true\\.$#" count: 2 path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/InterfaceMethodChangedMatcher.php - - - message: "#^Method TYPO3\\\\CMS\\\\Install\\\\ExtensionScanner\\\\Php\\\\Matcher\\\\MethodAnnotationMatcher\\:\\:enterNode\\(\\) should return int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodAnnotationMatcher.php - - - - message: "#^Method TYPO3\\\\CMS\\\\Install\\\\ExtensionScanner\\\\Php\\\\Matcher\\\\MethodArgumentDroppedMatcher\\:\\:enterNode\\(\\) should return int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentDroppedMatcher.php - - - - message: "#^Method TYPO3\\\\CMS\\\\Install\\\\ExtensionScanner\\\\Php\\\\Matcher\\\\MethodArgumentDroppedStaticMatcher\\:\\:enterNode\\(\\) should return int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentDroppedStaticMatcher.php - - - - message: "#^Method TYPO3\\\\CMS\\\\Install\\\\ExtensionScanner\\\\Php\\\\Matcher\\\\MethodArgumentRequiredMatcher\\:\\:enterNode\\(\\) should return int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentRequiredMatcher.php - - - - message: "#^Method TYPO3\\\\CMS\\\\Install\\\\ExtensionScanner\\\\Php\\\\Matcher\\\\MethodArgumentRequiredStaticMatcher\\:\\:enterNode\\(\\) should return int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentRequiredStaticMatcher.php - - - - message: "#^Method TYPO3\\\\CMS\\\\Install\\\\ExtensionScanner\\\\Php\\\\Matcher\\\\MethodArgumentUnusedMatcher\\:\\:enterNode\\(\\) should return int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentUnusedMatcher.php - - message: "#^Result of \\|\\| is always true\\.$#" count: 1 path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentUnusedMatcher.php - - - message: "#^Method TYPO3\\\\CMS\\\\Install\\\\ExtensionScanner\\\\Php\\\\Matcher\\\\MethodCallMatcher\\:\\:enterNode\\(\\) should return int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodCallMatcher.php - - - - message: "#^Method TYPO3\\\\CMS\\\\Install\\\\ExtensionScanner\\\\Php\\\\Matcher\\\\MethodCallStaticMatcher\\:\\:enterNode\\(\\) should return int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodCallStaticMatcher.php - - - - message: "#^Method TYPO3\\\\CMS\\\\Install\\\\ExtensionScanner\\\\Php\\\\Matcher\\\\PropertyAnnotationMatcher\\:\\:enterNode\\(\\) should return int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyAnnotationMatcher.php - - - - message: "#^Method TYPO3\\\\CMS\\\\Install\\\\ExtensionScanner\\\\Php\\\\Matcher\\\\PropertyExistsStaticMatcher\\:\\:enterNode\\(\\) should return int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyExistsStaticMatcher.php - - - - message: "#^Method TYPO3\\\\CMS\\\\Install\\\\ExtensionScanner\\\\Php\\\\Matcher\\\\PropertyProtectedMatcher\\:\\:enterNode\\(\\) should return int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyProtectedMatcher.php - - - - message: "#^Method TYPO3\\\\CMS\\\\Install\\\\ExtensionScanner\\\\Php\\\\Matcher\\\\PropertyPublicMatcher\\:\\:enterNode\\(\\) should return int\\|PhpParser\\\\Node\\|null but return statement is missing\\.$#" - count: 1 - path: ../../typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyPublicMatcher.php - - message: "#^Offset string on array\\{\\} on left side of \\?\\? does not exist\\.$#" count: 2 diff --git a/composer.json b/composer.json index 8f315c926cde71565b78c71451baed0def5213d3..a22035c4fced2740404823be056c4550a028fbc1 100644 --- a/composer.json +++ b/composer.json @@ -62,7 +62,7 @@ "guzzlehttp/psr7": "^2.5.0", "lolli42/finediff": "^1.1.0", "masterminds/html5": "^2.7.6", - "nikic/php-parser": "^4.15.4", + "nikic/php-parser": "^5.0.1", "phpdocumentor/reflection-docblock": "^5.2", "phpdocumentor/type-resolver": "^1.7.1", "psr/container": "^2.0", diff --git a/composer.lock b/composer.lock index c7bbba90fd02dcdefb4d6217956edbdd5422bbe5..60033431e3bd79cb5d842b5fa20a10645c64cba2 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": "e0ada02f73054317e3d43d2ece1dec48", + "content-hash": "279577a4c4ca051c8fb951f61af96169", "packages": [ { "name": "bacon/bacon-qr-code", @@ -1274,25 +1274,27 @@ }, { "name": "nikic/php-parser", - "version": "v4.18.0", + "version": "v5.0.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999" + "reference": "2218c2252c874a4624ab2f613d86ac32d227bc69" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999", - "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/2218c2252c874a4624ab2f613d86ac32d227bc69", + "reference": "2218c2252c874a4624ab2f613d86ac32d227bc69", "shasum": "" }, "require": { + "ext-ctype": "*", + "ext-json": "*", "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.4" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "bin": [ "bin/php-parse" @@ -1300,7 +1302,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.9-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -1324,9 +1326,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.1" }, - "time": "2023-12-10T21:03:43+00:00" + "time": "2024-02-21T19:24:10+00:00" }, { "name": "phpdocumentor/reflection-common", diff --git a/typo3/sysext/install/Classes/Controller/UpgradeController.php b/typo3/sysext/install/Classes/Controller/UpgradeController.php index 5926f49e1696758e2fd5c50793857d2785ab694b..28329b0c8832c7a69fa1eefb4d74e3aaa50e2446 100644 --- a/typo3/sysext/install/Classes/Controller/UpgradeController.php +++ b/typo3/sysext/install/Classes/Controller/UpgradeController.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Controller; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Symfony\Component\Finder\Finder; @@ -738,7 +739,7 @@ class UpgradeController extends AbstractController ); } - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); // Parse PHP file to AST and traverse tree calling visitors $statements = $parser->parse(file_get_contents($absoluteFilePath)); diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/CodeStatistics.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/CodeStatistics.php index 79e23a4daa2d881cb4586755b0100d10e4581fba..bcb31ce6ac18893f4a68aa5cf6c57a8dc467fc39 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/CodeStatistics.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/CodeStatistics.php @@ -50,10 +50,8 @@ class CodeStatistics extends NodeVisitorAbstract /** * Called by PhpParser during traversal. - * - * @param Node $node Incoming node */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { $startLineOfNode = $node->getAttribute('startLine'); if ($startLineOfNode !== $this->currentLineNumber) { @@ -84,6 +82,7 @@ class CodeStatistics extends NodeVisitorAbstract } } } + return null; } /** diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ArrayDimensionMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ArrayDimensionMatcher.php index e417026916510ada11169c69bbbe605f2a070750..ce607fbb02f2dfce4839c5650eaa5f991f3bfd63 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ArrayDimensionMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ArrayDimensionMatcher.php @@ -44,7 +44,7 @@ class ArrayDimensionMatcher extends AbstractCoreMatcher /** * Called by PhpParser. */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { if (!$this->isFileIgnored($node) && !$this->isLineIgnored($node) @@ -64,6 +64,7 @@ class ArrayDimensionMatcher extends AbstractCoreMatcher } $this->matches[] = $match; } + return null; } /** diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ArrayGlobalMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ArrayGlobalMatcher.php index e1fe3b437e112347e5d3b4e03946ac64f2c64bf9..110d5ed496770f57147d71e40257d7f7ebb85f06 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ArrayGlobalMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ArrayGlobalMatcher.php @@ -43,7 +43,7 @@ class ArrayGlobalMatcher extends AbstractCoreMatcher /** * Called by PhpParser. */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { if (!$this->isFileIgnored($node) && !$this->isLineIgnored($node) @@ -60,5 +60,6 @@ class ArrayGlobalMatcher extends AbstractCoreMatcher 'indicator' => 'strong', ]; } + return null; } } diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ClassConstantMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ClassConstantMatcher.php index bc941e958037da8b9f6ad3432c2333c346e63725..45814e58351dfe42c9deebde2c7e5f917750ff90 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ClassConstantMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ClassConstantMatcher.php @@ -43,7 +43,7 @@ class ClassConstantMatcher extends AbstractCoreMatcher /** * Called by PhpParser. */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { if (!$this->isFileIgnored($node) && !$this->isLineIgnored($node) @@ -59,5 +59,6 @@ class ClassConstantMatcher extends AbstractCoreMatcher 'indicator' => 'strong', ]; } + return null; } } diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ClassNameMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ClassNameMatcher.php index e3860ffaf2f0baf69e3b25856a3894f63fd85c26..8bd356753e17295effb5a7baa869c6f15f3c760a 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ClassNameMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ClassNameMatcher.php @@ -42,7 +42,7 @@ class ClassNameMatcher extends AbstractCoreMatcher * * @param Node $node Given node to test */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { if (!$this->isFileIgnored($node) && !$this->isLineIgnored($node) @@ -58,5 +58,6 @@ class ClassNameMatcher extends AbstractCoreMatcher ]; } } + return null; } } diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ConstantMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ConstantMatcher.php index 1042c68f82d59e4cd99fa1a79af2329de9b55db4..fba38eb1ad8bb7c5a7d89cc513b0be62fe96ed58 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ConstantMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ConstantMatcher.php @@ -42,7 +42,7 @@ class ConstantMatcher extends AbstractCoreMatcher /** * Called by PhpParser. */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { if (!$this->isFileIgnored($node) && !$this->isLineIgnored($node) @@ -57,5 +57,6 @@ class ConstantMatcher extends AbstractCoreMatcher 'indicator' => 'strong', ]; } + return null; } } diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ConstructorArgumentMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ConstructorArgumentMatcher.php index 4ba3ca58e8c203a23c4887d2e87d8cf3230ba944..d2979bb353edb4efaa06eec20c0845d84cd600c7 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ConstructorArgumentMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/ConstructorArgumentMatcher.php @@ -59,10 +59,8 @@ class ConstructorArgumentMatcher extends AbstractCoreMatcher /** * Called by PhpParser. * Test for "->deprecated()" (weak match) - * - * @return void|null */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { if ($this->isFileIgnored($node) || $this->isLineIgnored($node)) { return null; @@ -88,6 +86,7 @@ class ConstructorArgumentMatcher extends AbstractCoreMatcher $this->handleDroppedArguments($node, $resolvedNode); $this->handleCalledArguments($node, $resolvedNode); $this->handleUnusedArguments($node, $resolvedNode); + return null; } /** diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/FunctionCallMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/FunctionCallMatcher.php index 7507c20bb8012b67a2a11c2c18cd44fbe51c6029..cd83f14aa22d704cd2eae22bbfc7fa8d91caf9f4 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/FunctionCallMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/FunctionCallMatcher.php @@ -43,7 +43,7 @@ class FunctionCallMatcher extends AbstractCoreMatcher * Called by PhpParser. * Test for "removedFunction()" (strong match) */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { // Match method call (not static) if (!$this->isFileIgnored($node) @@ -70,5 +70,6 @@ class FunctionCallMatcher extends AbstractCoreMatcher ]; } } + return null; } } diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/InterfaceMethodChangedMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/InterfaceMethodChangedMatcher.php index 7efde9c95b33e176a803c0cb3900a529fd86eaad..85cda192d8302a989df8c54db4a4fd7d11e1de39 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/InterfaceMethodChangedMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/InterfaceMethodChangedMatcher.php @@ -49,13 +49,11 @@ class InterfaceMethodChangedMatcher extends AbstractCoreMatcher * Called by PhpParser. * Test for "public function like($arg1, $arg2, $arg3) {}" (weak match) * Test for "->like($arg1, $arg2, $arg3); (weak match) - * - * @return void|null */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { if ($this->isFileIgnored($node) || $this->isLineIgnored($node)) { - return; + return null; } // Match method name of a class, must be public, wouldn't make sense as interface if protected/private @@ -100,5 +98,6 @@ class InterfaceMethodChangedMatcher extends AbstractCoreMatcher ]; } } + return null; } } diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodAnnotationMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodAnnotationMatcher.php index d3657985abe599c5b625775603911bf6db29ee18..c45bb243ae9bcca1097c7d14d7f904d48be3b2bd 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodAnnotationMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodAnnotationMatcher.php @@ -42,7 +42,7 @@ class MethodAnnotationMatcher extends AbstractCoreMatcher * Called by PhpParser. * Test for method annotations (strong match) */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { if ($node instanceof ClassMethod && ($docComment = $node->getDocComment()) instanceof Doc @@ -82,5 +82,6 @@ class MethodAnnotationMatcher extends AbstractCoreMatcher $this->matches[] = $match; } } + return null; } } diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentDroppedMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentDroppedMatcher.php index 8adf6a7217f0eb0fb1833feeafd4b5b60d3354be..dece010c51a9efd8fddfdc048d3439759e968892 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentDroppedMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentDroppedMatcher.php @@ -45,7 +45,7 @@ class MethodArgumentDroppedMatcher extends AbstractCoreMatcher * Called by PhpParser. * Test for "->deprecated()" (weak match) */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { // Match method call (not static) if (!$this->isFileIgnored($node) @@ -78,5 +78,6 @@ class MethodArgumentDroppedMatcher extends AbstractCoreMatcher $this->matches[] = $match; } } + return null; } } diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentDroppedStaticMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentDroppedStaticMatcher.php index 4d5d3016311cc4c1f139a444ed6fe5abe8d2be2d..6a7cfab81c2e66d2fb2e2844a43dad6451a6e227 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentDroppedStaticMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentDroppedStaticMatcher.php @@ -45,7 +45,7 @@ class MethodArgumentDroppedStaticMatcher extends AbstractCoreMatcher * Called by PhpParser. * Test for "->deprecated()" (weak match) */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { // Match static method call if (!$this->isFileIgnored($node) @@ -98,5 +98,6 @@ class MethodArgumentDroppedStaticMatcher extends AbstractCoreMatcher } } } + return null; } } diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentRequiredMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentRequiredMatcher.php index 04cc2fb20ff76f8e42b84bae80694b4a2e0d7d28..9e1d0acdc6ffb206d2bb68f165f25b6b2e02d68e 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentRequiredMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentRequiredMatcher.php @@ -44,7 +44,7 @@ class MethodArgumentRequiredMatcher extends AbstractCoreMatcher * Called by PhpParser. * Test for "->deprecated()" (weak match) */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { // Match method call (not static) if (!$this->isFileIgnored($node) @@ -78,5 +78,6 @@ class MethodArgumentRequiredMatcher extends AbstractCoreMatcher $this->matches[] = $match; } } + return null; } } diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentRequiredStaticMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentRequiredStaticMatcher.php index f379fc616654f11fbfee56cac24a0429423cbc3d..18188819dccbf97ce831a1a46ebf72a9ff2ef1a5 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentRequiredStaticMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentRequiredStaticMatcher.php @@ -45,7 +45,7 @@ class MethodArgumentRequiredStaticMatcher extends AbstractCoreMatcher * Called by PhpParser. * Test for "::function($1, $2, $3)" (strong match) */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { // Match static method call if (!$this->isFileIgnored($node) @@ -103,5 +103,6 @@ class MethodArgumentRequiredStaticMatcher extends AbstractCoreMatcher } } } + return null; } } diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentUnusedMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentUnusedMatcher.php index 92c4c009651a3825157aefefc038b350b8a4ce71..5221a501b14b0b98ea85f6df1ba15c38e7ffd437 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentUnusedMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodArgumentUnusedMatcher.php @@ -46,7 +46,7 @@ class MethodArgumentUnusedMatcher extends AbstractCoreMatcher /** * Called by PhpParser. */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { // Match method call (not static) if (!$this->isFileIgnored($node) @@ -85,5 +85,6 @@ class MethodArgumentUnusedMatcher extends AbstractCoreMatcher $this->matches[] = $match; } } + return null; } } diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodCallMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodCallMatcher.php index 257ea6f9a64d062cc596ff94f0da44abefb3df08..c90a234684e494eb272d4207d30439852d633cad 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodCallMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodCallMatcher.php @@ -44,7 +44,7 @@ class MethodCallMatcher extends AbstractCoreMatcher * Called by PhpParser. * Test for "->deprecated()" (weak match) */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { // Match method call (not static) if (!$this->isFileIgnored($node) @@ -78,5 +78,6 @@ class MethodCallMatcher extends AbstractCoreMatcher $this->matches[] = $match; } } + return null; } } diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodCallStaticMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodCallStaticMatcher.php index 6bec4df25587736d53446ad34028e4b003de90d2..196785b11c75295087dd470e606c0f45a4c081b0 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodCallStaticMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/MethodCallStaticMatcher.php @@ -53,7 +53,7 @@ class MethodCallStaticMatcher extends AbstractCoreMatcher * Test for "foo\bar::deprecated()" (strong match) * Test for "::deprecated()" (weak match) */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { // Static call, not method call if (!$this->isFileIgnored($node) @@ -101,5 +101,6 @@ class MethodCallStaticMatcher extends AbstractCoreMatcher } } } + return null; } } diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyAnnotationMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyAnnotationMatcher.php index 1b484e2dcc6707f1795e50c35d54b25a6c11f19c..762a876de8da81c538d655e27430bdbc9a9d8e6c 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyAnnotationMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyAnnotationMatcher.php @@ -19,8 +19,8 @@ namespace TYPO3\CMS\Install\ExtensionScanner\Php\Matcher; use PhpParser\Comment\Doc; use PhpParser\Node; +use PhpParser\Node\PropertyItem; use PhpParser\Node\Stmt\Property; -use PhpParser\Node\Stmt\PropertyProperty; /** * Find usages of property annotations @@ -43,15 +43,15 @@ class PropertyAnnotationMatcher extends AbstractCoreMatcher * Called by PhpParser. * Test for property annotations (strong match) */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { if ($node instanceof Property - && ($property = reset($node->props)) instanceof PropertyProperty + && ($property = reset($node->props)) instanceof PropertyItem && ($docComment = $node->getDocComment()) instanceof Doc && !$this->isFileIgnored($node) && !$this->isLineIgnored($node) ) { - /** @var PropertyProperty $property */ + /** @var PropertyItem $property */ $isPossibleMatch = false; $match = [ 'restFiles' => [], @@ -85,5 +85,6 @@ class PropertyAnnotationMatcher extends AbstractCoreMatcher $this->matches[] = $match; } } + return null; } } diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyExistsStaticMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyExistsStaticMatcher.php index 4956c1d011fcbc708df8e13249346acf5f009f93..638540f7d9c709f7210a7af179fd4286a7f427cf 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyExistsStaticMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyExistsStaticMatcher.php @@ -41,7 +41,7 @@ class PropertyExistsStaticMatcher extends AbstractCoreMatcher /** * Called by PhpParser. */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { if (!$this->isFileIgnored($node) && !$this->isLineIgnored($node) @@ -59,5 +59,6 @@ class PropertyExistsStaticMatcher extends AbstractCoreMatcher ]; $this->matches[] = $match; } + return null; } } diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyProtectedMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyProtectedMatcher.php index c631e3e9e56876abec3afdbfa4368fac44bea036..59311bdc5b1461dc8b31315f9f8feb284bf2dda2 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyProtectedMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyProtectedMatcher.php @@ -43,7 +43,7 @@ class PropertyProtectedMatcher extends AbstractCoreMatcher /** * Called by PhpParser. */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { if (!$this->isFileIgnored($node) && !$this->isLineIgnored($node) @@ -64,5 +64,6 @@ class PropertyProtectedMatcher extends AbstractCoreMatcher } $this->matches[] = $match; } + return null; } } diff --git a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyPublicMatcher.php b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyPublicMatcher.php index 415183f54315f4079a9caf14b56c25aaa71046e7..cc51419448999e94c4ba6d9e1adf1fde0c31696d 100644 --- a/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyPublicMatcher.php +++ b/typo3/sysext/install/Classes/ExtensionScanner/Php/Matcher/PropertyPublicMatcher.php @@ -42,7 +42,7 @@ class PropertyPublicMatcher extends AbstractCoreMatcher /** * Called by PhpParser. */ - public function enterNode(Node $node) + public function enterNode(Node $node): null { // Match property access (not static) if (!$this->isFileIgnored($node) @@ -63,5 +63,6 @@ class PropertyPublicMatcher extends AbstractCoreMatcher } $this->matches[] = $match; } + return null; } } diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/CodeStatisticsTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/CodeStatisticsTest.php index f35a8867e4ec8e25025be5a4c6630e9908f22289..268f1e386c8504bfc6d48cb873c4a1f89d68707c 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/CodeStatisticsTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/CodeStatisticsTest.php @@ -19,6 +19,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php; use PhpParser\NodeTraverser; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\CodeStatistics; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -28,7 +29,7 @@ final class CodeStatisticsTest extends UnitTestCase #[Test] public function enterNodeSumsStatistics(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/CodeStatisticsFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/GeneratorClassesResolverTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/GeneratorClassesResolverTest.php index 3aa535367c6ffa6ef7099e8289c14a2caf065163..f4d3368c369a7244ae586c20cefe3161d04f61a5 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/GeneratorClassesResolverTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/GeneratorClassesResolverTest.php @@ -24,6 +24,7 @@ use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Name\FullyQualified; use PhpParser\NodeTraverser; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\AbstractCoreMatcher; @@ -38,7 +39,7 @@ final class GeneratorClassesResolverTest extends UnitTestCase <?php \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Does\\Not\\Exist'); EOC; - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $statements = $parser->parse($phpCode); $traverser = new NodeTraverser(); $traverser->addVisitor(new GeneratorClassesResolver()); @@ -48,7 +49,7 @@ EOC; self::assertInstanceOf(StaticCall::class, $node); self::assertInstanceOf(ClassConstFetch::class, $argValue); self::assertInstanceOf(FullyQualified::class, $argValue->class); - self::assertEquals(['TYPO3', 'CMS', 'Does', 'Not', 'Exist'], $argValue->class->parts); + self::assertEquals(['TYPO3', 'CMS', 'Does', 'Not', 'Exist'], $argValue->class->getParts()); self::assertInstanceOf(New_::class, $node->getAttribute(AbstractCoreMatcher::NODE_RESOLVED_AS)); } @@ -59,7 +60,7 @@ EOC; <?php \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Does\\Not\\' . $foo); EOC; - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $statements = $parser->parse($phpCode); $traverser = new NodeTraverser(); $traverser->addVisitor(new GeneratorClassesResolver()); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ArrayDimensionMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ArrayDimensionMatcherTest.php index 264678db60ef649fe1570d6facbff6bc7081bf86..b29eb41f28937f3c5a344a241be70548db880701 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ArrayDimensionMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ArrayDimensionMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\ArrayDimensionMatcher; @@ -30,7 +31,7 @@ final class ArrayDimensionMatcherTest extends UnitTestCase #[Test] public function hitsFromFixtureAreFound(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/ArrayDimensionMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); @@ -122,7 +123,7 @@ final class ArrayDimensionMatcherTest extends UnitTestCase #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $statements = $parser->parse($phpCode); $subject = new ArrayDimensionMatcher($configuration); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ArrayGlobalMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ArrayGlobalMatcherTest.php index 4e4aad346126126079f3af2bdc77ab4d0cc479ac..78f8672114b92b0638b7ffd03ed661a7858d9fef 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ArrayGlobalMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ArrayGlobalMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\ArrayGlobalMatcher; @@ -30,7 +31,7 @@ final class ArrayGlobalMatcherTest extends UnitTestCase #[Test] public function hitsFromFixtureAreFound(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/ArrayGlobalMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); @@ -87,7 +88,7 @@ final class ArrayGlobalMatcherTest extends UnitTestCase #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $statements = $parser->parse($phpCode); $subject = new ArrayGlobalMatcher($configuration); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ClassConstantMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ClassConstantMatcherTest.php index b6d144818e53234183463a96eb8a319fe067f091..2d21f4b1c810a92ed77ea698d6360c62fbb0d2e9 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ClassConstantMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ClassConstantMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver; @@ -31,7 +32,7 @@ final class ClassConstantMatcherTest extends UnitTestCase #[Test] public function hitsFromFixtureAreFound(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/ClassConstantMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); @@ -96,7 +97,7 @@ final class ClassConstantMatcherTest extends UnitTestCase #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $statements = $parser->parse($phpCode); $subject = new ClassConstantMatcher($configuration); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ClassNameMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ClassNameMatcherTest.php index 8e46a0831c5d8a0d6835afdf96c2a1e1114d848e..fa8edfd831ce7fdd9d39b4e83e60e4fb1f1c71dd 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ClassNameMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ClassNameMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\ClassNameMatcher; @@ -30,7 +31,7 @@ final class ClassNameMatcherTest extends UnitTestCase #[Test] public function hitsFromFixtureAreFound(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/ClassNameMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ConstantMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ConstantMatcherTest.php index 337f18d334db4057cbd12dcf51e709327988885c..f387924f9adcde2660330c7c5b1a8f30b41bf549 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ConstantMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ConstantMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver; @@ -31,7 +32,7 @@ final class ConstantMatcherTest extends UnitTestCase #[Test] public function hitsFromFixtureAreFound(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/ConstantMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); @@ -89,7 +90,7 @@ final class ConstantMatcherTest extends UnitTestCase #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $statements = $parser->parse($phpCode); $subject = new ConstantMatcher($configuration); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ConstructorArgumentMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ConstructorArgumentMatcherTest.php index 040ca6a2ab249532e400a239d91b617f22cfb408..c71a31940f2fd7edf44cf0ca87ed610bbcb134f5 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ConstructorArgumentMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/ConstructorArgumentMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\TestCase; @@ -78,7 +79,7 @@ final class ConstructorArgumentMatcherTest extends TestCase #[Test] public function hitsFromFixtureAreFound(array $configuration, array $expectation): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/ConstructorArgumentMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/FunctionCallMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/FunctionCallMatcherTest.php index 7e7259d74525f2e96c14f72c1e6b755bea462d5e..33221f2a955680caa78cf7e3f55539aa2bf7b206 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/FunctionCallMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/FunctionCallMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\FunctionCallMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -29,7 +30,7 @@ final class FunctionCallMatcherTest extends UnitTestCase #[Test] public function hitsFromFixtureAreFound(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/FunctionCallMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); @@ -77,7 +78,7 @@ class foo } EOC; - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $statements = $parser->parse($phpCode); $traverser = new NodeTraverser(); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/InterfaceMethodChangedMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/InterfaceMethodChangedMatcherTest.php index c69ac7d974148cdc186d68cea7eacc27ca113870..974b0ba5ec3f66e2045abd5867077d783728f2b0 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/InterfaceMethodChangedMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/InterfaceMethodChangedMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\InterfaceMethodChangedMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -29,7 +30,7 @@ final class InterfaceMethodChangedMatcherTest extends UnitTestCase #[Test] public function hitsFromFixtureAreFound(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/InterfaceMethodChangedMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodAnnotationMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodAnnotationMatcherTest.php index f2ed09bc07f93e0aea991b3d5870c55612dad54f..c78408977e3bed1acef420dab31629738fb40f49 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodAnnotationMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodAnnotationMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\MethodAnnotationMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -29,7 +30,7 @@ final class MethodAnnotationMatcherTest extends UnitTestCase #[Test] public function hitsFromFixtureAreFound(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/MethodAnnotationMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentDroppedMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentDroppedMatcherTest.php index 78d0e0c428f99406f2b2be61bb4b3d9067ec94ea..83d967367f2a773ec30b137ad82b3dff5f4f6109 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentDroppedMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentDroppedMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\MethodArgumentDroppedMatcher; @@ -30,7 +31,7 @@ final class MethodArgumentDroppedMatcherTest extends UnitTestCase #[Test] public function hitsFromFixtureAreFound(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/MethodArgumentDroppedMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); @@ -223,7 +224,7 @@ final class MethodArgumentDroppedMatcherTest extends UnitTestCase #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $statements = $parser->parse($phpCode); $subject = new MethodArgumentDroppedMatcher($configuration); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentDroppedStaticMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentDroppedStaticMatcherTest.php index 083b114e480a86b366f3f31d248f3b5a6e2e08f2..834ea3e79802ace2b4ff7529441df5d9c5490620 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentDroppedStaticMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentDroppedStaticMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\MethodArgumentDroppedStaticMatcher; @@ -30,7 +31,7 @@ final class MethodArgumentDroppedStaticMatcherTest extends UnitTestCase #[Test] public function hitsFromFixtureAreFound(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/MethodArgumentDroppedStaticMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); @@ -226,7 +227,7 @@ final class MethodArgumentDroppedStaticMatcherTest extends UnitTestCase #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $statements = $parser->parse($phpCode); $subject = new MethodArgumentDroppedStaticMatcher($configuration); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentRequiredMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentRequiredMatcherTest.php index c6ac7a2b0455f2937da884b8cf858345dda96e1b..29693ad493955254e95d3a4f6ef59263111ecd36 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentRequiredMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentRequiredMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\MethodArgumentRequiredMatcher; @@ -30,7 +31,7 @@ final class MethodArgumentRequiredMatcherTest extends UnitTestCase #[Test] public function hitsFromFixtureAreFound(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/MethodArgumentRequiredMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); @@ -216,7 +217,7 @@ final class MethodArgumentRequiredMatcherTest extends UnitTestCase #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $statements = $parser->parse($phpCode); $subject = new MethodArgumentRequiredMatcher($configuration); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentRequiredStaticMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentRequiredStaticMatcherTest.php index 9c92c6cc8e8152d38a99c3615a51a4ff264f1928..825928a8e4e29e62afe791da7fd2774ba5ffa146 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentRequiredStaticMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentRequiredStaticMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\MethodArgumentRequiredStaticMatcher; @@ -30,7 +31,7 @@ final class MethodArgumentRequiredStaticMatcherTest extends UnitTestCase #[Test] public function hitsFromFixtureAreFound(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/MethodArgumentRequiredStaticMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); @@ -194,7 +195,7 @@ final class MethodArgumentRequiredStaticMatcherTest extends UnitTestCase #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $statements = $parser->parse($phpCode); $subject = new MethodArgumentRequiredStaticMatcher($configuration); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentUnusedMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentUnusedMatcherTest.php index f57591b5fa2b1f15323416c3bc8eda5cefca66b6..e99874af178d6cf8d2df54cf6b149745597d484e 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentUnusedMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodArgumentUnusedMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\MethodArgumentUnusedMatcher; @@ -30,7 +31,7 @@ final class MethodArgumentUnusedMatcherTest extends UnitTestCase #[Test] public function hitsFromFixtureAreFound(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/MethodArgumentUnusedMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); @@ -212,7 +213,7 @@ final class MethodArgumentUnusedMatcherTest extends UnitTestCase #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $statements = $parser->parse($phpCode); $subject = new MethodArgumentUnusedMatcher($configuration); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodCallMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodCallMatcherTest.php index 172af55b7a8f73f32830181465d1281b3b49aaa4..d386649368c5531b91d2e15f98db5e760ec51f92 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodCallMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodCallMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\MethodCallMatcher; @@ -30,7 +31,7 @@ final class MethodCallMatcherTest extends UnitTestCase #[Test] public function hitsFromFixtureAreFound(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/MethodCallMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); @@ -81,7 +82,7 @@ class foo } EOC; - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $statements = $parser->parse($phpCode); $traverser = new NodeTraverser(); @@ -304,7 +305,7 @@ EOC; #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $statements = $parser->parse($phpCode); $subject = new MethodCallMatcher($configuration); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodCallStaticMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodCallStaticMatcherTest.php index 616fbb561caa81e2ce1dd41481c19c1d15036202..05757827cf7d6961c698270513bd26dba7af1a09 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodCallStaticMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/MethodCallStaticMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver; @@ -31,7 +32,7 @@ final class MethodCallStaticMatcherTest extends UnitTestCase #[Test] public function hitsFromFixtureAreFound(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/MethodCallStaticMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); @@ -267,7 +268,7 @@ final class MethodCallStaticMatcherTest extends UnitTestCase #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $statements = $parser->parse($phpCode); $subject = new MethodCallStaticMatcher($configuration); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyAnnotationMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyAnnotationMatcherTest.php index 22c74b51437a51c6c375153faa064f4886fa806f..2870dc8a47cfc92295e02b2d5d63eaf03433af25 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyAnnotationMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyAnnotationMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\PropertyAnnotationMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -29,7 +30,7 @@ final class PropertyAnnotationMatcherTest extends UnitTestCase #[Test] public function hitsFromFixtureAreFound(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/PropertyAnnotationMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyExistsStaticMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyExistsStaticMatcherTest.php index e62155b7d9039738bc63f35afc1fc7495f7df84b..4957261dd0cd9107399cac25f7334622250cfe8f 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyExistsStaticMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyExistsStaticMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\PropertyExistsStaticMatcher; use TYPO3\TestingFramework\Core\Unit\UnitTestCase; @@ -29,7 +30,7 @@ final class PropertyExistsStaticMatcherTest extends UnitTestCase #[Test] public function hitsFromFixtureAreFound(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/PropertyExistsStaticMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyProtectedMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyProtectedMatcherTest.php index bd4235a7d36e39b57f79e88615e6c37c19888327..e785d395f2aa343b7a1bf0afcea7caa18c2680c1 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyProtectedMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyProtectedMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\PropertyProtectedMatcher; @@ -30,7 +31,7 @@ final class PropertyProtectedMatcherTest extends UnitTestCase #[Test] public function hitsFromFixtureAreFound(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/PropertyProtectedMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); @@ -121,7 +122,7 @@ final class PropertyProtectedMatcherTest extends UnitTestCase #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $statements = $parser->parse($phpCode); $subject = new PropertyProtectedMatcher($configuration); diff --git a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyPublicMatcherTest.php b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyPublicMatcherTest.php index 0f6142226237dce6726c8bfb7f05edab14b97519..4586194c3a4712820a5a68cbe00e636d035149e9 100644 --- a/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyPublicMatcherTest.php +++ b/typo3/sysext/install/Tests/Unit/ExtensionScanner/Php/Matcher/PropertyPublicMatcherTest.php @@ -20,6 +20,7 @@ namespace TYPO3\CMS\Install\Tests\Unit\ExtensionScanner\Php\Matcher; use PhpParser\NodeTraverser; use PhpParser\NodeVisitor\NameResolver; use PhpParser\ParserFactory; +use PhpParser\PhpVersion; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Test; use TYPO3\CMS\Install\ExtensionScanner\Php\Matcher\PropertyPublicMatcher; @@ -30,7 +31,7 @@ final class PropertyPublicMatcherTest extends UnitTestCase #[Test] public function hitsFromFixtureAreFound(): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $fixtureFile = __DIR__ . '/Fixtures/PropertyPublicMatcherFixture.php'; $statements = $parser->parse(file_get_contents($fixtureFile)); @@ -121,7 +122,7 @@ final class PropertyPublicMatcherTest extends UnitTestCase #[Test] public function matchesReturnsExpectedRestFiles(array $configuration, string $phpCode, array $expected): void { - $parser = (new ParserFactory())->create(ParserFactory::ONLY_PHP7); + $parser = (new ParserFactory())->createForVersion(PhpVersion::fromComponents(8, 2)); $statements = $parser->parse($phpCode); $subject = new PropertyPublicMatcher($configuration); diff --git a/typo3/sysext/install/composer.json b/typo3/sysext/install/composer.json index 676855d4f4f1321c01afef2f377e18e354127439..30915420faf6b7dd00190e818229ab01e1efe98a 100644 --- a/typo3/sysext/install/composer.json +++ b/typo3/sysext/install/composer.json @@ -21,7 +21,7 @@ "require": { "doctrine/dbal": "^4.0", "guzzlehttp/promises": "^1.5.2 || ^2.0", - "nikic/php-parser": "^4.15.4", + "nikic/php-parser": "^5.0.1", "symfony/finder": "^7.0", "symfony/http-foundation": "^7.0", "typo3/cms-core": "13.1.*@dev",