[TASK] Deprecate ContentObjectRenderer->calcIntExplode() 38/57438/5
authorBenni Mack <benni@typo3.org>
Mon, 2 Jul 2018 10:04:31 +0000 (12:04 +0200)
committerChristian Kuhn <lolli@schwarzbu.ch>
Mon, 2 Jul 2018 12:29:12 +0000 (14:29 +0200)
The method ContentObjectRenderer->calcIntExplode() is only used
within GraphicalMenuObject and can be migrated into the method call.

Resolves: #85451
Releases: master
Change-Id: Ia463fa8698d63a0aaa9a1810da6660d53e670f73
Reviewed-on: https://review.typo3.org/57438
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Benni Mack <benni@typo3.org>
Tested-by: Benni Mack <benni@typo3.org>
Tested-by: TYPO3com <no-reply@typo3.com>
typo3/sysext/core/Documentation/Changelog/master/Deprecation-85451-ContentObjectRenderer-calcIntExplodeDeprecated.rst [new file with mode: 0644]
typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php
typo3/sysext/frontend/Classes/ContentObject/Menu/GraphicalMenuContentObject.php
typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodCallMatcher.php

diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-85451-ContentObjectRenderer-calcIntExplodeDeprecated.rst b/typo3/sysext/core/Documentation/Changelog/master/Deprecation-85451-ContentObjectRenderer-calcIntExplodeDeprecated.rst
new file mode 100644 (file)
index 0000000..9154992
--- /dev/null
@@ -0,0 +1,36 @@
+.. include:: ../../Includes.txt
+
+========================================================================
+Deprecation: #85451 - ContentObjectRenderer->calcIntExplode() deprecated
+========================================================================
+
+See :issue:`85451`
+
+Description
+===========
+
+Method :php:`TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer->calcIntExprode()`
+has been deprecated and should not be used any longer.
+
+
+Impact
+======
+
+Using the method will trigger a deprecation log entry, the method will
+be removed in v10.
+
+
+Affected Installations
+======================
+
+The tiny method has been a helper for GMENU rendering and has
+most likely only used internally. The extension scanner will
+find possible usages within extensions.
+
+
+Migration
+=========
+
+Copy the method to the extension code if needed.
+
+.. index:: Frontend, PHP-API, FullyScanned
\ No newline at end of file
index 4f02937..4920b6e 100644 (file)
@@ -3710,9 +3710,11 @@ class ContentObjectRenderer implements LoggerAwareInterface
      * @param string $string The string with parts in (where each part is evaluated by ->calc())
      * @return array And array with evaluated values.
      * @see calc(), \TYPO3\CMS\Frontend\ContentObject\Menu\GraphicalMenuContentObject::makeGifs()
+     * @deprecated since TYPO3 v9, will be removed in TYPO3 v10. It is solely used in GMENU, which can be handled there directly.
      */
     public function calcIntExplode($delim, $string)
     {
+        trigger_error('calcIntExplode will be removed in TYPO3 v10.', E_USER_DEPRECATED);
         $temp = explode($delim, $string);
         foreach ($temp as $key => $val) {
             $temp[$key] = (int)$this->calc($val);
index 1e3017a..a13bcf6 100644 (file)
@@ -102,11 +102,11 @@ class GraphicalMenuContentObject extends AbstractMenuContentObject
             }
             $minDim = $this->mconf['min'];
             if ($minDim) {
-                $minDim = $this->parent_cObj->calcIntExplode(',', $minDim . ',');
+                $minDim = $this->calcIntExplode($minDim . ',');
             }
             $maxDim = $this->mconf['max'];
             if ($maxDim) {
-                $maxDim = $this->parent_cObj->calcIntExplode(',', $maxDim . ',');
+                $maxDim = $this->calcIntExplode($maxDim . ',');
             }
             if ($minDim) {
                 $conf[$items] = $conf[$items - 1];
@@ -554,4 +554,21 @@ class GraphicalMenuContentObject extends AbstractMenuContentObject
         }
         return $this->WMcObj->wrap($this->WMresult, $this->mconf['wrap']) . $this->WMextraScript;
     }
+
+    /**
+     * This explodes a comma-list into an array where the values are parsed through ContentObjectRender::calc() and cast to (int)(so you are sure to have integers in the output array)
+     * Used to split and calculate min and max values for GMENUs.
+     *
+     * @param string $string The string with parts in (where each part is evaluated by ->calc())
+     * @return array And array with evaluated values.
+     * @see ContentObjectRenderer::calc(), makeGifs()
+     */
+    protected function calcIntExplode($string)
+    {
+        $temp = explode(',', $string);
+        foreach ($temp as $key => $val) {
+            $temp[$key] = (int)$this->parent_cObj->calc($val);
+        }
+        return $temp;
+    }
 }
index 05ad567..62d751e 100644 (file)
@@ -2424,4 +2424,11 @@ return [
             'Deprecation-85445-TemplateService-getFileName.rst'
         ],
     ],
+    'TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer->calcIntExplode' => [
+        'numberOfMandatoryArguments' => 2,
+        'maximumNumberOfArguments' => 2,
+        'restFiles' => [
+            'Deprecation-85451-ContentObjectRenderer-calcIntExplodeDeprecated.rst'
+        ],
+    ],
 ];