[TASK] Deprecate f:be.container ViewHelper
authorChristian Kuhn <lolli@schwarzbu.ch>
Fri, 28 May 2021 17:01:00 +0000 (19:01 +0200)
committerChristian Kuhn <lolli@schwarzbu.ch>
Fri, 28 May 2021 19:22:35 +0000 (21:22 +0200)
The fluid backend ContainerViewHelper is very similar to the
PageRenderViewHelper, with the exception that container VH
adds a default and empty ModuleTemplate leading to a default
and thus pretty useless docheader.

The main ModuleTemplate logic of backend modules should
be done within controllers and resource registration like
CSS can be done with PageRenderer VH.

The patch deprecates the ContainerViewHelper.

Resolves: #94225
Releases: master
Change-Id: I69f06313f7ba1d647b702572e58eed1394dd1f2c
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69312
Tested-by: core-ci <typo3@b13.com>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
typo3/sysext/backend/Resources/Private/Templates/EmptyModule.html
typo3/sysext/core/Documentation/Changelog/master/Deprecation-94225-FbecontainerViewHelper.rst [new file with mode: 0644]
typo3/sysext/fluid/Classes/ViewHelpers/Be/ContainerViewHelper.php
typo3/sysext/fluid/Classes/ViewHelpers/Be/PageRendererViewHelper.php

index 7cc98bc..b73848f 100644 (file)
@@ -1 +1,2 @@
+<f:comment>@deprecated since v11, will be removed in v12 together with f:be.container ContainerViewHelper</f:comment>
 <f:format.raw>{content}</f:format.raw>
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-94225-FbecontainerViewHelper.rst b/typo3/sysext/core/Documentation/Changelog/master/Deprecation-94225-FbecontainerViewHelper.rst
new file mode 100644 (file)
index 0000000..5b744a4
--- /dev/null
@@ -0,0 +1,50 @@
+.. include:: ../../Includes.txt
+
+===============================================
+Deprecation: #94225 - f:be.container ViewHelper
+===============================================
+
+See :issue:`94225`
+
+Description
+===========
+
+The :html:`<f:be.container>` view helper has been deprecated.
+
+This backend module related view helper was pretty useless since
+it mostly provides the same functionality as :html:`<f:be.pageRenderer>`,
+with the additional opportunity to render an empty doc header.
+
+
+Impact
+======
+
+Using the view helper in fluid templates will log a deprecation warning
+and the view helper will be dropped with v12.
+
+
+Affected Installations
+======================
+
+The limited functionality of the view helper likely leads to little
+usage numbers.
+Searching extensions for the string html:`<f:be.container>` should
+reveal any usages.
+
+
+Migration
+=========
+
+When this view helper is used to register additional backend module
+resources like CSS or JavaScript, :html:`<f:be.pageRenderer>` can be
+used as drop-in replacement.
+
+If the view helper is used to additionally render an empty ModuleTemplate,
+this part should be moved to a controller instead. Simple example:
+
+.. code-block:: php
+
+    $moduleTemplate->setContent($view->render());
+    return new HtmlResponse($moduleTemplate->renderContent());
+
+.. index:: Backend, Fluid, NotScanned, ext:fluid
index 96bc282..94c9f68 100644 (file)
@@ -45,6 +45,8 @@ use TYPO3\CMS\Extbase\Utility\LocalizationUtility;
  * JavaScript files :file:`EXT:your_extension/Resources/Public/JavaScript/Library1.js` and
  * :file:`EXT:your_extension/Resources/Public/JavaScript/Library2.js`
  * will be loaded, plus some inline labels for usage in JS code.
+ *
+ * @deprecated since v11, will be removed in v12.
  */
 class ContainerViewHelper extends AbstractBackendViewHelper
 {
@@ -77,6 +79,7 @@ class ContainerViewHelper extends AbstractBackendViewHelper
      */
     public function render()
     {
+        trigger_error(__CLASS__ . ' will be removed in TYPO3 v12.', E_USER_DEPRECATED);
         $pageTitle = $this->arguments['pageTitle'];
         $includeCssFiles = $this->arguments['includeCssFiles'];
         $includeJsFiles = $this->arguments['includeJsFiles'];
index ecbbd7a..3c5d197 100644 (file)
@@ -23,7 +23,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
 use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
 
 /**
- * ViewHelper which allows you to create extbase based modules in the style of TYPO3 default modules.
+ * ViewHelper to register backend module resources like CSS and JavaScript using the PageRenderer.
  *
  * Examples
  * ========
@@ -109,10 +109,7 @@ class PageRendererViewHelper extends AbstractViewHelper
         }
     }
 
-    /**
-     * @return PageRenderer
-     */
-    protected static function getPageRenderer()
+    protected static function getPageRenderer(): PageRenderer
     {
         return GeneralUtility::makeInstance(PageRenderer::class);
     }