From 7fed08c07f67b539e3dad3f993adb720a54a676d Mon Sep 17 00:00:00 2001
From: Simon Gilli <typo3@gilbertsoft.org>
Date: Wed, 17 Nov 2021 21:03:23 +0100
Subject: [PATCH] [TASK] Relax PackageArtifactBuilder to support PHP 7.1

Composer 2.1 supports PHP 5.3 and higher and to avoid issues during the
deployment or on systems where the CLI version is not equal to the FPM
version, the PackageArtifactBuilder is relaxed to also support PHP 7.1
and higher.

Resolves: #96017
Releases: master
Change-Id: I008368c2dbdb2023eb95bdc3650f2e00f528eb23
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/72220
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: Helmut Hummel <typo3@helhum.io>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Helmut Hummel <typo3@helhum.io>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
---
 phpstan.neon                                          |  4 ----
 .../core/Classes/Composer/PackageArtifactBuilder.php  | 11 +++++++++--
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/phpstan.neon b/phpstan.neon
index ff51e3d95646..7a66c285ccdd 100644
--- a/phpstan.neon
+++ b/phpstan.neon
@@ -57,10 +57,6 @@ parameters:
       message: "#^Parameter \\$rootPackage of method TYPO3\\\\CMS\\\\Core\\\\Composer\\\\PackageArtifactBuilder\\:\\:handleRootPackage\\(\\) has invalid typehint type Composer\\\\Package\\\\PackageInterface\\.$#"
       count: 1
       path: typo3/sysext/core/Classes/Composer/PackageArtifactBuilder.php
-    -
-      message: "#^Property TYPO3\\\\CMS\\\\Core\\\\Composer\\\\PackageArtifactBuilder\\:\\:\\$event has unknown class Composer\\\\Script\\\\Event as its type\\.$#"
-      count: 1
-      path: typo3/sysext/core/Classes/Composer/PackageArtifactBuilder.php
     -
       message: "#^Parameter \\$filesystem of method TYPO3\\\\CMS\\\\Core\\\\Package\\\\Cache\\\\ComposerPackageArtifact\\:\\:__construct\\(\\) has invalid typehint type Composer\\\\Util\\\\Filesystem\\.$#"
       count: 1
diff --git a/typo3/sysext/core/Classes/Composer/PackageArtifactBuilder.php b/typo3/sysext/core/Classes/Composer/PackageArtifactBuilder.php
index 597ca7d59d72..07f8b2dd968c 100644
--- a/typo3/sysext/core/Classes/Composer/PackageArtifactBuilder.php
+++ b/typo3/sysext/core/Classes/Composer/PackageArtifactBuilder.php
@@ -46,8 +46,15 @@ use TYPO3\CMS\Core\Utility\PathUtility;
  */
 class PackageArtifactBuilder extends PackageManager implements InstallerScript
 {
-    private Event $event;
-    private Config $config;
+    /**
+     * @var Event $event
+     */
+    private $event;
+
+    /**
+     * @var Config $config
+     */
+    private $config;
 
     /**
      * Array of Composer package names (as array key) that are installed by Composer but have no relation to TYPO3 extension API
-- 
GitLab