[TASK] Deprecate TypoScriptFrontendController->getUniqueId 97/57597/4
authorBenni Mack <benni@typo3.org>
Fri, 13 Jul 2018 20:26:45 +0000 (22:26 +0200)
committerFrank Naegler <frank.naegler@typo3.org>
Wed, 18 Jul 2018 16:59:29 +0000 (18:59 +0200)
The unused method TypoScriptFrontendController->getUniqueId() is marked
as deprecated, as this method conceptually should go into a custom
service with a singleton pattern or a runtime cache, but not within
TypoScriptFrontendController.

Resolves: #85555
Releases: master
Change-Id: Ib3af4b32e3c03d90b832ee725dcf9846af92f9ba
Reviewed-on: https://review.typo3.org/57597
Reviewed-by: Josef Glatz <josef.glatz@typo3.org>
Tested-by: Josef Glatz <josef.glatz@typo3.org>
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Jörg Bösche <typo3@joergboesche.de>
Tested-by: Jörg Bösche <typo3@joergboesche.de>
Reviewed-by: Frank Naegler <frank.naegler@typo3.org>
Tested-by: Frank Naegler <frank.naegler@typo3.org>
typo3/sysext/core/Documentation/Changelog/master/Deprecation-85555-TypoScriptFrontendController-getUniqueId.rst [new file with mode: 0644]
typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php
typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodCallMatcher.php

diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-85555-TypoScriptFrontendController-getUniqueId.rst b/typo3/sysext/core/Documentation/Changelog/master/Deprecation-85555-TypoScriptFrontendController-getUniqueId.rst
new file mode 100644 (file)
index 0000000..f0c718b
--- /dev/null
@@ -0,0 +1,34 @@
+.. include:: ../../Includes.txt
+
+===============================================================
+Deprecation: #85555 - TypoScriptFrontendController->getUniqueId
+===============================================================
+
+See :issue:`85555`
+
+Description
+===========
+
+The unused method :php:`TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->getUniqueId()` has been marked as
+deprecated.
+
+
+Impact
+======
+
+Calling the method directly will trigger a deprecation message.
+
+
+Affected Installations
+======================
+
+TYPO3 installations with custom extensions calling this public method directly.
+
+
+Migration
+=========
+
+It is recommended to build a fully unique string functionality in a separate PHP class, if needed, decorated
+with a proper singleton pattern, or a runtime cache.
+
+.. index:: Frontend, PHP-API, FullyScanned, ext:frontend
\ No newline at end of file
index 7a0a09f..9160cc9 100644 (file)
@@ -688,6 +688,7 @@ class TypoScriptFrontendController implements LoggerAwareInterface
     /**
      * IDs we already rendered for this page (to make sure they are unique)
      * @var array
+     * @deprecated since TYPO3 v9.4, will be removed in TYPO3 v10.0
      */
     private $usedUniqueIds = [];
 
@@ -4341,9 +4342,11 @@ class TypoScriptFrontendController implements LoggerAwareInterface
      *
      * @param string $desired The desired id. If already used it is suffixed with a number
      * @return string The unique id
+     * @deprecated since TYPO3 v9.4, will be removed in TYPO3 v10.0 - as this functionality is not needed anymore and does not belong in this Class conceptually.
      */
     public function getUniqueId($desired = '')
     {
+        trigger_error('Calling TSFE->getUniqueId() will be removed in TYPO3 v10.0, implement this functionality on your own with a proper Singleton Pattern which can be used outside of the frontend scope as well, if needed.', E_USER_DEPRECATED);
         if ($desired === '') {
             // id has to start with a letter to reach XHTML compliance
             $uniqueId = 'a' . $this->uniqueHash();
index 7169dfa..63d3294 100644 (file)
@@ -2431,6 +2431,13 @@ return [
             'Deprecation-85451-ContentObjectRenderer-calcIntExplodeDeprecated.rst'
         ],
     ],
+    'TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->getUniqueId' => [
+        'numberOfMandatoryArguments' => 0,
+        'maximumNumberOfArguments' => 1,
+        'restFiles' => [
+            'Deprecation-85555-TypoScriptFrontendController-getUniqueId.rst',
+        ],
+    ],
     'TYPO3\CMS\Scheduler\Classes\Controller\SchedulerModuleController->addMessage' => [
         'numberOfMandatoryArguments' => 1,
         'maximumNumberOfArguments' => 2,