[!!!][TASK] Remove legacy CLI-related constants and variables 64/51064/3
authorBenni Mack <benni@typo3.org>
Thu, 29 Dec 2016 16:28:47 +0000 (17:28 +0100)
committerAnja Leichsenring <aleichsenring@ab-softlab.de>
Sat, 31 Dec 2016 14:10:29 +0000 (15:10 +0100)
The constants TYPO3_cliKey and TYPO3_cliInclude are removed,
same goes for $GLOBALS['temp_cliScriptPath'] and
$GLOBALS['temp_cliKey'] which have been marked as deprecated
and not used in CLI context anymore.

Resolves: #79120
Releases: master
Change-Id: I2207ff6eb62bf83bbc0e2af1513eeb74a16e8be2
Reviewed-on: https://review.typo3.org/51064
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Morton Jonuschat <m.jonuschat@mojocode.de>
Tested-by: Morton Jonuschat <m.jonuschat@mojocode.de>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
typo3/sysext/backend/Classes/Console/CliRequestHandler.php
typo3/sysext/core/Documentation/Changelog/master/Breaking-79120-RemovedLegacyCliRelatedConstantsAndVariables.rst [new file with mode: 0644]

index ab310f1..c2986ce 100644 (file)
@@ -145,15 +145,12 @@ class CliRequestHandler implements RequestHandlerInterface
         list($commandLineScript, $commandLineName) = $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['GLOBAL']['cliKeys'][$cliKey];
         if (!is_callable($commandLineScript)) {
             $commandLineScript = GeneralUtility::getFileAbsFileName($commandLineScript);
-            // Note: These constants are not in use anymore, and marked for deprecation and will be removed in TYPO3 CMS 8
-            define('TYPO3_cliKey', $cliKey);
-            define('TYPO3_cliInclude', $commandLineScript);
         }
-        // This is a compatibility layer: Some cli scripts rely on this, like ext:phpunit cli
-        // This layer will be removed in TYPO3 CMS 8
-        $GLOBALS['temp_cliScriptPath'] = array_shift($_SERVER['argv']);
-        $GLOBALS['temp_cliKey'] = array_shift($_SERVER['argv']);
-        array_unshift($_SERVER['argv'], $GLOBALS['temp_cliScriptPath']);
+
+        // the CLI key (e.g. "extbase" or "lowlevel"), is removed from the argv, but the script path is kept
+        $cliScriptPath = array_shift($_SERVER['argv']);
+        array_shift($_SERVER['argv']);
+        array_unshift($_SERVER['argv'], $cliScriptPath);
         return [$commandLineScript, $commandLineName];
     }
 
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-79120-RemovedLegacyCliRelatedConstantsAndVariables.rst b/typo3/sysext/core/Documentation/Changelog/master/Breaking-79120-RemovedLegacyCliRelatedConstantsAndVariables.rst
new file mode 100644 (file)
index 0000000..35d9143
--- /dev/null
@@ -0,0 +1,27 @@
+.. include:: ../../Includes.txt
+
+====================================================================
+Breaking: #79120 - Remove legacy CLI-related constants and variables
+====================================================================
+
+See :issue:`79120`
+
+Description
+===========
+
+The deprecated PHP constants `TYPO3_cliKey` and `TYPO3_cliInclude`, and the global variables `$GLOBALS['temp_cliScriptPath']` and 
+`$GLOBALS['temp_cliKey']` which had been filled when running a CLI command have been removed.
+
+
+Impact
+======
+
+Calling one of the PHP constants above will result in a PHP error. Accessing the global variables will result in a PHP warning.
+
+
+Affected Installations
+======================
+
+Any installation with third-party CLI commands which use these constants or global variables.
+
+.. index:: CLI
\ No newline at end of file