From 078baa6cf92efd6d783739d38e30ae2b6f06cf30 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20B=C3=BCrk?= <stefan@buerk.tech>
Date: Sun, 23 Jun 2024 17:25:44 +0200
Subject: [PATCH] [TASK] Avoid implicitly nullable class method parameter in
 `EXT:redirects`

With PHP 8.4 marking method parameter implicitly nullable
is depreacted and will emit a `E_DEPRECATED` warning. One
recommended way to resolve this, is making it explicitly
nullable using the `?` nullable operator. [1]

This prepares the way towards PHP 8.4 compatibility.

[1] https://php.watch/versions/8.4/implicitly-marking-parameter-type-nullable-deprecated

Resolves: #104184
Releases: main, 12.4, 11.5
Change-Id: I1e1a60a36ae2b5244bbd8c3cf963f2165077dbad
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84866
Tested-by: Oliver Klee <typo3-coding@oliverklee.de>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Garvin Hicking <gh@faktor-e.de>
Reviewed-by: Garvin Hicking <gh@faktor-e.de>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
---
 .../Classes/FormDataProvider/ValuePickerItemDataProvider.php    | 2 +-
 typo3/sysext/redirects/Classes/Repository/Demand.php            | 2 +-
 typo3/sysext/redirects/Classes/Service/IntegrityService.php     | 2 +-
 typo3/sysext/redirects/Classes/Service/RedirectCacheService.php | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/typo3/sysext/redirects/Classes/FormDataProvider/ValuePickerItemDataProvider.php b/typo3/sysext/redirects/Classes/FormDataProvider/ValuePickerItemDataProvider.php
index 5f5d24669d20..aad86ec9fabf 100644
--- a/typo3/sysext/redirects/Classes/FormDataProvider/ValuePickerItemDataProvider.php
+++ b/typo3/sysext/redirects/Classes/FormDataProvider/ValuePickerItemDataProvider.php
@@ -32,7 +32,7 @@ class ValuePickerItemDataProvider implements FormDataProviderInterface
      */
     protected $siteFinder;
 
-    public function __construct(SiteFinder $siteFinder = null)
+    public function __construct(?SiteFinder $siteFinder = null)
     {
         $this->siteFinder = $siteFinder ?? GeneralUtility::makeInstance(SiteFinder::class);
     }
diff --git a/typo3/sysext/redirects/Classes/Repository/Demand.php b/typo3/sysext/redirects/Classes/Repository/Demand.php
index c32473093892..17b5e6afd669 100644
--- a/typo3/sysext/redirects/Classes/Repository/Demand.php
+++ b/typo3/sysext/redirects/Classes/Repository/Demand.php
@@ -96,7 +96,7 @@ class Demand
         string $target = '',
         array $statusCodes = [],
         int $maxHits = 0,
-        \DateTimeInterface $olderThan = null
+        ?\DateTimeInterface $olderThan = null
     ) {
         $this->page = $page;
         if (!in_array($orderField, self::ORDER_FIELDS, true)) {
diff --git a/typo3/sysext/redirects/Classes/Service/IntegrityService.php b/typo3/sysext/redirects/Classes/Service/IntegrityService.php
index 7d1d3e458fbd..f1574b2170be 100644
--- a/typo3/sysext/redirects/Classes/Service/IntegrityService.php
+++ b/typo3/sysext/redirects/Classes/Service/IntegrityService.php
@@ -40,7 +40,7 @@ class IntegrityService
      */
     private $siteFinder;
 
-    public function __construct(RedirectService $redirectService = null, SiteFinder $siteFinder = null)
+    public function __construct(?RedirectService $redirectService = null, ?SiteFinder $siteFinder = null)
     {
         $this->siteFinder = $siteFinder ?? GeneralUtility::makeInstance(SiteFinder::class);
         $this->redirectService = $redirectService ?? GeneralUtility::makeInstance(
diff --git a/typo3/sysext/redirects/Classes/Service/RedirectCacheService.php b/typo3/sysext/redirects/Classes/Service/RedirectCacheService.php
index 0f4d05e45f9e..4d737b9cf85a 100644
--- a/typo3/sysext/redirects/Classes/Service/RedirectCacheService.php
+++ b/typo3/sysext/redirects/Classes/Service/RedirectCacheService.php
@@ -37,7 +37,7 @@ class RedirectCacheService
      */
     protected $cache;
 
-    public function __construct(CacheManager $cacheManager = null)
+    public function __construct(?CacheManager $cacheManager = null)
     {
         $cacheManager = $cacheManager ?? GeneralUtility::makeInstance(CacheManager::class);
         $this->cache = $cacheManager->getCache('pages');
-- 
GitLab