From 22282deb4886e41db351140c55ba109861e6aedb Mon Sep 17 00:00:00 2001
From: Oliver Bartsch <bo@cedev.de>
Date: Mon, 29 Nov 2021 22:46:09 +0100
Subject: [PATCH] [!!!][TASK] Remove service getters in ModuleTemplate

The methods getIconFactory() and getPageRenderer()
from ModuleTemplate are now removed, since they
exposed internal state, while hiding dependencies.

Those services have to be injected in the
corresponding controllers directly.

Resolves: #96151
Related: #95235
Releases: main
Change-Id: I7af0f78e163b3319df1b74f922917b393da70ef7
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/72388
Tested-by: core-ci <typo3@b13.com>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Benni Mack <benni@typo3.org>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Benni Mack <benni@typo3.org>
---
 .../Classes/Template/ModuleTemplate.php       | 24 -------------------
 ...g-96107-DeprecatedFunctionalityRemoved.rst |  2 ++
 .../Php/MethodCallMatcher.php                 |  2 ++
 3 files changed, 4 insertions(+), 24 deletions(-)

diff --git a/typo3/sysext/backend/Classes/Template/ModuleTemplate.php b/typo3/sysext/backend/Classes/Template/ModuleTemplate.php
index 20f855ff05c2..439f47d41711 100644
--- a/typo3/sysext/backend/Classes/Template/ModuleTemplate.php
+++ b/typo3/sysext/backend/Classes/Template/ModuleTemplate.php
@@ -216,18 +216,6 @@ class ModuleTemplate
         return $this;
     }
 
-    /**
-     * @deprecated since v11, will be removed in v12
-     */
-    public function getIconFactory(): IconFactory
-    {
-        trigger_error(
-            'Method ' . __METHOD__ . ' is deprecated and will be removed in TYPO3 12.0. Inject the service directly instead.',
-            E_USER_DEPRECATED
-        );
-        return $this->iconFactory;
-    }
-
     /**
      * Class constructor
      * Sets up view and property objects
@@ -427,18 +415,6 @@ class ModuleTemplate
         return $this->pageRenderer->render();
     }
 
-    /**
-     * @deprecated since v11, will be removed in v12
-     */
-    public function getPageRenderer(): PageRenderer
-    {
-        trigger_error(
-            'Method ' . __METHOD__ . ' is deprecated and will be removed in TYPO3 12.0. Inject the service directly instead.',
-            E_USER_DEPRECATED
-        );
-        return $this->pageRenderer;
-    }
-
     /**
      * Set form tag
      *
diff --git a/typo3/sysext/core/Documentation/Changelog/12.0/Breaking-96107-DeprecatedFunctionalityRemoved.rst b/typo3/sysext/core/Documentation/Changelog/12.0/Breaking-96107-DeprecatedFunctionalityRemoved.rst
index 50797ba0cece..4e0e6d29ac77 100644
--- a/typo3/sysext/core/Documentation/Changelog/12.0/Breaking-96107-DeprecatedFunctionalityRemoved.rst
+++ b/typo3/sysext/core/Documentation/Changelog/12.0/Breaking-96107-DeprecatedFunctionalityRemoved.rst
@@ -38,6 +38,8 @@ The following PHP class methods that have previously been marked as deprecated f
 
 - :php:`\TYPO3\CMS\Core\Domain\Repository\PageRepository->fixVersioningPid()`
 - :php:`\TYPO3\CMS\Backend\Form\FormDataProvider\AbstractItemProvider->addItemsFromSpecial()`
+- :php:`\TYPO3\CMS\Backend\Template\ModuleTemplate->getIconFactory()`
+- :php:`\TYPO3\CMS\Backend\Template\ModuleTemplate->getPageRenderer()`
 
 The following PHP static class methods that have previously been marked as deprecated for v11 and were now removed:
 
diff --git a/typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodCallMatcher.php b/typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodCallMatcher.php
index 2171678b74b9..9402f1930651 100644
--- a/typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodCallMatcher.php
+++ b/typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodCallMatcher.php
@@ -4977,6 +4977,7 @@ return [
         'maximumNumberOfArguments' => 0,
         'restFiles' => [
             'Deprecation-95235-PublicGetterOfServicesInModuleTemplate.rst',
+            'Breaking-96107-DeprecatedFunctionalityRemoved.rst',
         ],
     ],
     'TYPO3\CMS\Backend\Template\ModuleTemplate->getPageRenderer' => [
@@ -4984,6 +4985,7 @@ return [
         'maximumNumberOfArguments' => 0,
         'restFiles' => [
             'Deprecation-95235-PublicGetterOfServicesInModuleTemplate.rst',
+            'Breaking-96107-DeprecatedFunctionalityRemoved.rst',
         ],
     ],
     'TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools->getArrayValueByPath' => [
-- 
GitLab