From 79fa7333b9e5c61eb1bed60f5758c6a417dfa1b1 Mon Sep 17 00:00:00 2001 From: Christian Kuhn <lolli@schwarzbu.ch> Date: Mon, 26 Feb 2024 14:24:07 +0100 Subject: [PATCH] [TASK] Require nikic/php-parser:^5.0.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Major version upgrade from v4. Unblocks phpunit 11. Adapt various Build/ scripts and the extension scanner. > composer req nikic/php-parser:^5.0.1 > composer req nikic/php-parser:^5.0.1 -d typo3/sysext/install --no-update Change-Id: I6fb3f874a4d8af951a74a8287afe798e29bbe3a2 Resolves: #103206 Releases: main Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83139 Reviewed-by: Benni Mack <benni@typo3.org> Reviewed-by: Stefan Bürk <stefan@buerk.tech> Tested-by: core-ci <typo3@b13.com> Tested-by: Benni Mack <benni@typo3.org> Tested-by: Stefan Bürk <stefan@buerk.tech> Tested-by: Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de> --- Build/Scripts/annotationChecker.php | 3 +- Build/Scripts/checkNamespaceIntegrity.php | 4 +- Build/Scripts/splitAcceptanceTests.php | 3 +- Build/Scripts/splitFunctionalTests.php | 4 +- Build/Scripts/testClassFinalChecker.php | 3 +- Build/Scripts/testMethodPrefixChecker.php | 3 +- Build/phpstan/phpstan-baseline.neon | 110 ------------------ composer.json | 2 +- composer.lock | 22 ++-- .../Classes/Controller/UpgradeController.php | 3 +- .../ExtensionScanner/Php/CodeStatistics.php | 5 +- .../Php/Matcher/ArrayDimensionMatcher.php | 3 +- .../Php/Matcher/ArrayGlobalMatcher.php | 3 +- .../Php/Matcher/ClassConstantMatcher.php | 3 +- .../Php/Matcher/ClassNameMatcher.php | 3 +- .../Php/Matcher/ConstantMatcher.php | 3 +- .../Matcher/ConstructorArgumentMatcher.php | 5 +- .../Php/Matcher/FunctionCallMatcher.php | 3 +- .../Matcher/InterfaceMethodChangedMatcher.php | 7 +- .../Php/Matcher/MethodAnnotationMatcher.php | 3 +- .../Matcher/MethodArgumentDroppedMatcher.php | 3 +- .../MethodArgumentDroppedStaticMatcher.php | 3 +- .../Matcher/MethodArgumentRequiredMatcher.php | 3 +- .../MethodArgumentRequiredStaticMatcher.php | 3 +- .../Matcher/MethodArgumentUnusedMatcher.php | 3 +- .../Php/Matcher/MethodCallMatcher.php | 3 +- .../Php/Matcher/MethodCallStaticMatcher.php | 3 +- .../Php/Matcher/PropertyAnnotationMatcher.php | 9 +- .../Matcher/PropertyExistsStaticMatcher.php | 3 +- .../Php/Matcher/PropertyProtectedMatcher.php | 3 +- .../Php/Matcher/PropertyPublicMatcher.php | 3 +- .../Php/CodeStatisticsTest.php | 3 +- .../Php/GeneratorClassesResolverTest.php | 7 +- .../Php/Matcher/ArrayDimensionMatcherTest.php | 5 +- .../Php/Matcher/ArrayGlobalMatcherTest.php | 5 +- .../Php/Matcher/ClassConstantMatcherTest.php | 5 +- .../Php/Matcher/ClassNameMatcherTest.php | 3 +- .../Php/Matcher/ConstantMatcherTest.php | 5 +- .../ConstructorArgumentMatcherTest.php | 3 +- .../Php/Matcher/FunctionCallMatcherTest.php | 5 +- .../InterfaceMethodChangedMatcherTest.php | 3 +- .../Matcher/MethodAnnotationMatcherTest.php | 3 +- .../MethodArgumentDroppedMatcherTest.php | 5 +- ...MethodArgumentDroppedStaticMatcherTest.php | 5 +- .../MethodArgumentRequiredMatcherTest.php | 5 +- ...ethodArgumentRequiredStaticMatcherTest.php | 5 +- .../MethodArgumentUnusedMatcherTest.php | 5 +- .../Php/Matcher/MethodCallMatcherTest.php | 7 +- .../Matcher/MethodCallStaticMatcherTest.php | 5 +- .../Matcher/PropertyAnnotationMatcherTest.php | 3 +- .../PropertyExistsStaticMatcherTest.php | 3 +- .../Matcher/PropertyProtectedMatcherTest.php | 5 +- .../Php/Matcher/PropertyPublicMatcherTest.php | 5 +- typo3/sysext/install/composer.json | 2 +- 54 files changed, 137 insertions(+), 199 deletions(-) diff --git a/Build/Scripts/annotationChecker.php b/Build/Scripts/annotationChecker.php index b5933e24f685..be593104f35f 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 432f45dfb3fa..a38086cc09d9 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 a936d96bc576..f6327dd61c63 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 cac63e15524e..ff81f33f69f0 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 f3e79ced6d8c..e429c5a68801 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 c9dea214062b..ef71201e2874 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 1063811815f6..68512fd1a03d 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 8f315c926cde..a22035c4fced 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 c7bbba90fd02..60033431e3bd 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 5926f49e1696..28329b0c8832 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 79e23a4daa2d..bcb31ce6ac18 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 e41702691651..ce607fbb02f2 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 e1fe3b437e11..110d5ed49677 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 bc941e958037..45814e58351d 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 e3860ffaf2f0..8bd356753e17 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 1042c68f82d5..fba38eb1ad8b 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 4ba3ca58e8c2..d2979bb353ed 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 7507c20bb801..cd83f14aa22d 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 7efde9c95b33..85cda192d830 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 d3657985abe5..c45bb243ae9b 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 8adf6a7217f0..dece010c51a9 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 4d5d3016311c..6a7cfab81c2e 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 04cc2fb20ff7..9e1d0acdc6ff 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 f379fc616654..18188819dccb 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 92c4c009651a..5221a501b14b 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 257ea6f9a64d..c90a234684e4 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 6bec4df25587..196785b11c75 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 1b484e2dcc67..762a876de8da 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 4956c1d011fc..638540f7d9c7 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 c631e3e9e568..59311bdc5b14 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 415183f54315..cc5141944899 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 f35a8867e4ec..268f1e386c85 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 3aa535367c6f..f4d3368c369a 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 264678db60ef..b29eb41f2893 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 4e4aad346126..78f8672114b9 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 b6d144818e53..2d21f4b1c810 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 8e46a0831c5d..fa8edfd831ce 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 337f18d334db..f387924f9adc 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 040ca6a2ab24..c71a31940f2f 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 7e7259d74525..33221f2a9556 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 c69ac7d97414..974b0ba5ec3f 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 f2ed09bc07f9..c78408977e3b 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 78d0e0c428f9..83d967367f2a 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 083b114e480a..834ea3e79802 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 c6ac7a2b0455..29693ad49395 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 9c92c6cc8e81..825928a8e4e2 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 f57591b5fa2b..e99874af178d 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 172af55b7a8f..d386649368c5 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 616fbb561caa..05757827cf7d 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 22c74b51437a..2870dc8a47cf 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 e62155b7d903..4957261dd0cd 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 bd4235a7d36e..e785d395f2aa 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 0f6142226237..4586194c3a47 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 676855d4f4f1..30915420faf6 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", -- GitLab