[TASK] Mark internal $TSFE properties as protected 09/58309/3
authorBenni Mack <benni@typo3.org>
Tue, 18 Sep 2018 04:42:45 +0000 (06:42 +0200)
committerGeorg Ringer <georg.ringer@gmail.com>
Thu, 20 Sep 2018 03:23:43 +0000 (05:23 +0200)
Due to some PHP4 legacy code, most properties in TSFE
were Public API. As some arguments are only used internally
within TSFE and _should_ only used internally, their
visibility has been modified to be protected, and the properties
themselves have also an additional @internal annotation.

For v9, accessing the properties from the outside will still
work but trigger a deprecation message.

Resolves: #86320
Releases: master
Change-Id: Idb15078c41b2128631e75f594e3aa1f0ca85f7ec
Reviewed-on: https://review.typo3.org/58309
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Richard Haeser <richard@maxserv.com>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
typo3/sysext/core/Documentation/Changelog/master/Deprecation-86320-MarkInternalTSFEPropertiesAsProtected.rst [new file with mode: 0644]
typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php
typo3/sysext/install/Configuration/ExtensionScanner/Php/PropertyProtectedMatcher.php

diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-86320-MarkInternalTSFEPropertiesAsProtected.rst b/typo3/sysext/core/Documentation/Changelog/master/Deprecation-86320-MarkInternalTSFEPropertiesAsProtected.rst
new file mode 100644 (file)
index 0000000..8e989f8
--- /dev/null
@@ -0,0 +1,44 @@
+.. include:: ../../Includes.txt
+
+=================================================================
+Deprecation: #86320 - Mark internal $TSFE properties as protected
+=================================================================
+
+See :issue:`86320`
+
+Description
+===========
+
+The following properties have changed their visibility to be protected from public. The properties are only used and needed internally.
+
+* :php:`TypoScriptFrontendController->loginAllowedInBranch_mode`
+* :php:`TypoScriptFrontendController->cacheTimeOutDefault`
+* :php:`TypoScriptFrontendController->cacheContentFlag`
+* :php:`TypoScriptFrontendController->cacheExpires`
+* :php:`TypoScriptFrontendController->isClientCachable`
+* :php:`TypoScriptFrontendController->no_cacheBeforePageGen`
+* :php:`TypoScriptFrontendController->tempContent`
+* :php:`TypoScriptFrontendController->pagesTSconfig`
+* :php:`TypoScriptFrontendController->uniqueCounter`
+* :php:`TypoScriptFrontendController->uniqueString`
+* :php:`TypoScriptFrontendController->lang`
+
+
+Impact
+======
+
+Calling any of the properties will trigger a deprecation warning.
+
+
+Affected Installations
+======================
+
+Any TYPO3 installation with extensions directly calling one of the methods or using one of the public properties.
+
+
+Migration
+=========
+
+Properties are only for internal use, no migration available.
+
+.. index:: Frontend, FullyScanned, ext:frontend
\ No newline at end of file
index 81fcbdd..6c00bfe 100644 (file)
@@ -276,8 +276,9 @@ class TypoScriptFrontendController implements LoggerAwareInterface
     /**
      * Shows specific mode (all or groups)
      * @var string
+     * @internal
      */
-    public $loginAllowedInBranch_mode = '';
+    protected $loginAllowedInBranch_mode = '';
 
     /**
      * Set to backend user ID to initialize when keyword-based preview is used
@@ -335,8 +336,9 @@ class TypoScriptFrontendController implements LoggerAwareInterface
      * Is set to the time-to-live time of cached pages. If FALSE, default is
      * 60*60*24, which is 24 hours.
      * @var bool|int
+     * @internal
      */
-    public $cacheTimeOutDefault = false;
+    protected $cacheTimeOutDefault = false;
 
     /**
      * Set internally if cached content is fetched from the database. No matter if it is temporary
@@ -345,19 +347,21 @@ class TypoScriptFrontendController implements LoggerAwareInterface
      * @var bool
      * @internal
      */
-    public $cacheContentFlag = false;
+    protected $cacheContentFlag = false;
 
     /**
      * Set to the expire time of cached content
      * @var int
+     * @internal
      */
-    public $cacheExpires = 0;
+    protected $cacheExpires = 0;
 
     /**
      * Set if cache headers allowing caching are sent.
      * @var bool
+     * @internal
      */
-    public $isClientCachable = false;
+    protected $isClientCachable = false;
 
     /**
      * Used by template fetching system. This array is an identification of
@@ -402,16 +406,18 @@ class TypoScriptFrontendController implements LoggerAwareInterface
      * This is done in order to make sure that php-code from pagegen does not falsely
      * clear the no_cache flag.
      * @var bool
+     * @internal
      */
-    public $no_cacheBeforePageGen = false;
+    protected $no_cacheBeforePageGen = false;
 
     /**
      * This flag indicates if temporary content went into the cache during page-generation.
      * When the message is set to "this page is being generated", TYPO3 Frontend indicates this way
      * that the current page request is fully cached, and needs no page generation.
      * @var mixed
+     * @internal
      */
-    public $tempContent = false;
+    protected $tempContent = false;
 
     /**
      * Passed to TypoScript template class and tells it to force template rendering
@@ -428,8 +434,9 @@ class TypoScriptFrontendController implements LoggerAwareInterface
     /**
      * May be set to the pagesTSconfig
      * @var array
+     * @internal
      */
-    public $pagesTSconfig = '';
+    protected $pagesTSconfig = '';
 
     /**
      * Eg. insert JS-functions in this array ($additionalHeaderData) to include them
@@ -683,13 +690,15 @@ class TypoScriptFrontendController implements LoggerAwareInterface
      * Used to generate page-unique keys. Point is that uniqid() functions is very
      * slow, so a unikey key is made based on this, see function uniqueHash()
      * @var int
+     * @internal
      */
-    public $uniqueCounter = 0;
+    protected $uniqueCounter = 0;
 
     /**
      * @var string
+     * @internal
      */
-    public $uniqueString = '';
+    protected $uniqueString = '';
 
     /**
      * This value will be used as the title for the page in the indexer (if
@@ -742,8 +751,9 @@ class TypoScriptFrontendController implements LoggerAwareInterface
     /**
      * Set to the system language key (used on the site)
      * @var string
+     * @internal
      */
-    public $lang = '';
+    protected $lang = '';
 
     /**
      * Internal calculations for labels
@@ -5036,6 +5046,17 @@ class TypoScriptFrontendController implements LoggerAwareInterface
                 trigger_error('Property $TSFE->loginAllowedInBranch is marked as protected now as it only contains internal state. Use checkIfLoginAllowedInBranch() instead.', E_USER_DEPRECATED);
                 return isset($this->$propertyName);
             // Regular deprecations / property visibility changes
+            case 'loginAllowedInBranch_mode':
+            case 'cacheTimeOutDefault':
+            case 'cacheContentFlag':
+            case 'cacheExpires':
+            case 'isClientCachable':
+            case 'no_cacheBeforePageGen':
+            case 'tempContent':
+            case 'pagesTSconfig':
+            case 'uniqueCounter':
+            case 'uniqueString':
+            case 'lang':
             case 'MP_defaults':
             case 'debug':
             case 'pageAccessFailureHistory':
@@ -5094,6 +5115,17 @@ class TypoScriptFrontendController implements LoggerAwareInterface
                 trigger_error('Property $TSFE->loginAllowedInBranch is marked as protected now as it only contains internal state. Use checkIfLoginAllowedInBranch() instead.', E_USER_DEPRECATED);
                 break;
             // Regular deprecations / property visibility changes
+            case 'loginAllowedInBranch_mode':
+            case 'cacheTimeOutDefault':
+            case 'cacheContentFlag':
+            case 'cacheExpires':
+            case 'isClientCachable':
+            case 'no_cacheBeforePageGen':
+            case 'tempContent':
+            case 'pagesTSconfig':
+            case 'uniqueCounter':
+            case 'uniqueString':
+            case 'lang':
             case 'MP_defaults':
             case 'debug':
             case 'pageAccessFailureHistory':
@@ -5225,6 +5257,17 @@ class TypoScriptFrontendController implements LoggerAwareInterface
                 trigger_error('Property $TSFE->loginAllowedInBranch is marked as protected now as it only contains internal state. Use checkIfLoginAllowedInBranch() instead.', E_USER_DEPRECATED);
                 break;
             // Regular deprecations / property visibility changes
+            case 'loginAllowedInBranch_mode':
+            case 'cacheTimeOutDefault':
+            case 'cacheContentFlag':
+            case 'cacheExpires':
+            case 'isClientCachable':
+            case 'no_cacheBeforePageGen':
+            case 'tempContent':
+            case 'pagesTSconfig':
+            case 'uniqueCounter':
+            case 'uniqueString':
+            case 'lang':
             case 'MP_defaults':
             case 'debug':
             case 'pageAccessFailureHistory':
@@ -5301,6 +5344,17 @@ class TypoScriptFrontendController implements LoggerAwareInterface
                 trigger_error('Property $TSFE->loginAllowedInBranch is marked as protected now as it only contains internal state. Use checkIfLoginAllowedInBranch() instead.', E_USER_DEPRECATED);
                 break;
             // Regular deprecations / property visibility changes
+            case 'loginAllowedInBranch_mode':
+            case 'cacheTimeOutDefault':
+            case 'cacheContentFlag':
+            case 'cacheExpires':
+            case 'isClientCachable':
+            case 'no_cacheBeforePageGen':
+            case 'tempContent':
+            case 'pagesTSconfig':
+            case 'uniqueCounter':
+            case 'uniqueString':
+            case 'lang':
             case 'MP_defaults':
             case 'debug':
             case 'pageAccessFailureHistory':
index 631b241..2e157cf 100644 (file)
@@ -892,4 +892,59 @@ return [
             'Deprecation-86047-TSFEPropertiesMethodsAndChangeVisibility.rst',
         ],
     ],
+    'TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->loginAllowedInBranch_mode' => [
+        'restFiles' => [
+            'Deprecation-86320-MarkInternalTSFEPropertiesAsProtected.rst',
+        ],
+    ],
+    'TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->cacheTimeOutDefault' => [
+        'restFiles' => [
+            'Deprecation-86320-MarkInternalTSFEPropertiesAsProtected.rst',
+        ],
+    ],
+    'TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->cacheContentFlag' => [
+        'restFiles' => [
+            'Deprecation-86320-MarkInternalTSFEPropertiesAsProtected.rst',
+        ],
+    ],
+    'TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->isClientCachable' => [
+        'restFiles' => [
+            'Deprecation-86320-MarkInternalTSFEPropertiesAsProtected.rst',
+        ],
+    ],
+    'TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->no_cacheBeforePageGen' => [
+        'restFiles' => [
+            'Deprecation-86320-MarkInternalTSFEPropertiesAsProtected.rst',
+        ],
+    ],
+    'TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->tempContent' => [
+        'restFiles' => [
+            'Deprecation-86320-MarkInternalTSFEPropertiesAsProtected.rst',
+        ],
+    ],
+    'TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->pagesTSconfig' => [
+        'restFiles' => [
+            'Deprecation-86320-MarkInternalTSFEPropertiesAsProtected.rst',
+        ],
+    ],
+    'TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->uniqueCounter' => [
+        'restFiles' => [
+            'Deprecation-86320-MarkInternalTSFEPropertiesAsProtected.rst',
+        ],
+    ],
+    'TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->uniqueString' => [
+        'restFiles' => [
+            'Deprecation-86320-MarkInternalTSFEPropertiesAsProtected.rst',
+        ],
+    ],
+    'TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->lang' => [
+        'restFiles' => [
+            'Deprecation-86320-MarkInternalTSFEPropertiesAsProtected.rst',
+        ],
+    ],
+    'TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->cacheExpires' => [
+        'restFiles' => [
+            'Deprecation-86320-MarkInternalTSFEPropertiesAsProtected.rst',
+        ],
+    ],
 ];