[TASK] Deprecate property and method in DocumentTemplate 83/57783/3
authorWouter Wolters <typo3@wouterwolters.nl>
Thu, 2 Aug 2018 18:20:05 +0000 (20:20 +0200)
committerAnja Leichsenring <aleichsenring@ab-softlab.de>
Sat, 4 Aug 2018 19:34:35 +0000 (21:34 +0200)
Method addStyleSheet and property $hasDocheader are marked as
deprecated.

Resolves: #85735
Releases: master
Change-Id: I69b5a35f006e9b77b87dd842ec636653829e8c96
Reviewed-on: https://review.typo3.org/57783
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Joerg Kummer <typo3@enobe.de>
Tested-by: Joerg Kummer <typo3@enobe.de>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
typo3/sysext/backend/Classes/Template/DocumentTemplate.php
typo3/sysext/core/Documentation/Changelog/master/Deprecation-85735-DeprecateMethodAndPropertyInDocumentTemplate.rst [new file with mode: 0644]
typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodCallMatcher.php
typo3/sysext/install/Configuration/ExtensionScanner/Php/PropertyProtectedMatcher.php

index eed884d..61f5e4e 100644 (file)
@@ -20,6 +20,7 @@ use TYPO3\CMS\Backend\Backend\Shortcut\ShortcutRepository;
 use TYPO3\CMS\Backend\Routing\UriBuilder;
 use TYPO3\CMS\Backend\Utility\BackendUtility;
 use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
+use TYPO3\CMS\Core\Compatibility\PublicPropertyDeprecationTrait;
 use TYPO3\CMS\Core\Configuration\ExtensionConfiguration;
 use TYPO3\CMS\Core\Imaging\Icon;
 use TYPO3\CMS\Core\Imaging\IconFactory;
@@ -45,6 +46,14 @@ use TYPO3\CMS\Core\Utility\PathUtility;
 class DocumentTemplate implements LoggerAwareInterface
 {
     use LoggerAwareTrait;
+    use PublicPropertyDeprecationTrait;
+
+    /**
+     * @var array
+     */
+    protected $deprecatedPublicProperties = [
+        'hasDocheader' => 'Using $hasDocheader of class DocumentTemplate is discouraged. The property is not evaluated in the TYPO3 core anymore and will be removed in TYPO3 v10.'
+    ];
 
     // Vars you typically might want to/should set from outside after making instance of this class:
     /**
@@ -211,8 +220,9 @@ function jumpToUrl(URL) {
 
     /**
      * @var bool
+     * @deprecated since TYPO3 v9.4, will be removed in TYPO3 v10
      */
-    public $hasDocheader = true;
+    protected $hasDocheader = true;
 
     /**
      * @var PageRenderer
@@ -390,8 +400,7 @@ function jumpToUrl(URL) {
     {
         $GET = GeneralUtility::_GET();
         $storeArray = array_merge(GeneralUtility::compileSelectedGetVarsFromArray($gvList, $GET), ['SET' => GeneralUtility::compileSelectedGetVarsFromArray($setList, (array)$GLOBALS['SOBE']->MOD_SETTINGS)]);
-        $storeUrl = GeneralUtility::implodeArrayForUrl('', $storeArray);
-        return $storeUrl;
+        return GeneralUtility::implodeArrayForUrl('', $storeArray);
     }
 
     /**
@@ -594,8 +603,6 @@ function jumpToUrl(URL) {
 
     /**
      * Outputting document style
-     *
-     * @return string HTML style section/link tags
      */
     public function docStyle()
     {
@@ -628,9 +635,12 @@ function jumpToUrl(URL) {
      * @param string $href uri to the style sheet file
      * @param string $title value for the title attribute of the link element
      * @param string $relation value for the rel attribute of the link element
+     * @deprecated since TYPO3 v9.4, will be removed in TYPO3 v10
+     * @see PageRenderer::addCssFile()
      */
     public function addStyleSheet($key, $href, $title = '', $relation = 'stylesheet')
     {
+        trigger_error('The method `DocumentTemplate::addStyleSheet has been deprecated, this method will be removed in TYPO3 v10.0', E_USER_DEPRECATED);
         $this->pageRenderer->addCssFile($href, $relation, 'screen', $title);
     }
 
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-85735-DeprecateMethodAndPropertyInDocumentTemplate.rst b/typo3/sysext/core/Documentation/Changelog/master/Deprecation-85735-DeprecateMethodAndPropertyInDocumentTemplate.rst
new file mode 100644 (file)
index 0000000..04805c6
--- /dev/null
@@ -0,0 +1,38 @@
+.. include:: ../../Includes.txt
+
+=======================================================================
+Deprecation: #85735 - Deprecate method and property in DocumentTemplate
+=======================================================================
+
+See :issue:`85735`
+
+Description
+===========
+
+The method :php:`addStyleSheet` in the class :php:`DocumentTemplate` has been marked as deprecated.
+
+The property :php:`$hasDocheader` is marked as protected as the property is not evaluated anymore in the core.
+
+
+Impact
+======
+
+Calling the :php:`addStyleSheet` method will trigger a deprecation warning.
+
+Using the property :php:`$hasDocheader` will trigger a deprecation warning.
+
+
+Affected Installations
+======================
+
+Calling the method or property will trigger a deprecation warning.
+
+
+Migration
+=========
+
+The :php:`addStyleSheet` method can be replaced by using :php:`PageRenderer::addCssFile()`
+
+The property has no migration available.
+
+.. index:: Backend, FullyScanned
\ No newline at end of file
index 85b5916..d911323 100644 (file)
@@ -2522,4 +2522,11 @@ return [
             'Deprecation-85701-DeprecateMethodsInModuleTemplate.rst',
         ],
     ],
+    'TYPO3\CMS\Backend\Template\DocumentTemplate->addStyleSheet' => [
+        'numberOfMandatoryArguments' => 2,
+        'maximumNumberOfArguments' => 4,
+        'restFiles' => [
+            'Deprecation-85735-DeprecateMethodAndPropertyInDocumentTemplate.rst',
+        ],
+    ],
 ];
index 9e5d0b2..ac039de 100644 (file)
@@ -642,4 +642,9 @@ return [
             'Deprecation-84387-DeprecatedMethodAndPropertyInSchedulerModuleController.rst'
         ],
     ],
+    'TYPO3\CMS\Backend\Template\DocumentTemplate->hasDocheader' => [
+        'restFiles' => [
+            'Deprecation-85735-DeprecateMethodAndPropertyInDocumentTemplate.rst'
+        ],
+    ],
 ];