[TASK] Remove deprecated code in ElementInformationController 77/59277/4
authorAnja Leichsenring <anja.leichsenring@typo3.com>
Sat, 22 Dec 2018 14:51:46 +0000 (15:51 +0100)
committerAnja Leichsenring <aleichsenring@ab-softlab.de>
Sat, 22 Dec 2018 15:17:40 +0000 (16:17 +0100)
Change-Id: I5511af7dac4de54ff01f3a1f1ba9c0fb83697ac0
Resolves: #87272
Releases: master
Reviewed-on: https://review.typo3.org/59277
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Alexander Schnitzler <typo3@alexanderschnitzler.de>
Tested-by: Alexander Schnitzler <typo3@alexanderschnitzler.de>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
typo3/sysext/backend/Classes/Controller/ContentElement/ElementInformationController.php
typo3/sysext/core/Documentation/Changelog/master/Breaking-87193-DeprecatedFunctionalityRemoved.rst
typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodCallMatcher.php
typo3/sysext/install/Configuration/ExtensionScanner/Php/PropertyProtectedMatcher.php

index c203811..4ef0953 100644 (file)
@@ -20,8 +20,6 @@ use Psr\Http\Message\ServerRequestInterface;
 use TYPO3\CMS\Backend\Backend\Avatar\Avatar;
 use TYPO3\CMS\Backend\Template\ModuleTemplate;
 use TYPO3\CMS\Backend\Utility\BackendUtility;
-use TYPO3\CMS\Core\Compatibility\PublicMethodDeprecationTrait;
-use TYPO3\CMS\Core\Compatibility\PublicPropertyDeprecationTrait;
 use TYPO3\CMS\Core\Database\ConnectionPool;
 use TYPO3\CMS\Core\Http\HtmlResponse;
 use TYPO3\CMS\Core\Imaging\Icon;
@@ -40,29 +38,6 @@ use TYPO3\CMS\Fluid\View\StandaloneView;
  */
 class ElementInformationController
 {
-    use PublicMethodDeprecationTrait;
-    use PublicPropertyDeprecationTrait;
-
-    /**
-     * @var array
-     */
-    private $deprecatedPublicMethods = [
-        'getLabelForTableColumn' => 'Using ElementInformationController::getLabelForTableColumn() is deprecated and will not be possible anymore in TYPO3 v10.0.',
-    ];
-
-    /**
-     * Properties which have been moved to protected status from public
-     *
-     * @var array
-     */
-    private $deprecatedPublicProperties = [
-        'table' => 'Using $table of class ElementInformationController from the outside is discouraged, as this variable is only used for internal storage.',
-        'uid' => 'Using $uid of class ElementInformationController from the outside is discouraged, as this variable is only used for internal storage.',
-        'access' => 'Using $access of class ElementInformationController from the outside is discouraged, as this variable is only used for internal storage.',
-        'type' => 'Using $type of class ElementInformationController from the outside is discouraged, as this variable is only used for internal storage.',
-        'pageInfo' => 'Using $pageInfo of class ElementInformationController from the outside is discouraged, as this variable is only used for internal storage.',
-    ];
-
     /**
      * Record table name
      *
@@ -138,11 +113,6 @@ class ElementInformationController
     {
         $this->iconFactory = GeneralUtility::makeInstance(IconFactory::class);
         $GLOBALS['SOBE'] = $this;
-
-        // @deprecated since TYPO3 v9, will be obsolete in TYPO3 v10.0 with removal of init()
-        $request = $GLOBALS['TYPO3_REQUEST'];
-        // @deprecated since TYPO3 v9, will be moved out of __construct() in TYPO3 v10.0
-        $this->init($request);
     }
 
     /**
@@ -154,6 +124,7 @@ class ElementInformationController
      */
     public function mainAction(ServerRequestInterface $request): ResponseInterface
     {
+        $this->init($request);
         $this->main($request);
         return new HtmlResponse($this->moduleTemplate->renderContent());
     }
@@ -162,19 +133,10 @@ class ElementInformationController
      * Determines if table/uid point to database record or file and
      * if user has access to view information
      *
-     * @param ServerRequestInterface|null $request
+     * @param ServerRequestInterface $request
      */
-    public function init(ServerRequestInterface $request = null): void
+    protected function init(ServerRequestInterface $request): void
     {
-        if ($request === null) {
-            // Missing argument? This method must have been called from outside.
-            // Method will be protected and $request mandatory in TYPO3 v10.0, giving core freedom to move stuff around
-            // New v10 signature: "protected function init(ServerRequestInterface $request): void"
-            // @deprecated since TYPO3 v9, method argument $request will be set to mandatory
-            trigger_error('ElementInformationController->init() will be set to protected in TYPO3 v10.0. Do not call from other extension.', E_USER_DEPRECATED);
-            $request = $GLOBALS['TYPO3_REQUEST'];
-        }
-
         $queryParams = $request->getQueryParams();
 
         $this->table = $queryParams['table'] ?? null;
@@ -246,15 +208,8 @@ class ElementInformationController
      *
      * @param ServerRequestInterface $request
      */
-    public function main(ServerRequestInterface $request = null): void
+    protected function main(ServerRequestInterface $request): void
     {
-        if ($request === null) {
-            // Missing argument? This method must have been called from outside.
-            // @deprecated since TYPO3 v9, method argument $request will be set to mandatory
-            trigger_error('ElementInformationController->main() will be set to protected in TYPO3 v10.0. Do not call from other extension.', E_USER_DEPRECATED);
-            $request = $GLOBALS['TYPO3_REQUEST'];
-        }
-
         $content = '';
 
         // Rendering of the output via fluid
index 7b41b93..3ca0cad 100644 (file)
@@ -417,6 +417,11 @@ The following methods changed signature according to previous deprecations in v9
 
 The following public class properties have been dropped:
 
+* :php:`TYPO3\CMS\Backend\Controller\ContentElement\ElementInformationController->access`
+* :php:`TYPO3\CMS\Backend\Controller\ContentElement\ElementInformationController->pageInfo`
+* :php:`TYPO3\CMS\Backend\Controller\ContentElement\ElementInformationController->table`
+* :php:`TYPO3\CMS\Backend\Controller\ContentElement\ElementInformationController->type`
+* :php:`TYPO3\CMS\Backend\Controller\ContentElement\ElementInformationController->uid`
 * :php:`TYPO3\CMS\Backend\Controller\EditDocumentController->cacheCmd`
 * :php:`TYPO3\CMS\Backend\Controller\EditDocumentController->content`
 * :php:`TYPO3\CMS\Backend\Controller\EditDocumentController->doc`
@@ -502,6 +507,9 @@ The following public class properties have been dropped:
 The following class methods have changed visibility:
 
 * :php:`TYPO3\CMS\Backend\Controller\BackendController->render()` changed from public to protected
+* :php:`TYPO3\CMS\Backend\Controller\ContentElement\ElementInformationController->getLabelForTableColumn` changed from public to protected
+* :php:`TYPO3\CMS\Backend\Controller\ContentElement\ElementInformationController->init()` changed from public to protected
+* :php:`TYPO3\CMS\Backend\Controller\ContentElement\ElementInformationController->main()` changed from public to protected
 * :php:`TYPO3\CMS\Backend\Controller\EditDocumentController->closeDocument()` changed from public to protected
 * :php:`TYPO3\CMS\Backend\Controller\EditDocumentController->compileForm()` changed from public to protected
 * :php:`TYPO3\CMS\Backend\Controller\EditDocumentController->fixWSversioningInEditConf()` changed from public to protected
index 0f4b640..a73586a 100644 (file)
@@ -2181,6 +2181,7 @@ return [
         'numberOfMandatoryArguments' => 2,
         'maximumNumberOfArguments' => 2,
         'restFiles' => [
+            'Breaking-87193-DeprecatedFunctionalityRemoved.rst',
             'Deprecation-84284-ProtectedMethodsAndPropertiesInContentElementElementInformationController.rst',
         ],
     ],
index 7a4092a..9a3836a 100644 (file)
@@ -349,11 +349,13 @@ return [
     ],
     'TYPO3\CMS\Backend\Controller\ContentElement\ElementInformationController->access' => [
         'restFiles' => [
+            'Breaking-87193-DeprecatedFunctionalityRemoved.rst',
             'Deprecation-84284-ProtectedMethodsAndPropertiesInContentElementElementInformationController.rst',
         ],
     ],
     'TYPO3\CMS\Backend\Controller\ContentElement\ElementInformationController->pageInfo' => [
         'restFiles' => [
+            'Breaking-87193-DeprecatedFunctionalityRemoved.rst',
             'Deprecation-84284-ProtectedMethodsAndPropertiesInContentElementElementInformationController.rst',
         ],
     ],