diff --git a/typo3/sysext/adminpanel/Classes/ViewHelpers/IsArrayViewHelper.php b/typo3/sysext/adminpanel/Classes/ViewHelpers/IsArrayViewHelper.php
index 9f5896a90e1b0c5dc26757b5d8818ba479a4e430..cd857bcef5917d3bd158a6c927e3a381592efe52 100644
--- a/typo3/sysext/adminpanel/Classes/ViewHelpers/IsArrayViewHelper.php
+++ b/typo3/sysext/adminpanel/Classes/ViewHelpers/IsArrayViewHelper.php
@@ -25,7 +25,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
  *
  * @internal
  */
-class IsArrayViewHelper extends AbstractViewHelper
+final class IsArrayViewHelper extends AbstractViewHelper
 {
     public function initializeArguments()
     {
diff --git a/typo3/sysext/adminpanel/Classes/ViewHelpers/SubModuleRenderViewHelper.php b/typo3/sysext/adminpanel/Classes/ViewHelpers/SubModuleRenderViewHelper.php
index f3b7221c402a5a13078493418c0be8c422ab2b9f..57b725ed2c69e933a8f474e3072bca031e4805e5 100644
--- a/typo3/sysext/adminpanel/Classes/ViewHelpers/SubModuleRenderViewHelper.php
+++ b/typo3/sysext/adminpanel/Classes/ViewHelpers/SubModuleRenderViewHelper.php
@@ -29,7 +29,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * @internal
  */
-class SubModuleRenderViewHelper extends AbstractViewHelper
+final class SubModuleRenderViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/backend/Classes/ViewHelpers/ArrayBrowserViewHelper.php b/typo3/sysext/backend/Classes/ViewHelpers/ArrayBrowserViewHelper.php
index 534ed69b57a46e926306bfe2edd6e0e55ecf3f0f..7d83c10bc7f4aa9da67ee90fe0cb4b2def468376 100644
--- a/typo3/sysext/backend/Classes/ViewHelpers/ArrayBrowserViewHelper.php
+++ b/typo3/sysext/backend/Classes/ViewHelpers/ArrayBrowserViewHelper.php
@@ -27,7 +27,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * Renders a given array as tree
  * @internal
  */
-class ArrayBrowserViewHelper extends AbstractViewHelper
+final class ArrayBrowserViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/backend/Classes/ViewHelpers/AvatarViewHelper.php b/typo3/sysext/backend/Classes/ViewHelpers/AvatarViewHelper.php
index a48d8949f5016f3cc6907f3071338ab5fe4878ac..f6a3cdd5cd59b3ed9242f638c35ea97c18c2d5c0 100644
--- a/typo3/sysext/backend/Classes/ViewHelpers/AvatarViewHelper.php
+++ b/typo3/sysext/backend/Classes/ViewHelpers/AvatarViewHelper.php
@@ -60,7 +60,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *        </span>
  *    </span>
  */
-class AvatarViewHelper extends AbstractViewHelper
+final class AvatarViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/backend/Classes/ViewHelpers/LanguageColumnViewHelper.php b/typo3/sysext/backend/Classes/ViewHelpers/LanguageColumnViewHelper.php
index 66b811b65fd9717aa3a698ca8be5a37096e335dd..b38f0c6eaca69a53e2d4ff045a54f5141f9053b2 100644
--- a/typo3/sysext/backend/Classes/ViewHelpers/LanguageColumnViewHelper.php
+++ b/typo3/sysext/backend/Classes/ViewHelpers/LanguageColumnViewHelper.php
@@ -21,7 +21,7 @@ use TYPO3\CMS\Backend\View\BackendLayout\Grid\GridColumn;
 use TYPO3\CMS\Backend\View\BackendLayout\Grid\LanguageColumn;
 use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
 
-class LanguageColumnViewHelper extends AbstractViewHelper
+final class LanguageColumnViewHelper extends AbstractViewHelper
 {
     public function initializeArguments()
     {
diff --git a/typo3/sysext/backend/Classes/ViewHelpers/Link/EditRecordViewHelper.php b/typo3/sysext/backend/Classes/ViewHelpers/Link/EditRecordViewHelper.php
index 1df6473ea2fa21cac1e0957535a65bfd6a7e4d5d..2a8a1a58c87fffe5a96bf6a8db11bc9301f8b1f0 100644
--- a/typo3/sysext/backend/Classes/ViewHelpers/Link/EditRecordViewHelper.php
+++ b/typo3/sysext/backend/Classes/ViewHelpers/Link/EditRecordViewHelper.php
@@ -57,7 +57,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
  *        Edit record
  *    </a>
  */
-class EditRecordViewHelper extends AbstractTagBasedViewHelper
+final class EditRecordViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/backend/Classes/ViewHelpers/Link/NewRecordViewHelper.php b/typo3/sysext/backend/Classes/ViewHelpers/Link/NewRecordViewHelper.php
index 9817edb4ac121beff5bae1fc98cdaa0c580b784b..5325c420343294fb4c55f53082f2662b2ceb14b7 100644
--- a/typo3/sysext/backend/Classes/ViewHelpers/Link/NewRecordViewHelper.php
+++ b/typo3/sysext/backend/Classes/ViewHelpers/Link/NewRecordViewHelper.php
@@ -93,7 +93,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
  *        Edit record
  *    </a>
  */
-class NewRecordViewHelper extends AbstractTagBasedViewHelper
+final class NewRecordViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/backend/Classes/ViewHelpers/Mfa/IfHasStateViewHelper.php b/typo3/sysext/backend/Classes/ViewHelpers/Mfa/IfHasStateViewHelper.php
index c0d02e72780b2be175c1ae99ddf6c8a29306181e..1def15e173b023d27e246266e11f0f6f79151b1c 100644
--- a/typo3/sysext/backend/Classes/ViewHelpers/Mfa/IfHasStateViewHelper.php
+++ b/typo3/sysext/backend/Classes/ViewHelpers/Mfa/IfHasStateViewHelper.php
@@ -27,7 +27,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractConditionViewHelper;
  *
  * @internal
  */
-class IfHasStateViewHelper extends AbstractConditionViewHelper
+final class IfHasStateViewHelper extends AbstractConditionViewHelper
 {
     public function initializeArguments(): void
     {
diff --git a/typo3/sysext/backend/Classes/ViewHelpers/ModuleLinkViewHelper.php b/typo3/sysext/backend/Classes/ViewHelpers/ModuleLinkViewHelper.php
index 3f059c1582b0701198af164cfb7d786d1834f49b..6e0c1aad921fca103ab3e5890dabe0a99144c226 100644
--- a/typo3/sysext/backend/Classes/ViewHelpers/ModuleLinkViewHelper.php
+++ b/typo3/sysext/backend/Classes/ViewHelpers/ModuleLinkViewHelper.php
@@ -42,7 +42,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *         <!-- form content -->
  *     </form>
  */
-class ModuleLinkViewHelper extends AbstractViewHelper
+final class ModuleLinkViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/backend/Classes/ViewHelpers/ThumbnailViewHelper.php b/typo3/sysext/backend/Classes/ViewHelpers/ThumbnailViewHelper.php
index bf44632c02d5a5e297f40e0b558aa082306a329d..272d5b2a3b8f55c4511ef0687d76efdf0fa21f25 100644
--- a/typo3/sysext/backend/Classes/ViewHelpers/ThumbnailViewHelper.php
+++ b/typo3/sysext/backend/Classes/ViewHelpers/ThumbnailViewHelper.php
@@ -59,7 +59,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Exception;
  *         alt="alt set in image record"
  *         title="title set in image record"/>
  */
-class ThumbnailViewHelper extends AbstractTagBasedViewHelper
+final class ThumbnailViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/backend/Classes/ViewHelpers/Uri/EditRecordViewHelper.php b/typo3/sysext/backend/Classes/ViewHelpers/Uri/EditRecordViewHelper.php
index d8802aa1bed8f2ca482921a9b3fdc72c85fc79c1..c8e44cec5f13ea56422f92234912aa561c9b782d 100644
--- a/typo3/sysext/backend/Classes/ViewHelpers/Uri/EditRecordViewHelper.php
+++ b/typo3/sysext/backend/Classes/ViewHelpers/Uri/EditRecordViewHelper.php
@@ -46,7 +46,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * ``<a href="/typo3/record/edit&edit[pages][42]=edit&returnUrl=foo/bar&columnsOnly=title,subtitle">``
  */
-class EditRecordViewHelper extends AbstractViewHelper
+final class EditRecordViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/backend/Classes/ViewHelpers/Uri/NewRecordViewHelper.php b/typo3/sysext/backend/Classes/ViewHelpers/Uri/NewRecordViewHelper.php
index 4bdf08ce234ac8ee388f355bf38c1fa2963d8ec9..0197bf685402d37b2c9a0e83bd514ff77c09d99d 100644
--- a/typo3/sysext/backend/Classes/ViewHelpers/Uri/NewRecordViewHelper.php
+++ b/typo3/sysext/backend/Classes/ViewHelpers/Uri/NewRecordViewHelper.php
@@ -69,7 +69,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * ``/typo3/record/edit?edit[a_table][17]=new&returnUrl=foo/bar&defVals[a_table][a_field]=value``
  */
-class NewRecordViewHelper extends AbstractTagBasedViewHelper
+final class NewRecordViewHelper extends AbstractTagBasedViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/belog/Classes/ViewHelpers/Be/PagePathViewHelper.php b/typo3/sysext/belog/Classes/ViewHelpers/Be/PagePathViewHelper.php
index e0926f4ab19e2a1c15aa0f533d088bcef5ef3654..7c02562ce1940f72131da81f0da7819d7fd87b6a 100644
--- a/typo3/sysext/belog/Classes/ViewHelpers/Be/PagePathViewHelper.php
+++ b/typo3/sysext/belog/Classes/ViewHelpers/Be/PagePathViewHelper.php
@@ -23,7 +23,7 @@ use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
  * Get page path string from page id
  * @internal
  */
-class PagePathViewHelper extends AbstractBackendViewHelper
+final class PagePathViewHelper extends AbstractBackendViewHelper
 {
     /**
      * Initializes the arguments
diff --git a/typo3/sysext/belog/Classes/ViewHelpers/FormatDetailsViewHelper.php b/typo3/sysext/belog/Classes/ViewHelpers/FormatDetailsViewHelper.php
index b01312f9610e96c5fa99967f79e5c6c0163c396d..28bfa4c6fbbb1ea9ef32fe745b16c0bdec1744db 100644
--- a/typo3/sysext/belog/Classes/ViewHelpers/FormatDetailsViewHelper.php
+++ b/typo3/sysext/belog/Classes/ViewHelpers/FormatDetailsViewHelper.php
@@ -25,7 +25,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * Create detail string from log entry
  * @internal
  */
-class FormatDetailsViewHelper extends AbstractViewHelper
+final class FormatDetailsViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/belog/Classes/ViewHelpers/UsernameViewHelper.php b/typo3/sysext/belog/Classes/ViewHelpers/UsernameViewHelper.php
index 8261ff4479dfb0226e2b167caa65f9a0ce9f6540..c0b7e50b8a7ab2cb6d8f38c9e76b55e5544a0dea 100644
--- a/typo3/sysext/belog/Classes/ViewHelpers/UsernameViewHelper.php
+++ b/typo3/sysext/belog/Classes/ViewHelpers/UsernameViewHelper.php
@@ -24,7 +24,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * Get username from backend user id
  * @internal
  */
-class UsernameViewHelper extends AbstractViewHelper
+final class UsernameViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/belog/Classes/ViewHelpers/WorkspaceTitleViewHelper.php b/typo3/sysext/belog/Classes/ViewHelpers/WorkspaceTitleViewHelper.php
index 7e158faf5b912419c098fd3ad1e8c9c8184ecfe1..f4756ebae25bc8a91810a9b551c25e18116a0b56 100644
--- a/typo3/sysext/belog/Classes/ViewHelpers/WorkspaceTitleViewHelper.php
+++ b/typo3/sysext/belog/Classes/ViewHelpers/WorkspaceTitleViewHelper.php
@@ -27,7 +27,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * Get workspace title from workspace id
  * @internal
  */
-class WorkspaceTitleViewHelper extends AbstractViewHelper
+final class WorkspaceTitleViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/beuser/Classes/ViewHelpers/ArrayElementViewHelper.php b/typo3/sysext/beuser/Classes/ViewHelpers/ArrayElementViewHelper.php
index 08b90c98fd2d158fbdf65cbf3c06a06fa7730933..9de7420eab2a59c2715f19fc28bf787ced03bbb5 100644
--- a/typo3/sysext/beuser/Classes/ViewHelpers/ArrayElementViewHelper.php
+++ b/typo3/sysext/beuser/Classes/ViewHelpers/ArrayElementViewHelper.php
@@ -24,7 +24,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * Get a value from an array by given key.
  * @internal
  */
-class ArrayElementViewHelper extends AbstractViewHelper
+final class ArrayElementViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/beuser/Classes/ViewHelpers/Display/TableAccessViewHelper.php b/typo3/sysext/beuser/Classes/ViewHelpers/Display/TableAccessViewHelper.php
index 0d27611b8b47d649a75de27a122bbe45431af433..c88c0477ac4eda6b524919e0882fa86262620ad7 100644
--- a/typo3/sysext/beuser/Classes/ViewHelpers/Display/TableAccessViewHelper.php
+++ b/typo3/sysext/beuser/Classes/ViewHelpers/Display/TableAccessViewHelper.php
@@ -20,7 +20,7 @@ namespace TYPO3\CMS\Beuser\ViewHelpers\Display;
 use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
 use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractConditionViewHelper;
 
-class TableAccessViewHelper extends AbstractConditionViewHelper
+final class TableAccessViewHelper extends AbstractConditionViewHelper
 {
     public function initializeArguments(): void
     {
diff --git a/typo3/sysext/beuser/Classes/ViewHelpers/MfaStatusViewHelper.php b/typo3/sysext/beuser/Classes/ViewHelpers/MfaStatusViewHelper.php
index 2a0af6a5d3aabd64b7b8e882e8a371c5a71533a3..c13523469b4de701b1118e9ba4ebfd8253da4293 100644
--- a/typo3/sysext/beuser/Classes/ViewHelpers/MfaStatusViewHelper.php
+++ b/typo3/sysext/beuser/Classes/ViewHelpers/MfaStatusViewHelper.php
@@ -28,7 +28,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
  *
  * @internal
  */
-class MfaStatusViewHelper extends AbstractTagBasedViewHelper
+final class MfaStatusViewHelper extends AbstractTagBasedViewHelper
 {
     protected $tagName = 'span';
 
diff --git a/typo3/sysext/beuser/Classes/ViewHelpers/PermissionsViewHelper.php b/typo3/sysext/beuser/Classes/ViewHelpers/PermissionsViewHelper.php
index 5ba08fcfd270de2230052760968ad92c4a3b5d82..090f5e40a584e98f1df6b2b979e9e007b6b3a0b8 100644
--- a/typo3/sysext/beuser/Classes/ViewHelpers/PermissionsViewHelper.php
+++ b/typo3/sysext/beuser/Classes/ViewHelpers/PermissionsViewHelper.php
@@ -27,7 +27,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * is much better performance wise.
  * @internal
  */
-class PermissionsViewHelper extends AbstractViewHelper
+final class PermissionsViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/beuser/Classes/ViewHelpers/SpriteIconForRecordViewHelper.php b/typo3/sysext/beuser/Classes/ViewHelpers/SpriteIconForRecordViewHelper.php
index 0d9b76cad0c9fccceed6a4bd4a9e1006b3f88079..55cef6b1a4aa272248d30e37a621b46858fc2d75 100644
--- a/typo3/sysext/beuser/Classes/ViewHelpers/SpriteIconForRecordViewHelper.php
+++ b/typo3/sysext/beuser/Classes/ViewHelpers/SpriteIconForRecordViewHelper.php
@@ -25,7 +25,7 @@ use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
  * Views sprite icon for a record (object)
  * @internal
  */
-class SpriteIconForRecordViewHelper extends AbstractBackendViewHelper
+final class SpriteIconForRecordViewHelper extends AbstractBackendViewHelper
 {
     /**
      * As this ViewHelper renders HTML, the output must not be escaped.
diff --git a/typo3/sysext/beuser/Classes/ViewHelpers/SwitchUserViewHelper.php b/typo3/sysext/beuser/Classes/ViewHelpers/SwitchUserViewHelper.php
index c83f197575f5c1380527fb9127c7b82a6ad9d32c..efd0afa4b6ff16fff6001bc7f62ad3eaf119f7f6 100644
--- a/typo3/sysext/beuser/Classes/ViewHelpers/SwitchUserViewHelper.php
+++ b/typo3/sysext/beuser/Classes/ViewHelpers/SwitchUserViewHelper.php
@@ -29,7 +29,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * Displays 'SwitchUser' button to change current backend user to target backend user
  * @internal
  */
-class SwitchUserViewHelper extends AbstractViewHelper
+final class SwitchUserViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/core/Classes/ViewHelpers/Form/TypoScriptConstantsViewHelper.php b/typo3/sysext/core/Classes/ViewHelpers/Form/TypoScriptConstantsViewHelper.php
index 2a2d28172025884edf5ea350101e08e6f5243408..89ea8a36356e545d3c2e97b00aa3017e7a62d63c 100644
--- a/typo3/sysext/core/Classes/ViewHelpers/Form/TypoScriptConstantsViewHelper.php
+++ b/typo3/sysext/core/Classes/ViewHelpers/Form/TypoScriptConstantsViewHelper.php
@@ -30,7 +30,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\TagBuilder;
  *
  * @internal
  */
-class TypoScriptConstantsViewHelper extends AbstractTagBasedViewHelper
+final class TypoScriptConstantsViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var array
diff --git a/typo3/sysext/core/Classes/ViewHelpers/IconForRecordViewHelper.php b/typo3/sysext/core/Classes/ViewHelpers/IconForRecordViewHelper.php
index 00c69df660ca476503e4afba8311e07c897c8423..8a651df6c2b47a62c81de5e23ff0accd0264ca41 100644
--- a/typo3/sysext/core/Classes/ViewHelpers/IconForRecordViewHelper.php
+++ b/typo3/sysext/core/Classes/ViewHelpers/IconForRecordViewHelper.php
@@ -40,7 +40,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *         </span>
  *     </span>
  */
-class IconForRecordViewHelper extends AbstractViewHelper
+final class IconForRecordViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/core/Classes/ViewHelpers/IconForResourceViewHelper.php b/typo3/sysext/core/Classes/ViewHelpers/IconForResourceViewHelper.php
index 32cfc369453812388069b61dd9e46a4384118d24..79d382e8d5cb958cfa3a452ce55f5b6e78f01a2d 100644
--- a/typo3/sysext/core/Classes/ViewHelpers/IconForResourceViewHelper.php
+++ b/typo3/sysext/core/Classes/ViewHelpers/IconForResourceViewHelper.php
@@ -43,7 +43,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *         </span>
  *     </span>
  */
-class IconForResourceViewHelper extends AbstractViewHelper
+final class IconForResourceViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/core/Classes/ViewHelpers/IconViewHelper.php b/typo3/sysext/core/Classes/ViewHelpers/IconViewHelper.php
index 3dc06e903fe9e5ac045b730d5f4f20abea2430ec..619a5c71e2451327d7e15977bb4bc1c5f58bb360 100644
--- a/typo3/sysext/core/Classes/ViewHelpers/IconViewHelper.php
+++ b/typo3/sysext/core/Classes/ViewHelpers/IconViewHelper.php
@@ -53,7 +53,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *         </span>
  *     </span>
  */
-class IconViewHelper extends AbstractViewHelper
+final class IconViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/core/Classes/ViewHelpers/NormalizedUrlViewHelper.php b/typo3/sysext/core/Classes/ViewHelpers/NormalizedUrlViewHelper.php
index 8b3cd1370f86b8d3e28e2d48b88ead7992046616..203318150e365fecfe06780cb52457dd8c65af41 100644
--- a/typo3/sysext/core/Classes/ViewHelpers/NormalizedUrlViewHelper.php
+++ b/typo3/sysext/core/Classes/ViewHelpers/NormalizedUrlViewHelper.php
@@ -46,7 +46,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithContentArgumentAndRenderS
  *     /typo3/sysext/core/Resources/Public/Images/typo3_black.svg
  * @internal
  */
-class NormalizedUrlViewHelper extends AbstractViewHelper
+final class NormalizedUrlViewHelper extends AbstractViewHelper
 {
     use CompileWithContentArgumentAndRenderStatic;
 
diff --git a/typo3/sysext/core/Documentation/Changelog/12.0/Breaking-96107-DeprecatedFunctionalityRemoved.rst b/typo3/sysext/core/Documentation/Changelog/12.0/Breaking-96107-DeprecatedFunctionalityRemoved.rst
index e42cb494c32a7a64b41e162d2f53a0d5290ca434..6b93ff9d45aacd997ebecc749465cc4fc5dace77 100644
--- a/typo3/sysext/core/Documentation/Changelog/12.0/Breaking-96107-DeprecatedFunctionalityRemoved.rst
+++ b/typo3/sysext/core/Documentation/Changelog/12.0/Breaking-96107-DeprecatedFunctionalityRemoved.rst
@@ -49,6 +49,9 @@ The following PHP classes that have previously been marked as deprecated for v11
 - :php:`\TYPO3\CMS\Extbase\SignalSlot\Exception\InvalidSlotReturnException`
 - :php:`\TYPO3\CMS\Frontend\ContentObject\EditPanelContentObject`
 
+The following PHP classes have been declared final:
+- All fluid ViewHelpers
+
 The following PHP interfaces that have previously been marked as deprecated for v11 and were now removed:
 
 - :php:`\TYPO3\CMS\Backend\Toolbar\ClearCacheActionsHookInterface`
diff --git a/typo3/sysext/dashboard/Classes/ViewHelpers/Widget/ButtonViewHelper.php b/typo3/sysext/dashboard/Classes/ViewHelpers/Widget/ButtonViewHelper.php
index 0bbcca596c2b4fe1d9e3ae587d65fd6f384fc4a9..ba29b697c9e718d568dda34d80ef705a353cd417 100644
--- a/typo3/sysext/dashboard/Classes/ViewHelpers/Widget/ButtonViewHelper.php
+++ b/typo3/sysext/dashboard/Classes/ViewHelpers/Widget/ButtonViewHelper.php
@@ -35,7 +35,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
  *        {f:translate(id: button.title, default: button.title)}
  *    </dashboard:widget.button button="{button}" class="widget-cta">
  */
-class ButtonViewHelper extends AbstractTagBasedViewHelper
+final class ButtonViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/extensionmanager/Classes/ViewHelpers/Be/TriggerViewHelper.php b/typo3/sysext/extensionmanager/Classes/ViewHelpers/Be/TriggerViewHelper.php
index fd5b9b8f6a58e48326ed2bef25771cbfd979db74..a4fc806e8e3551aee25d827dbe5108500a0381ed 100644
--- a/typo3/sysext/extensionmanager/Classes/ViewHelpers/Be/TriggerViewHelper.php
+++ b/typo3/sysext/extensionmanager/Classes/ViewHelpers/Be/TriggerViewHelper.php
@@ -33,7 +33,7 @@ use TYPO3\CMS\Fluid\ViewHelpers\Be\AbstractBackendViewHelper;
  *
  * @internal
  */
-class TriggerViewHelper extends AbstractBackendViewHelper
+final class TriggerViewHelper extends AbstractBackendViewHelper
 {
     /**
      * @var bool
diff --git a/typo3/sysext/extensionmanager/Classes/ViewHelpers/ConstraintsViewHelper.php b/typo3/sysext/extensionmanager/Classes/ViewHelpers/ConstraintsViewHelper.php
index cd497279121257fa037747bb2441128fd7ed6f61..7bf131320241c483655743ea357c3ebdcc13f451 100644
--- a/typo3/sysext/extensionmanager/Classes/ViewHelpers/ConstraintsViewHelper.php
+++ b/typo3/sysext/extensionmanager/Classes/ViewHelpers/ConstraintsViewHelper.php
@@ -28,7 +28,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
  *
  * @internal
  */
-class ConstraintsViewHelper extends AbstractViewHelper
+final class ConstraintsViewHelper extends AbstractViewHelper
 {
     public function initializeArguments(): void
     {
diff --git a/typo3/sysext/extensionmanager/Classes/ViewHelpers/DownloadExtensionViewHelper.php b/typo3/sysext/extensionmanager/Classes/ViewHelpers/DownloadExtensionViewHelper.php
index 24a1d8990bc9992e6f095731d8ff413f2a6d15cc..d6d1e6a086f0dbc46756d325e7e8aab15f0d633a 100644
--- a/typo3/sysext/extensionmanager/Classes/ViewHelpers/DownloadExtensionViewHelper.php
+++ b/typo3/sysext/extensionmanager/Classes/ViewHelpers/DownloadExtensionViewHelper.php
@@ -27,7 +27,7 @@ use TYPO3\CMS\Fluid\ViewHelpers\Form\AbstractFormViewHelper;
  * ViewHelper
  * @internal
  */
-class DownloadExtensionViewHelper extends AbstractFormViewHelper
+final class DownloadExtensionViewHelper extends AbstractFormViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/extensionmanager/Classes/ViewHelpers/InstallationStateCssClassViewHelper.php b/typo3/sysext/extensionmanager/Classes/ViewHelpers/InstallationStateCssClassViewHelper.php
index 4392845b6be1e5b4189b56315e72198fda47e7b0..e19bbf0184ed4be962a3848b8837ed921e8c4855 100644
--- a/typo3/sysext/extensionmanager/Classes/ViewHelpers/InstallationStateCssClassViewHelper.php
+++ b/typo3/sysext/extensionmanager/Classes/ViewHelpers/InstallationStateCssClassViewHelper.php
@@ -24,7 +24,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * available or installed
  * @internal
  */
-class InstallationStateCssClassViewHelper extends AbstractViewHelper
+final class InstallationStateCssClassViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/extensionmanager/Classes/ViewHelpers/ProcessAvailableActionsViewHelper.php b/typo3/sysext/extensionmanager/Classes/ViewHelpers/ProcessAvailableActionsViewHelper.php
index 5c8044004fc38d5b6c0858797c988d223825292f..8f157adf68bf73222a6b1f5f8562d96149224ee5 100644
--- a/typo3/sysext/extensionmanager/Classes/ViewHelpers/ProcessAvailableActionsViewHelper.php
+++ b/typo3/sysext/extensionmanager/Classes/ViewHelpers/ProcessAvailableActionsViewHelper.php
@@ -24,7 +24,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
  * actions for a given extension.
  * @internal
  */
-class ProcessAvailableActionsViewHelper extends AbstractTagBasedViewHelper
+final class ProcessAvailableActionsViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var EventDispatcherInterface
diff --git a/typo3/sysext/extensionmanager/Classes/ViewHelpers/ReloadSqlDataViewHelper.php b/typo3/sysext/extensionmanager/Classes/ViewHelpers/ReloadSqlDataViewHelper.php
index 7745e3a4a301bcde5d5e478802af788bb80d8e87..13bf760bdfd63a87e12329a9ca2f5173d688062a 100644
--- a/typo3/sysext/extensionmanager/Classes/ViewHelpers/ReloadSqlDataViewHelper.php
+++ b/typo3/sysext/extensionmanager/Classes/ViewHelpers/ReloadSqlDataViewHelper.php
@@ -28,7 +28,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
  * ViewHelper for update script link
  * @internal
  */
-class ReloadSqlDataViewHelper extends AbstractTagBasedViewHelper
+final class ReloadSqlDataViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/extensionmanager/Classes/ViewHelpers/RemoveExtensionViewHelper.php b/typo3/sysext/extensionmanager/Classes/ViewHelpers/RemoveExtensionViewHelper.php
index 2d9543f6173c0ab68044fa218537dedc4ee3ce1f..d6ce241b3541c004c56e53eb074fc8c20ccfbeea 100644
--- a/typo3/sysext/extensionmanager/Classes/ViewHelpers/RemoveExtensionViewHelper.php
+++ b/typo3/sysext/extensionmanager/Classes/ViewHelpers/RemoveExtensionViewHelper.php
@@ -28,7 +28,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
  * ViewHelper for displaying a remove extension link
  * @internal
  */
-class RemoveExtensionViewHelper extends AbstractTagBasedViewHelper
+final class RemoveExtensionViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/extensionmanager/Classes/ViewHelpers/ToggleExtensionInstallationStateViewHelper.php b/typo3/sysext/extensionmanager/Classes/ViewHelpers/ToggleExtensionInstallationStateViewHelper.php
index dbc7921b135b835ea8ac2625b6d8eebdf62813c4..98cc6eb69b224763ad577b77a45b07e56c8ffd52 100644
--- a/typo3/sysext/extensionmanager/Classes/ViewHelpers/ToggleExtensionInstallationStateViewHelper.php
+++ b/typo3/sysext/extensionmanager/Classes/ViewHelpers/ToggleExtensionInstallationStateViewHelper.php
@@ -28,7 +28,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
  * Display a deactivate / activate link
  * @internal
  */
-class ToggleExtensionInstallationStateViewHelper extends AbstractTagBasedViewHelper
+final class ToggleExtensionInstallationStateViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/extensionmanager/Classes/ViewHelpers/Typo3DependencyViewHelper.php b/typo3/sysext/extensionmanager/Classes/ViewHelpers/Typo3DependencyViewHelper.php
index fb19c454d0a1a0cca7bb29b4506c740b5d0f5733..bb01b5b81cdf8854068ab117104fd92e751c361f 100644
--- a/typo3/sysext/extensionmanager/Classes/ViewHelpers/Typo3DependencyViewHelper.php
+++ b/typo3/sysext/extensionmanager/Classes/ViewHelpers/Typo3DependencyViewHelper.php
@@ -28,7 +28,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * @internal
  */
-class Typo3DependencyViewHelper extends AbstractViewHelper
+final class Typo3DependencyViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Asset/CssViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Asset/CssViewHelper.php
index 2fb77122b21aa2b295552591d3a4bf726332e160..efb0082bfe42fb5f4ae86d5318c10ffbf47db70c 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Asset/CssViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Asset/CssViewHelper.php
@@ -36,7 +36,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\TagBuilder;
  *
  * See also :ref:`_changelog-Feature-90522-IntroduceAssetCollector`
  */
-class CssViewHelper extends AbstractTagBasedViewHelper
+final class CssViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * This VH does not produce direct output, thus does not need to be wrapped in an escaping node
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Asset/ScriptViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Asset/ScriptViewHelper.php
index 280d84c99aa769f63cce85af8c2ed78eab5b1c13..e5e1d0dc8dbc65799aeae5570e5611f60a67334e 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Asset/ScriptViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Asset/ScriptViewHelper.php
@@ -34,7 +34,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\TagBuilder;
  *       alert('hello world');
  *    </f:asset.script>
  */
-class ScriptViewHelper extends AbstractTagBasedViewHelper
+final class ScriptViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * This VH does not produce direct output, thus does not need to be wrapped in an escaping node
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Be/Buttons/CshViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Be/Buttons/CshViewHelper.php
index 671e1046529f85f948dea367ff71b61ccc95e4d2..1058c0ffa1d6343022694dc9bc36d28f3e95a341 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Be/Buttons/CshViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Be/Buttons/CshViewHelper.php
@@ -53,7 +53,7 @@ use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
  *
  * A link with text "some text to link" to link the help.
  */
-class CshViewHelper extends AbstractBackendViewHelper
+final class CshViewHelper extends AbstractBackendViewHelper
 {
     /**
      * As this ViewHelper renders HTML, the output must not be escaped.
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Be/InfoboxViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Be/InfoboxViewHelper.php
index ac1d445ecf04f744dac2a807106c26777dcc7e54..1befafaf684dd5d4717cfd83e2c234b1da23ba3c 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Be/InfoboxViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Be/InfoboxViewHelper.php
@@ -55,7 +55,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithContentArgumentAndRenderS
  *
  *    <f:be.infobox title="Message title" message="your box content" state="-2" iconName="check" disableIcon="true" />
  */
-class InfoboxViewHelper extends AbstractViewHelper
+final class InfoboxViewHelper extends AbstractViewHelper
 {
     use CompileWithContentArgumentAndRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Be/Labels/CshViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Be/Labels/CshViewHelper.php
index e06211deb7ef8e3bfe521889e334638a7dfd1ba3..24ea02a59ca4061aae422b511779f5785e6b727e 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Be/Labels/CshViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Be/Labels/CshViewHelper.php
@@ -46,7 +46,7 @@ use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
  *
  * CSH label as known from the TYPO3 backend with some custom settings.
  */
-class CshViewHelper extends AbstractBackendViewHelper
+final class CshViewHelper extends AbstractBackendViewHelper
 {
     /**
      * As this ViewHelper renders HTML, the output must not be escaped.
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Be/LinkViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Be/LinkViewHelper.php
index 20c506326e568ab7b6c481e22b717b99bbfa4d1c..e4a4b4d8ac7aca9cb84b59cd64c722b05a76e9ab 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Be/LinkViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Be/LinkViewHelper.php
@@ -31,7 +31,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
  *
  * ``<a href="/typo3/module/web/ts?token=b6e9c9f&id=92">Go to web_ts</a>``
  */
-class LinkViewHelper extends AbstractTagBasedViewHelper
+final class LinkViewHelper extends AbstractTagBasedViewHelper
 {
 
     /**
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Be/Menus/ActionMenuItemGroupViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Be/Menus/ActionMenuItemGroupViewHelper.php
index 3ff7e23e731d87489e74036f21a3a08ffc3d7444..8b1047c7533473a3c7d9c4f64ede16e3395bd39c 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Be/Menus/ActionMenuItemGroupViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Be/Menus/ActionMenuItemGroupViewHelper.php
@@ -16,6 +16,7 @@
 namespace TYPO3\CMS\Fluid\ViewHelpers\Be\Menus;
 
 use TYPO3Fluid\Fluid\Core\Parser\SyntaxTree\ViewHelperNode;
+use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
 
 /**
  * ViewHelper which groups options of an option tag.
@@ -38,13 +39,20 @@ use TYPO3Fluid\Fluid\Core\Parser\SyntaxTree\ViewHelperNode;
  *      </f:be.menus.actionMenuItemGroup>
  *  </f:be.menus.actionMenu>
  */
-class ActionMenuItemGroupViewHelper extends ActionMenuViewHelper
+final class ActionMenuItemGroupViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var string
      */
     protected $tagName = 'optgroup';
 
+    /**
+     * An array of \TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\AbstractNode
+     *
+     * @var array
+     */
+    protected $childNodes = [];
+
     /**
      * Initialize arguments.
      *
@@ -53,6 +61,7 @@ class ActionMenuItemGroupViewHelper extends ActionMenuViewHelper
     public function initializeArguments()
     {
         parent::initializeArguments();
+        $this->registerArgument('defaultController', 'string', 'The default controller to be used');
         $this->registerArgument('label', 'string', 'The label of the option group', false, '');
     }
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Be/Menus/ActionMenuItemViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Be/Menus/ActionMenuItemViewHelper.php
index d46439d732f28879f2a6b4f519646fc807f360b1..40daa1b6bfd11b12ca9b2c010bc5754e8130f808 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Be/Menus/ActionMenuItemViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Be/Menus/ActionMenuItemViewHelper.php
@@ -49,7 +49,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
  *
  * Localized selectbox.
  */
-class ActionMenuItemViewHelper extends AbstractTagBasedViewHelper
+final class ActionMenuItemViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Be/Menus/ActionMenuViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Be/Menus/ActionMenuViewHelper.php
index 6de1beb7dd14b8bcd839e8280fec4ee0ec464869..270efe7396c81bf442fa0e62d416de23dfad6ece 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Be/Menus/ActionMenuViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Be/Menus/ActionMenuViewHelper.php
@@ -51,7 +51,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
  *
  * Localized selectbox.
  */
-class ActionMenuViewHelper extends AbstractTagBasedViewHelper
+final class ActionMenuViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Be/PageInfoViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Be/PageInfoViewHelper.php
index d91c1db0cbea949b87af8a0c5b8e9342846e272a..f141859dce6110605a4d574c1bb8d86dad8a252b 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Be/PageInfoViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Be/PageInfoViewHelper.php
@@ -37,7 +37,7 @@ use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
  *
  * Page info icon with context menu
  */
-class PageInfoViewHelper extends AbstractBackendViewHelper
+final class PageInfoViewHelper extends AbstractBackendViewHelper
 {
 
     /**
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Be/PagePathViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Be/PagePathViewHelper.php
index 581525dc350771b1827b85bc06dd1afedb241e56..f8a0da5827d828705acd76e9cfa04496634f73d2 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Be/PagePathViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Be/PagePathViewHelper.php
@@ -36,7 +36,7 @@ use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
  *
  * Current page path, prefixed with "Path:" and wrapped in a span with the class ``typo3-docheader-pagePath``.
  */
-class PagePathViewHelper extends AbstractBackendViewHelper
+final class PagePathViewHelper extends AbstractBackendViewHelper
 {
 
     /**
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Be/PageRendererViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Be/PageRendererViewHelper.php
index 3c5d1977a1c87d06beeb2eff91757035757efce0..3dbd661539055c8430fb5d5d468b582532d1fec0 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Be/PageRendererViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Be/PageRendererViewHelper.php
@@ -40,7 +40,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * :file:`EXT:your_extension/Resources/Public/JavaScript/Library2.js`
  * will be loaded, plus some inline labels for usage in JS code.
  */
-class PageRendererViewHelper extends AbstractViewHelper
+final class PageRendererViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Be/Security/IfAuthenticatedViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Be/Security/IfAuthenticatedViewHelper.php
index 4936876dbe9c29a142f04d25abb53a4631462edd..44cd672064205a7ca35d3aa534342f152d3aee40 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Be/Security/IfAuthenticatedViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Be/Security/IfAuthenticatedViewHelper.php
@@ -47,7 +47,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractConditionViewHelper;
  * Everything inside the :html:`<f:then></f:then>` is displayed the backend user is logged in.
  * :html:`<f:else></f:else>` is displayed if no backend user is logged in.
  */
-class IfAuthenticatedViewHelper extends AbstractConditionViewHelper
+final class IfAuthenticatedViewHelper extends AbstractConditionViewHelper
 {
     /**
      * This method decides if the condition is TRUE or FALSE. It can be overridden in extending viewhelpers to adjust functionality.
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Be/Security/IfHasRoleViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Be/Security/IfHasRoleViewHelper.php
index 77a6492144d0ef41a7411ba143198b61d7d0b1ee..e6e852708695a3de6dfc878cb9ac77b4f73ea8a3 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Be/Security/IfHasRoleViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Be/Security/IfHasRoleViewHelper.php
@@ -60,7 +60,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractConditionViewHelper;
  * logged in backend user belongs to the specified backend group.
  * Otherwise, everything inside the :html:`<f:else></f:else>` tag is displayed.
  */
-class IfHasRoleViewHelper extends AbstractConditionViewHelper
+final class IfHasRoleViewHelper extends AbstractConditionViewHelper
 {
     /**
      * Initializes the "role" argument.
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Be/TableListViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Be/TableListViewHelper.php
index 854eb937cebccc9d6c1af6a70b454ab84c951ebb..c243bf07efcfe0576ce31ff106cf0dcfa05b75b5 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Be/TableListViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Be/TableListViewHelper.php
@@ -60,7 +60,7 @@ use TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList;
  * List of "Website user" records with a text property of ``foo`` stored on PID ``1`` and two levels down.
  * Clicking on a username will open the TYPO3 info popup for the respective record
  */
-class TableListViewHelper extends AbstractBackendViewHelper
+final class TableListViewHelper extends AbstractBackendViewHelper
 {
     /**
      * As this ViewHelper renders HTML, the output must not be escaped.
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Be/UriViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Be/UriViewHelper.php
index 3b566e465ab7780cdc4f0b8515a1091eb525002b..cfbc05705c2afba5640a76ce32c6f21e9a4e86b6 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Be/UriViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Be/UriViewHelper.php
@@ -36,7 +36,7 @@ use TYPO3\CMS\Core\Utility\GeneralUtility;
  *
  * ``/typo3/module/web/ts?token=b6e9c9f&id=92``
  */
-class UriViewHelper extends AbstractBackendViewHelper
+final class UriViewHelper extends AbstractBackendViewHelper
 {
 
     /**
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/CObjectViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/CObjectViewHelper.php
index aa108c5f8dae5954252e581a577d9939f307e428..50e4978d0a8c0899159a40425939b9225f048be2 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/CObjectViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/CObjectViewHelper.php
@@ -85,7 +85,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithContentArgumentAndRenderS
  * TypoScript. If only a single value is passed or the ``currentValueKey`` is specified, :ts:`.current = 1`
  * can be used in the TypoScript.
  */
-class CObjectViewHelper extends AbstractViewHelper
+final class CObjectViewHelper extends AbstractViewHelper
 {
     use CompileWithContentArgumentAndRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Debug/RenderViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Debug/RenderViewHelper.php
index 5b32828140842164327d3271615120b8c79b9226..f333c4c0a5e11fe8771a93b9f0336fcce9566bca 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Debug/RenderViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Debug/RenderViewHelper.php
@@ -28,7 +28,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
  * :php:`ViewHelperResolver` class). Also possible to use explicitly by using
  * ``f:debug.render`` instead of the normal ``f:render`` statement.
  */
-class RenderViewHelper extends AbstractViewHelper
+final class RenderViewHelper extends AbstractViewHelper
 {
 
     /**
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/DebugViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/DebugViewHelper.php
index 9442b788393fe21ec90a1bec627c1bff321c5b98..561ce70b535a4ea587845b5666f1894d0eeab2f3 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/DebugViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/DebugViewHelper.php
@@ -51,7 +51,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * [A HTML view of the var_dump]
  */
-class DebugViewHelper extends AbstractViewHelper
+final class DebugViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/FlashMessagesViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/FlashMessagesViewHelper.php
index 04a2691c5ea832bd3786cd84faf67dd7e47ac640..efcf1f49969d5028665bfe3472b48d8564347abc 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/FlashMessagesViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/FlashMessagesViewHelper.php
@@ -94,7 +94,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  *    <f:flashMessages queueIdentifier="myQueue" />
  */
-class FlashMessagesViewHelper extends AbstractViewHelper
+final class FlashMessagesViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Form/ButtonViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Form/ButtonViewHelper.php
index f4773f3e365356eaf213ea8ffb09a85a0b37d368..12c1beba6fa9c465670db169571212de75e43e57 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Form/ButtonViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Form/ButtonViewHelper.php
@@ -42,7 +42,7 @@ namespace TYPO3\CMS\Fluid\ViewHelpers\Form;
  *
  *    <button disabled="disabled" formmethod="post" formnovalidate="formnovalidate" type="reset" name="myForm[buttonName]" value="buttonValue">Cancel</button>
  */
-class ButtonViewHelper extends AbstractFormFieldViewHelper
+final class ButtonViewHelper extends AbstractFormFieldViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Form/CheckboxViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Form/CheckboxViewHelper.php
index 93b1096de62be2a4a0990e4fcfff7b54cb3ce30d..220c2799c68412e7f7b963de0f82242e5e2f72c5 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Form/CheckboxViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Form/CheckboxViewHelper.php
@@ -58,7 +58,7 @@ namespace TYPO3\CMS\Fluid\ViewHelpers\Form;
  *
  * Depending on property ``interests``.
  */
-class CheckboxViewHelper extends AbstractFormFieldViewHelper
+final class CheckboxViewHelper extends AbstractFormFieldViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Form/HiddenViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Form/HiddenViewHelper.php
index 48f156f81a249ff6c988bc6b82ee2876361f8a85..626a3127369d44f2bba2d8ea0723df09a6216943 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Form/HiddenViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Form/HiddenViewHelper.php
@@ -32,7 +32,7 @@ namespace TYPO3\CMS\Fluid\ViewHelpers\Form;
  * You can also use the "property" attribute if you have bound an object to the form.
  * See :ref:`<f:form> <typo3-fluid-form>` for more documentation.
  */
-class HiddenViewHelper extends AbstractFormFieldViewHelper
+final class HiddenViewHelper extends AbstractFormFieldViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Form/PasswordViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Form/PasswordViewHelper.php
index fb7b112c3c4f99c77d516c4636d98890fd24943c..f916eadc6e2bb633a24bedd0b24e4fedc122662d 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Form/PasswordViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Form/PasswordViewHelper.php
@@ -29,7 +29,7 @@ namespace TYPO3\CMS\Fluid\ViewHelpers\Form;
  *
  *    <input type="password" name="myPassword" value="default value" />
  */
-class PasswordViewHelper extends AbstractFormFieldViewHelper
+final class PasswordViewHelper extends AbstractFormFieldViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Form/RadioViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Form/RadioViewHelper.php
index f3b707abf8ea408a39f78fa92711e1342c1d512c..77516549a230c3adf47e9ab9bdc07f810dedf08a 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Form/RadioViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Form/RadioViewHelper.php
@@ -60,7 +60,7 @@ namespace TYPO3\CMS\Fluid\ViewHelpers\Form;
  *
  * Depending on property ``newsletter``.
  */
-class RadioViewHelper extends AbstractFormFieldViewHelper
+final class RadioViewHelper extends AbstractFormFieldViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Form/Select/OptgroupViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Form/Select/OptgroupViewHelper.php
index f5193027262eca1d9ae2f5038b6983f49695e760..39e98639642bff236eca05cdfe3595595f381da2 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Form/Select/OptgroupViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Form/Select/OptgroupViewHelper.php
@@ -21,7 +21,7 @@ use TYPO3\CMS\Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper;
  * Adds custom :html:`<optgroup>` tags inside an :ref:`<f:form.select> <typo3-fluid-form-select>`,
  * supports further child :ref:`<f:form.select.option> <typo3-fluid-form-select-option>` tags.
  */
-class OptgroupViewHelper extends AbstractFormFieldViewHelper
+final class OptgroupViewHelper extends AbstractFormFieldViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Form/Select/OptionViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Form/Select/OptionViewHelper.php
index 304eb7e327032ff70f43bb0eceb12b2ba3738f60..aa55865301e7760dc987585047da4b9a67ebdb2c 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Form/Select/OptionViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Form/Select/OptionViewHelper.php
@@ -21,7 +21,7 @@ use TYPO3\CMS\Fluid\ViewHelpers\Form\SelectViewHelper;
 /**
  * Adds custom :html:`<option>` tags inside an :ref:`<f:form.select> <typo3-fluid-form-select>`.
  */
-class OptionViewHelper extends AbstractFormFieldViewHelper
+final class OptionViewHelper extends AbstractFormFieldViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Form/SelectViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Form/SelectViewHelper.php
index f596201c0c304b50c91784d3d4f92636da5355ac..ea96081ae10ac7e60f48cdd1ec53927561926aed 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Form/SelectViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Form/SelectViewHelper.php
@@ -91,7 +91,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Exception;
  *
  * The ``value`` property now expects a domain object, and tests for object equivalence.
  */
-class SelectViewHelper extends AbstractFormFieldViewHelper
+final class SelectViewHelper extends AbstractFormFieldViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Form/SubmitViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Form/SubmitViewHelper.php
index dd08a4955db6f068ccf311682f0c0d4a0c838c87..3bb1e1f1f0c9272e77e4a7d4729839c746ec9f8e 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Form/SubmitViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Form/SubmitViewHelper.php
@@ -43,7 +43,7 @@ namespace TYPO3\CMS\Fluid\ViewHelpers\Form;
  *
  *    <input type="submit" name="mySubmit" value="Send Mail" />
  */
-class SubmitViewHelper extends AbstractFormFieldViewHelper
+final class SubmitViewHelper extends AbstractFormFieldViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Form/TextareaViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Form/TextareaViewHelper.php
index 304ba2f1767b0dc7346981b5c9e0a35a2e6e9831..872cbfbd219317a923b21b2012837849fbffe76b 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Form/TextareaViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Form/TextareaViewHelper.php
@@ -31,7 +31,7 @@ namespace TYPO3\CMS\Fluid\ViewHelpers\Form;
  *
  *    <textarea name="myTextArea">This is shown inside the textarea</textarea>
  */
-class TextareaViewHelper extends AbstractFormFieldViewHelper
+final class TextareaViewHelper extends AbstractFormFieldViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Form/TextfieldViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Form/TextfieldViewHelper.php
index 8dfa12295fa9c0034b3232fbd419fb19a120bcb5..396dd1628b34ca72c2dac77339a90a22e5c4c6c3 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Form/TextfieldViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Form/TextfieldViewHelper.php
@@ -29,7 +29,7 @@ namespace TYPO3\CMS\Fluid\ViewHelpers\Form;
  *
  *    <input type="text" name="myTextBox" value="default value" />
  */
-class TextfieldViewHelper extends AbstractFormFieldViewHelper
+final class TextfieldViewHelper extends AbstractFormFieldViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Form/UploadViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Form/UploadViewHelper.php
index e34e2a7589f1d64e05f2b31062eff20061af973b..966d7dfcbaaa76a0e1e7c428fc18609fd2a4e7c2 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Form/UploadViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Form/UploadViewHelper.php
@@ -30,7 +30,7 @@ namespace TYPO3\CMS\Fluid\ViewHelpers\Form;
  *
  *    <input type="file" name="file" />
  */
-class UploadViewHelper extends AbstractFormFieldViewHelper
+final class UploadViewHelper extends AbstractFormFieldViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Form/ValidationResultsViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Form/ValidationResultsViewHelper.php
index 1cb7e98580c48645c0507b621d26e38ae3de97a7..0e1187b9906fadd433cac115873f3c4e9c669b24 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Form/ValidationResultsViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Form/ValidationResultsViewHelper.php
@@ -67,7 +67,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *      <li>1234567890: Some error message</li>
  *    </ul>
  */
-class ValidationResultsViewHelper extends AbstractViewHelper
+final class ValidationResultsViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Format/BytesViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Format/BytesViewHelper.php
index c77eb165cd0e7a46a5ee81a97710df5546790765..cf466f071caf7e0722d113f5b79d062cf14e6784 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Format/BytesViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Format/BytesViewHelper.php
@@ -59,7 +59,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithContentArgumentAndRenderS
  * ``123 KB``
  * Depending on the value of ``{fileSize}``.
  */
-class BytesViewHelper extends AbstractViewHelper
+final class BytesViewHelper extends AbstractViewHelper
 {
     use CompileWithContentArgumentAndRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Format/CaseViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Format/CaseViewHelper.php
index a491c51d7bdb6fcf7b7dfb7dcc01cd5bfa428d54..3fb358a2e1da185f3436a00ed76746fe13209e9c 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Format/CaseViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Format/CaseViewHelper.php
@@ -71,7 +71,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  *    SomeString
  */
-class CaseViewHelper extends AbstractViewHelper
+final class CaseViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Format/CropViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Format/CropViewHelper.php
index e3eda42b693ef2ade8af596c17ede7d8fdeaed0a..308d1015f19c6bdd8625bba08db4f5e683e61dd8 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Format/CropViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Format/CropViewHelper.php
@@ -86,7 +86,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * ``someLongText cropped after 10 characters…``
  * Depending on the value of ``{someLongText}``.
  */
-class CropViewHelper extends AbstractViewHelper
+final class CropViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Format/CurrencyViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Format/CurrencyViewHelper.php
index 0e28a10b7df366739b209df8697de5a6df346959..b7b77e7afbd3f89b2eef0420de8aeb1fbab8a7b2 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Format/CurrencyViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Format/CurrencyViewHelper.php
@@ -75,7 +75,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  *     123,-
  */
-class CurrencyViewHelper extends AbstractViewHelper
+final class CurrencyViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Format/DateViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Format/DateViewHelper.php
index 548ea82d75508b0c7abc7dcf0cc9e4ec044b41f1..1c6f64e661db8917f120a91d1a5310792cc59f93 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Format/DateViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Format/DateViewHelper.php
@@ -99,7 +99,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithContentArgumentAndRenderS
  * ``1980-12-13``
  * Depending on the value of ``{dateObject}``.
  */
-class DateViewHelper extends AbstractViewHelper
+final class DateViewHelper extends AbstractViewHelper
 {
     use CompileWithContentArgumentAndRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Format/HtmlViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Format/HtmlViewHelper.php
index 55af0abea149dc9935d135c4ec50ffbbb09126d2..72e7e231f73a4d858a39f7bc111edd16e9490d10 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Format/HtmlViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Format/HtmlViewHelper.php
@@ -68,7 +68,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * .. _parseFunc: https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/Functions/Parsefunc.html
  */
-class HtmlViewHelper extends AbstractViewHelper
+final class HtmlViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Format/HtmlentitiesDecodeViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Format/HtmlentitiesDecodeViewHelper.php
index 7aef16804ab2196cf34f41cbb5ac74fa75e381dd..f58d36f05227904f0c5a2867fe913e2b035d1360 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Format/HtmlentitiesDecodeViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Format/HtmlentitiesDecodeViewHelper.php
@@ -47,7 +47,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithContentArgumentAndRenderS
  *
  * But encoded as ISO-8859-1.
  */
-class HtmlentitiesDecodeViewHelper extends AbstractEncodingViewHelper
+final class HtmlentitiesDecodeViewHelper extends AbstractEncodingViewHelper
 {
     use CompileWithContentArgumentAndRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Format/HtmlentitiesViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Format/HtmlentitiesViewHelper.php
index bd2a72776536252adaf90a51407f1f064080c914..98ba5e8a123b0dd9d75a89f7d9732b3443317c1c 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Format/HtmlentitiesViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Format/HtmlentitiesViewHelper.php
@@ -47,7 +47,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithContentArgumentAndRenderS
  *
  * But encoded as ISO-8859-1.
  */
-class HtmlentitiesViewHelper extends AbstractEncodingViewHelper
+final class HtmlentitiesViewHelper extends AbstractEncodingViewHelper
 {
     use CompileWithContentArgumentAndRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Format/JsonViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Format/JsonViewHelper.php
index f602d3edc54ca5c6d2d4fa5f8321d70c9b73d185..a1127e76e0965b8d47febf83580abb86d57ba52d 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Format/JsonViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Format/JsonViewHelper.php
@@ -58,7 +58,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithContentArgumentAndRenderS
  *
  * ``{"0":"bar","1":"baz"}``
  */
-class JsonViewHelper extends AbstractViewHelper
+final class JsonViewHelper extends AbstractViewHelper
 {
     use CompileWithContentArgumentAndRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Format/Nl2brViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Format/Nl2brViewHelper.php
index 5fa52c6435acc33ebb92b8280bec29aa5bc114ca..c1041b3acbbd696cf8e95092945cdcec06cefed8 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Format/Nl2brViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Format/Nl2brViewHelper.php
@@ -44,7 +44,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithContentArgumentAndRenderS
  *
  * Text with line breaks replaced by ``<br />``
  */
-class Nl2brViewHelper extends AbstractViewHelper
+final class Nl2brViewHelper extends AbstractViewHelper
 {
     use CompileWithContentArgumentAndRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Format/NumberViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Format/NumberViewHelper.php
index 2e1512eb6a9f8a3d6344d4abaf126bbd05e2d3ff..9c2d3151aa8c116b26381b8744ba3194f388d703 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Format/NumberViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Format/NumberViewHelper.php
@@ -46,7 +46,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * ``423.423,2``
  */
-class NumberViewHelper extends AbstractViewHelper
+final class NumberViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Format/PaddingViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Format/PaddingViewHelper.php
index c2b68781c4ef065f60e8e8729cf78c8254699481..ec5d3f8daa7e1f8799a2261fe49ce37446d4d603 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Format/PaddingViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Format/PaddingViewHelper.php
@@ -58,7 +58,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithContentArgumentAndRenderS
  *
  * ``--TYPO3---``
  */
-class PaddingViewHelper extends AbstractViewHelper
+final class PaddingViewHelper extends AbstractViewHelper
 {
     use CompileWithContentArgumentAndRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Format/StripTagsViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Format/StripTagsViewHelper.php
index 736f22bee33b9b81f5f63d6afe1bb61fa95a1e25..0db2ad8413515cddb2f1b7209c0df599ee3edc16 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Format/StripTagsViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Format/StripTagsViewHelper.php
@@ -69,7 +69,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithContentArgumentAndRenderS
  *
  * Text with p, span, div and script Tags inside, all other tags are removed.
  */
-class StripTagsViewHelper extends AbstractViewHelper
+final class StripTagsViewHelper extends AbstractViewHelper
 {
     use CompileWithContentArgumentAndRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Format/UrlencodeViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Format/UrlencodeViewHelper.php
index 11e7f36cecb1552a24b01b4f2d852f2069d95c5a..746922ec7a5c87f2ae9d426633468f6f98d6ba0f 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Format/UrlencodeViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Format/UrlencodeViewHelper.php
@@ -49,7 +49,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithContentArgumentAndRenderS
  *
  * Url encoded text :php:`rawurlencode()` applied.
  */
-class UrlencodeViewHelper extends AbstractViewHelper
+final class UrlencodeViewHelper extends AbstractViewHelper
 {
     use CompileWithContentArgumentAndRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/ImageViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/ImageViewHelper.php
index 3e952da407ad11f48ba0587c7809db5aef8d67e2..81aa186d9d2215fd7c2e3ebf7c3711bdd45a5b39 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/ImageViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/ImageViewHelper.php
@@ -88,7 +88,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Exception;
  *
  * ``Could not get image resource for "NonExistingImage.png".``
  */
-class ImageViewHelper extends AbstractTagBasedViewHelper
+final class ImageViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Link/ActionViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Link/ActionViewHelper.php
index dd6658958dd0dde76970e001a1f6ac3902635749..6da72b5f6ea41ea7e36f7107781410b7bd374509 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Link/ActionViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Link/ActionViewHelper.php
@@ -35,7 +35,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
  *
  * Depending on the current page and your TypoScript configuration.
  */
-class ActionViewHelper extends AbstractTagBasedViewHelper
+final class ActionViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Link/EmailViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Link/EmailViewHelper.php
index fa841d4561c965c12d21dd1b4bdea3bc3351f6fd..0745342b3d15a368ddbc9f60507ddf367d1176fe 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Link/EmailViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Link/EmailViewHelper.php
@@ -54,7 +54,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
  *
  * Depending on `spamProtectEmailAddresses`_ setting.
  */
-class EmailViewHelper extends AbstractTagBasedViewHelper
+final class EmailViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Link/ExternalViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Link/ExternalViewHelper.php
index 04caa291d7ad85cb42b4883388748cd0aea96249..26f89726c3747b6fb427aeeb42089f3e00e76197 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Link/ExternalViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Link/ExternalViewHelper.php
@@ -45,7 +45,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
  *
  *    <a href="ftp://typo3.org">external ftp link</a>
  */
-class ExternalViewHelper extends AbstractTagBasedViewHelper
+final class ExternalViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Link/FileViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Link/FileViewHelper.php
index 1dfa62576ec1f6a8fbd47c07c9f0f6fba998e114..810704d2fd7e05c51e7887469c07944ab793f821 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Link/FileViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Link/FileViewHelper.php
@@ -63,7 +63,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Exception;
  *
  *    <a href="https://example.com/index.php?eID=dumpFile&t=f&f=123&dl=1&fn=alternative-name.jpg&token=79bce812">Download file</a>
  */
-class FileViewHelper extends AbstractTagBasedViewHelper
+final class FileViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Link/PageViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Link/PageViewHelper.php
index ba49892600009e43750846cec2caa7c8bf093ec2..ae38b6405f8bf9144c1d157a9164a4f5a17c2de4 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Link/PageViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Link/PageViewHelper.php
@@ -64,7 +64,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
  *
  * Depending on current page, routing and page path configuration.
  */
-class PageViewHelper extends AbstractTagBasedViewHelper
+final class PageViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Link/TypolinkViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Link/TypolinkViewHelper.php
index e1c8f3ebf2cf2b8c1efd16b877c92ebbd8f98bad..f021b9de2b076063624dcd4009cca93b662d3e90 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Link/TypolinkViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Link/TypolinkViewHelper.php
@@ -87,7 +87,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * Depending on routing and page path configuration.
  */
-class TypolinkViewHelper extends AbstractViewHelper
+final class TypolinkViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/MediaViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/MediaViewHelper.php
index 0604676af1c686f812af274e54168c7e19b2bbc9..ba266003c96713e12edb3c73de70e218af4ebd59 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/MediaViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/MediaViewHelper.php
@@ -66,7 +66,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Exception;
  *
  *    <video width="400" height="375" controls loop><source src="fileadmin/user_upload/my-video.mp4" type="video/mp4"></video>
  */
-class MediaViewHelper extends AbstractTagBasedViewHelper
+final class MediaViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/RenderViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/RenderViewHelper.php
index 048d322c206061b224b13fc0732ca0939a35083b..fd3a961a126f5cf692299f8de07f4171a73d2aa4 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/RenderViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/RenderViewHelper.php
@@ -15,7 +15,7 @@
 
 namespace TYPO3\CMS\Fluid\ViewHelpers;
 
-class RenderViewHelper extends \TYPO3Fluid\Fluid\ViewHelpers\RenderViewHelper
+final class RenderViewHelper extends \TYPO3Fluid\Fluid\ViewHelpers\RenderViewHelper
 {
     public function initializeArguments()
     {
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Sanitize/HtmlViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Sanitize/HtmlViewHelper.php
index 03c91b39810361159527516a32bce87cfc2ebc64..91b8314f01b1d738f6094257c6dbe48b64627ea2 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Sanitize/HtmlViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Sanitize/HtmlViewHelper.php
@@ -55,7 +55,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  *    {richTextFieldContent -> f:sanitize.html(build: 'default')}
  */
-class HtmlViewHelper extends AbstractViewHelper
+final class HtmlViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Security/IfAuthenticatedViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Security/IfAuthenticatedViewHelper.php
index 6a0afa7a02ace5c577c1a803dc3931623a316af9..6ad365a662aba0938d5ffd9306630b609f904663 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Security/IfAuthenticatedViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Security/IfAuthenticatedViewHelper.php
@@ -54,7 +54,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractConditionViewHelper;
  * Everything inside the :html:`<f:then></f:then>` tag is displayed if frontend user is authenticated.
  * Otherwise, everything inside the :html:`<f:else></f:else>` tag is displayed.
  */
-class IfAuthenticatedViewHelper extends AbstractConditionViewHelper
+final class IfAuthenticatedViewHelper extends AbstractConditionViewHelper
 {
     /**
      * This method decides if the condition is TRUE or FALSE. It can be overridden in extending viewhelpers to adjust functionality.
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Security/IfHasRoleViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Security/IfHasRoleViewHelper.php
index 4e90f2be7278141eb6e2729ea11f94358441da38..5e5c43cddaf33065dd0e985fff5fa6b51f8b6495 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Security/IfHasRoleViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Security/IfHasRoleViewHelper.php
@@ -69,7 +69,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractConditionViewHelper;
  * Everything inside the :html:`<f:then></f:then>` tag is displayed if the logged in FE user belongs to the specified role.
  * Otherwise, everything inside the :html:`<f:else></f:else>` tag is displayed.
  */
-class IfHasRoleViewHelper extends AbstractConditionViewHelper
+final class IfHasRoleViewHelper extends AbstractConditionViewHelper
 {
     /**
      * Initializes the "role" argument.
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Transform/HtmlViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Transform/HtmlViewHelper.php
index e67d833e00ac2063aa87c6334327fcaa3b546e5a..beecc0896a3e32627621b979bbf184e5583abff5 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Transform/HtmlViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Transform/HtmlViewHelper.php
@@ -50,7 +50,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  *    {content -> f:transform.html(selector:'a.href', onFailure:'removeEnclosure')}
  */
-class HtmlViewHelper extends AbstractViewHelper
+final class HtmlViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/TranslateViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/TranslateViewHelper.php
index e3ed558feaea31aed5bf4a2404be661d1ecc917f..d7011963f626e874eafe3291d5d8340e2443e768 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/TranslateViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/TranslateViewHelper.php
@@ -95,7 +95,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * Value of key ``someKey`` in the current website language.
  * The locallang file of extension "some_extension_name" will be used.
  */
-class TranslateViewHelper extends AbstractViewHelper
+final class TranslateViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Uri/ActionViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Uri/ActionViewHelper.php
index bafee576fd2aa6e9a078d29ba35415f5994a9031..7ee727f76c4c3aac607e2d466ffc686a0af66b70 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Uri/ActionViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Uri/ActionViewHelper.php
@@ -33,7 +33,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * Depending on current page, routing and page path configuration.
  */
-class ActionViewHelper extends AbstractViewHelper
+final class ActionViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Uri/ExternalViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Uri/ExternalViewHelper.php
index e34ad689b6ac48b4098a60ff5d509279688ad891..56cf2d2fc965d5951cb4f290d185111ba89d4f53 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Uri/ExternalViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Uri/ExternalViewHelper.php
@@ -44,7 +44,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * ``ftp://typo3.org``
  */
-class ExternalViewHelper extends AbstractViewHelper
+final class ExternalViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Uri/ImageViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Uri/ImageViewHelper.php
index 0f047122a7117bf37ed900a8650d568f39b96c56..9c3ad975b1b465fd9817ed97a51c9b89049d7df0 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Uri/ImageViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Uri/ImageViewHelper.php
@@ -82,7 +82,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * ``Could not get image resource for "NonExistingImage.png".``
  */
-class ImageViewHelper extends AbstractViewHelper
+final class ImageViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Uri/PageViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Uri/PageViewHelper.php
index 202bdb8bc9d7ca1fcf79841f1ddd4e7b62e1474a..9aea8c02bba140f85e0f4f14318239570b1ed269 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Uri/PageViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Uri/PageViewHelper.php
@@ -59,7 +59,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * Depending on current page, routing and page path configuration.
  */
-class PageViewHelper extends AbstractViewHelper
+final class PageViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Uri/ResourceViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Uri/ResourceViewHelper.php
index 2140012a9602f2152af50c2a68c5f4ab21cd8c36..bef5da513cd423022883eb941391274860cb2be3 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Uri/ResourceViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Uri/ResourceViewHelper.php
@@ -51,7 +51,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  *    <link href="typo3conf/ext/another_extension/Resources/Public/css/stylesheet.css" rel="stylesheet" />
  */
-class ResourceViewHelper extends AbstractViewHelper
+final class ResourceViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Uri/TypolinkViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Uri/TypolinkViewHelper.php
index a9d500b4e5487f9cfe72814903c9df46d8253692..f682348a055873540c2e369f685e4015c8423a5d 100644
--- a/typo3/sysext/fluid/Classes/ViewHelpers/Uri/TypolinkViewHelper.php
+++ b/typo3/sysext/fluid/Classes/ViewHelpers/Uri/TypolinkViewHelper.php
@@ -56,7 +56,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * Depending on routing and page path configuration.
  */
-class TypolinkViewHelper extends AbstractViewHelper
+final class TypolinkViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Link/TypolinkViewHelperTest.php b/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Link/TypolinkViewHelperTest.php
index ea68b2d883d0fcb4f4c76d856164e94c0eb2ce4a..2d7c2e0a7d8568ee86e4965a5e78e8b1646864a9 100644
--- a/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Link/TypolinkViewHelperTest.php
+++ b/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Link/TypolinkViewHelperTest.php
@@ -218,17 +218,12 @@ class TypolinkViewHelperTest extends UnitTestCase
      * @test
      * @dataProvider decodedConfigurationAndFluidArgumentDataProvider
      */
-    public function mergeTypoLinkConfigurationMergesData(
-        array $decodedConfiguration,
-        array $viewHelperArguments,
-        array $expectation
-    ): void {
-        $subject = $this->getAccessibleMock(TypolinkViewHelper::class, ['renderChildren']);
-        $result = $subject->_call(
-            'mergeTypoLinkConfiguration',
-            $decodedConfiguration,
-            $viewHelperArguments
-        );
+    public function mergeTypoLinkConfigurationMergesData(array $decodedConfiguration, array $viewHelperArguments, array $expectation): void
+    {
+        $mock = \Closure::bind(static function (TypolinkViewHelper $typolinkViewHelper) use ($decodedConfiguration, $viewHelperArguments, &$result) {
+            $result = $typolinkViewHelper->mergeTypoLinkConfiguration($decodedConfiguration, $viewHelperArguments);
+        }, null, TypolinkViewHelper::class);
+        $mock(new TypolinkViewHelper());
         self::assertSame($expectation, $result);
     }
 }
diff --git a/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Uri/TypolinkViewHelperTest.php b/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Uri/TypolinkViewHelperTest.php
index c7e09893471518498793f0a3aae1a02d7bb473eb..7401bfeaea57080ec80ee8277ce3c29ec3dd971a 100644
--- a/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Uri/TypolinkViewHelperTest.php
+++ b/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Uri/TypolinkViewHelperTest.php
@@ -82,9 +82,10 @@ class TypolinkViewHelperTest extends UnitTestCase
      */
     public function mergeTypoLinkConfigurationDoesNotModifyData(array $decodedConfiguration): void
     {
-        /** @var \TYPO3\TestingFramework\Core\AccessibleObjectInterface $subject */
-        $subject = $this->getAccessibleMock(TypolinkViewHelper::class, ['dummy']);
-        $result = $subject->_call('mergeTypoLinkConfiguration', $decodedConfiguration, []);
+        $mock = \Closure::bind(static function (TypolinkViewHelper $typolinkViewHelper) use ($decodedConfiguration, &$result) {
+            $result = $typolinkViewHelper->mergeTypoLinkConfiguration($decodedConfiguration, []);
+        }, null, TypolinkViewHelper::class);
+        $mock(new TypolinkViewHelper());
         self::assertSame($decodedConfiguration, $result);
     }
 
@@ -179,11 +180,12 @@ class TypolinkViewHelperTest extends UnitTestCase
      * @test
      * @dataProvider decodedConfigurationAndFluidArgumentDataProvider
      */
-    public function mergeTypoLinkConfigurationMergesData(array $decodedConfiguration, array $viewHelperArguments, array $expected): void
+    public function mergeTypoLinkConfigurationMergesData(array $decodedConfiguration, array $viewHelperArguments, array $expectation): void
     {
-        /** @var \TYPO3\TestingFramework\Core\AccessibleObjectInterface $subject */
-        $subject = $this->getAccessibleMock(TypolinkViewHelper::class, ['dummy']);
-        $result = $subject->_call('mergeTypoLinkConfiguration', $decodedConfiguration, $viewHelperArguments);
-        self::assertSame($expected, $result);
+        $mock = \Closure::bind(static function (TypolinkViewHelper $typolinkViewHelper) use ($decodedConfiguration, $viewHelperArguments, &$result) {
+            $result = $typolinkViewHelper->mergeTypoLinkConfiguration($decodedConfiguration, $viewHelperArguments);
+        }, null, TypolinkViewHelper::class);
+        $mock(new TypolinkViewHelper());
+        self::assertSame($expectation, $result);
     }
 }
diff --git a/typo3/sysext/fluid_styled_content/Classes/ViewHelpers/Link/ClickEnlargeViewHelper.php b/typo3/sysext/fluid_styled_content/Classes/ViewHelpers/Link/ClickEnlargeViewHelper.php
index 950a9b11b3331e9be66a337ca767876d66683239..0424077021a7b6280dfb279b995c477637afe407 100644
--- a/typo3/sysext/fluid_styled_content/Classes/ViewHelpers/Link/ClickEnlargeViewHelper.php
+++ b/typo3/sysext/fluid_styled_content/Classes/ViewHelpers/Link/ClickEnlargeViewHelper.php
@@ -38,7 +38,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * @internal this is not part of TYPO3 Core API.
  */
-class ClickEnlargeViewHelper extends AbstractViewHelper
+final class ClickEnlargeViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/form/Classes/ViewHelpers/Be/MaximumFileSizeViewHelper.php b/typo3/sysext/form/Classes/ViewHelpers/Be/MaximumFileSizeViewHelper.php
index 194b795fb16ccac9153dfbaf44566ed8a718a276..80466e965375cfad9ae2db1f7fd4b1c138c7b535 100644
--- a/typo3/sysext/form/Classes/ViewHelpers/Be/MaximumFileSizeViewHelper.php
+++ b/typo3/sysext/form/Classes/ViewHelpers/Be/MaximumFileSizeViewHelper.php
@@ -28,7 +28,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * Scope: backend
  * @internal
  */
-class MaximumFileSizeViewHelper extends AbstractViewHelper
+final class MaximumFileSizeViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/form/Classes/ViewHelpers/Be/RenderContentElementPreviewViewHelper.php b/typo3/sysext/form/Classes/ViewHelpers/Be/RenderContentElementPreviewViewHelper.php
index 00f2b0f7a6066837cfded7fe04b49fca6625500e..ded11e93d7c0569686a1456e0aea9c1a53bfd606 100644
--- a/typo3/sysext/form/Classes/ViewHelpers/Be/RenderContentElementPreviewViewHelper.php
+++ b/typo3/sysext/form/Classes/ViewHelpers/Be/RenderContentElementPreviewViewHelper.php
@@ -34,7 +34,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * Scope: backend
  * @internal
  */
-class RenderContentElementPreviewViewHelper extends AbstractViewHelper
+final class RenderContentElementPreviewViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/form/Classes/ViewHelpers/Form/DatePickerViewHelper.php b/typo3/sysext/form/Classes/ViewHelpers/Form/DatePickerViewHelper.php
index c4734488fab066542859d18b5fc1f3e384936498..5abc4a5c13c0177e8870f3860774e8574e40e1ae 100644
--- a/typo3/sysext/form/Classes/ViewHelpers/Form/DatePickerViewHelper.php
+++ b/typo3/sysext/form/Classes/ViewHelpers/Form/DatePickerViewHelper.php
@@ -36,7 +36,7 @@ use TYPO3\CMS\Form\ViewHelpers\RenderRenderableViewHelper;
  *
  * Scope: frontend
  */
-class DatePickerViewHelper extends AbstractFormFieldViewHelper
+final class DatePickerViewHelper extends AbstractFormFieldViewHelper
 {
 
     /**
diff --git a/typo3/sysext/form/Classes/ViewHelpers/Form/TimePickerViewHelper.php b/typo3/sysext/form/Classes/ViewHelpers/Form/TimePickerViewHelper.php
index 95916457da39eb1d5e05ceea31392718f5961ba2..0e1a571518fed9cbbc30ecdf9264de7960b23947 100644
--- a/typo3/sysext/form/Classes/ViewHelpers/Form/TimePickerViewHelper.php
+++ b/typo3/sysext/form/Classes/ViewHelpers/Form/TimePickerViewHelper.php
@@ -31,7 +31,7 @@ use TYPO3\CMS\Form\ViewHelpers\RenderRenderableViewHelper;
  *
  * Scope: frontend
  */
-class TimePickerViewHelper extends AbstractFormFieldViewHelper
+final class TimePickerViewHelper extends AbstractFormFieldViewHelper
 {
 
     /**
diff --git a/typo3/sysext/form/Classes/ViewHelpers/Form/UploadedResourceViewHelper.php b/typo3/sysext/form/Classes/ViewHelpers/Form/UploadedResourceViewHelper.php
index ca1c5d67a8608bcf9f178086c02046fc49b0531f..ac0b2e39374ea2d1d7eeaa5e15156b2a6c3e6ab4 100644
--- a/typo3/sysext/form/Classes/ViewHelpers/Form/UploadedResourceViewHelper.php
+++ b/typo3/sysext/form/Classes/ViewHelpers/Form/UploadedResourceViewHelper.php
@@ -30,7 +30,7 @@ use TYPO3\CMS\Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper;
  *
  * Scope: frontend
  */
-class UploadedResourceViewHelper extends AbstractFormFieldViewHelper
+final class UploadedResourceViewHelper extends AbstractFormFieldViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/form/Classes/ViewHelpers/FormViewHelper.php b/typo3/sysext/form/Classes/ViewHelpers/FormViewHelper.php
index b92488c419d63d63a9fe6ab149b4c14c8b51fc69..79951adbcad058824a836a8814b45a0da7f7958e 100644
--- a/typo3/sysext/form/Classes/ViewHelpers/FormViewHelper.php
+++ b/typo3/sysext/form/Classes/ViewHelpers/FormViewHelper.php
@@ -31,7 +31,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\TagBuilder;
  *
  * Scope: frontend
  */
-class FormViewHelper extends FluidFormViewHelper
+final class FormViewHelper extends FluidFormViewHelper
 {
 
     /**
diff --git a/typo3/sysext/form/Classes/ViewHelpers/GridColumnClassAutoConfigurationViewHelper.php b/typo3/sysext/form/Classes/ViewHelpers/GridColumnClassAutoConfigurationViewHelper.php
index c75592acd7e2d79262e0b681a46a585cc4976584..7d7431dfbd310016f5fef1f2caedbccc49442887 100644
--- a/typo3/sysext/form/Classes/ViewHelpers/GridColumnClassAutoConfigurationViewHelper.php
+++ b/typo3/sysext/form/Classes/ViewHelpers/GridColumnClassAutoConfigurationViewHelper.php
@@ -25,7 +25,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
 /**
  * Scope: frontend
  */
-class GridColumnClassAutoConfigurationViewHelper extends AbstractViewHelper
+final class GridColumnClassAutoConfigurationViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/form/Classes/ViewHelpers/RenderAllFormValuesViewHelper.php b/typo3/sysext/form/Classes/ViewHelpers/RenderAllFormValuesViewHelper.php
index 66721116ebe60e53cd2defee20867290af1c2deb..92729aae0af1a8ff97742a9c9c171033fbeb8b9f 100644
--- a/typo3/sysext/form/Classes/ViewHelpers/RenderAllFormValuesViewHelper.php
+++ b/typo3/sysext/form/Classes/ViewHelpers/RenderAllFormValuesViewHelper.php
@@ -32,7 +32,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * Scope: frontend
  */
-class RenderAllFormValuesViewHelper extends AbstractViewHelper
+final class RenderAllFormValuesViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/form/Classes/ViewHelpers/RenderFormValueViewHelper.php b/typo3/sysext/form/Classes/ViewHelpers/RenderFormValueViewHelper.php
index 2e3a527b582abe1b6d1cd5165ecf3406267fbc79..6ea03adad6030f81d0cc998e6b7bdde42d15c204 100644
--- a/typo3/sysext/form/Classes/ViewHelpers/RenderFormValueViewHelper.php
+++ b/typo3/sysext/form/Classes/ViewHelpers/RenderFormValueViewHelper.php
@@ -35,7 +35,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * Scope: frontend
  */
-class RenderFormValueViewHelper extends AbstractViewHelper
+final class RenderFormValueViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/form/Classes/ViewHelpers/RenderRenderableViewHelper.php b/typo3/sysext/form/Classes/ViewHelpers/RenderRenderableViewHelper.php
index 4e9fa20250e5c8c9e0c4a32b0eed10c10e11bd4c..bf5a27f794ffaea59d6c932764d438878a274b46 100644
--- a/typo3/sysext/form/Classes/ViewHelpers/RenderRenderableViewHelper.php
+++ b/typo3/sysext/form/Classes/ViewHelpers/RenderRenderableViewHelper.php
@@ -37,7 +37,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * Scope: frontend
  */
-class RenderRenderableViewHelper extends AbstractViewHelper
+final class RenderRenderableViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/form/Classes/ViewHelpers/RenderViewHelper.php b/typo3/sysext/form/Classes/ViewHelpers/RenderViewHelper.php
index 7350c034f37849326dbee93919c4e8306d44774b..74e582396211e223daeb15f5b9c6659e5d516ba3 100644
--- a/typo3/sysext/form/Classes/ViewHelpers/RenderViewHelper.php
+++ b/typo3/sysext/form/Classes/ViewHelpers/RenderViewHelper.php
@@ -45,7 +45,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * Scope: frontend
  */
-class RenderViewHelper extends AbstractViewHelper
+final class RenderViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/form/Classes/ViewHelpers/TranslateElementErrorViewHelper.php b/typo3/sysext/form/Classes/ViewHelpers/TranslateElementErrorViewHelper.php
index a32b2254232e96532f1ff0dd9405a88d9324a462..1efbfd8b627200abf2e5864526bc00eb5c98b2f5 100644
--- a/typo3/sysext/form/Classes/ViewHelpers/TranslateElementErrorViewHelper.php
+++ b/typo3/sysext/form/Classes/ViewHelpers/TranslateElementErrorViewHelper.php
@@ -31,7 +31,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * Scope: frontend / backend
  */
-class TranslateElementErrorViewHelper extends AbstractViewHelper
+final class TranslateElementErrorViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/form/Classes/ViewHelpers/TranslateElementPropertyViewHelper.php b/typo3/sysext/form/Classes/ViewHelpers/TranslateElementPropertyViewHelper.php
index 54dea3f5329477be8ed8b95ecd798e3ad75e309a..7f30f69f9f4d8ffc4f74b35e97f825da6e43022c 100644
--- a/typo3/sysext/form/Classes/ViewHelpers/TranslateElementPropertyViewHelper.php
+++ b/typo3/sysext/form/Classes/ViewHelpers/TranslateElementPropertyViewHelper.php
@@ -31,7 +31,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * Scope: frontend / backend
  */
-class TranslateElementPropertyViewHelper extends AbstractViewHelper
+final class TranslateElementPropertyViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/form/Tests/Unit/ViewHelpers/Form/DatePickerViewHelperTest.php b/typo3/sysext/form/Tests/Unit/ViewHelpers/Form/DatePickerViewHelperTest.php
index 36c1a4afa10e543685af92eac08ed1341c04ada9..28088c3166677b0ce772cde59c19a72e78725a9f 100644
--- a/typo3/sysext/form/Tests/Unit/ViewHelpers/Form/DatePickerViewHelperTest.php
+++ b/typo3/sysext/form/Tests/Unit/ViewHelpers/Form/DatePickerViewHelperTest.php
@@ -20,125 +20,64 @@ namespace TYPO3\CMS\Form\Tests\Unit\ViewHelpers\Form;
 use TYPO3\CMS\Form\ViewHelpers\Form\DatePickerViewHelper;
 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
 
-/**
- * Test case
- */
 class DatePickerViewHelperTest extends UnitTestCase
 {
-
-    /**
-     * @var \TYPO3\CMS\Form\ViewHelpers\Form\DatePickerViewHelper
-     */
-    protected $subject;
-
-    /**
-     * Set up
-     */
-    protected function setUp(): void
-    {
-        parent::setUp();
-        $this->subject = $this->getAccessibleMock(DatePickerViewHelper::class, [
-            'dummy',
-        ], [], '', false);
-    }
-
-    /**
-     * @test
-     */
-    public function convertDateFormatToDatePickerFormatReturnsTransformedFormat01(): void
-    {
-        $input = 'd';
-        $expected = 'dd';
-        self::assertSame($expected, $this->subject->_call('convertDateFormatToDatePickerFormat', $input));
-    }
-
-    /**
-     * @test
-     */
-    public function convertDateFormatToDatePickerFormatReturnsTransformedFormat02(): void
-    {
-        $input = 'D';
-        $expected = 'D';
-        self::assertSame($expected, $this->subject->_call('convertDateFormatToDatePickerFormat', $input));
-    }
-
-    /**
-     * @test
-     */
-    public function convertDateFormatToDatePickerFormatReturnsTransformedFormat03(): void
-    {
-        $input = 'j';
-        $expected = 'o';
-        self::assertSame($expected, $this->subject->_call('convertDateFormatToDatePickerFormat', $input));
-    }
-
-    /**
-     * @test
-     */
-    public function convertDateFormatToDatePickerFormatReturnsTransformedFormat04(): void
-    {
-        $input = 'l';
-        $expected = 'DD';
-        self::assertSame($expected, $this->subject->_call('convertDateFormatToDatePickerFormat', $input));
-    }
-
-    /**
-     * @test
-     */
-    public function convertDateFormatToDatePickerFormatReturnsTransformedFormat05(): void
-    {
-        $input = 'F';
-        $expected = 'MM';
-        self::assertSame($expected, $this->subject->_call('convertDateFormatToDatePickerFormat', $input));
-    }
-
-    /**
-     * @test
-     */
-    public function convertDateFormatToDatePickerFormatReturnsTransformedFormat06(): void
-    {
-        $input = 'm';
-        $expected = 'mm';
-        self::assertSame($expected, $this->subject->_call('convertDateFormatToDatePickerFormat', $input));
-    }
-
-    /**
-     * @test
-     */
-    public function convertDateFormatToDatePickerFormatReturnsTransformedFormat07(): void
-    {
-        $input = 'M';
-        $expected = 'M';
-        self::assertSame($expected, $this->subject->_call('convertDateFormatToDatePickerFormat', $input));
-    }
-
-    /**
-     * @test
-     */
-    public function convertDateFormatToDatePickerFormatReturnsTransformedFormat08(): void
-    {
-        $input = 'n';
-        $expected = 'm';
-        self::assertSame($expected, $this->subject->_call('convertDateFormatToDatePickerFormat', $input));
-    }
-
-    /**
-     * @test
-     */
-    public function convertDateFormatToDatePickerFormatReturnsTransformedFormat09(): void
+    public function convertDateFormatToDatePickerFormatReturnsTransformedFormatDataProvider(): array
     {
-        $input = 'Y';
-        $expected = 'yy';
-        self::assertSame($expected, $this->subject->_call('convertDateFormatToDatePickerFormat', $input));
+        return [
+            [
+                'd',
+                'dd',
+            ],
+            [
+                'D',
+                'D',
+            ],
+            [
+                'j',
+                'o',
+            ],
+            [
+                'l',
+                'DD',
+            ],
+            [
+                'F',
+                'MM',
+            ],
+            [
+                'm',
+                'mm',
+            ],
+            [
+                'M',
+                'M',
+            ],
+            [
+                'n',
+                'm',
+            ],
+            [
+                'Y',
+                'yy',
+            ],
+            [
+                'y',
+                'y',
+            ],
+        ];
     }
 
     /**
      * @test
+     * @dataProvider convertDateFormatToDatePickerFormatReturnsTransformedFormatDataProvider
      */
-    public function convertDateFormatToDatePickerFormatReturnsTransformedFormat10(): void
+    public function convertDateFormatToDatePickerFormatReturnsTransformedFormat(string $input, string $expected): void
     {
-        $input = 'y';
-        $expected = 'y';
-        self::assertSame($expected, $this->subject->_call('convertDateFormatToDatePickerFormat', $input));
+        $mock = \Closure::bind(static function (DatePickerViewHelper $datePickerViewHelper) use ($input, &$result) {
+            $result = $datePickerViewHelper->convertDateFormatToDatePickerFormat($input);
+        }, null, DatePickerViewHelper::class);
+        $mock(new DatePickerViewHelper());
+        self::assertSame($expected, $result);
     }
 }
diff --git a/typo3/sysext/indexed_search/Classes/ViewHelpers/Format/DateTimeViewHelper.php b/typo3/sysext/indexed_search/Classes/ViewHelpers/Format/DateTimeViewHelper.php
index 79cc0fff4bf4ee6bcfc447a08c3f42e343acf0cd..04feb0e752c0aa42217b0467e945766c643248ad 100644
--- a/typo3/sysext/indexed_search/Classes/ViewHelpers/Format/DateTimeViewHelper.php
+++ b/typo3/sysext/indexed_search/Classes/ViewHelpers/Format/DateTimeViewHelper.php
@@ -24,7 +24,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * DateTime viewhelper
  * @internal
  */
-class DateTimeViewHelper extends AbstractViewHelper
+final class DateTimeViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/indexed_search/Classes/ViewHelpers/Format/FlagValueViewHelper.php b/typo3/sysext/indexed_search/Classes/ViewHelpers/Format/FlagValueViewHelper.php
index 4a1e5bc8189519321069fb478ab5bf7deabee5ac..7234b7499dfee2b5ad4744bba0f5f6007390252c 100644
--- a/typo3/sysext/indexed_search/Classes/ViewHelpers/Format/FlagValueViewHelper.php
+++ b/typo3/sysext/indexed_search/Classes/ViewHelpers/Format/FlagValueViewHelper.php
@@ -23,7 +23,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * FlagValue viewhelper
  * @internal
  */
-class FlagValueViewHelper extends AbstractViewHelper
+final class FlagValueViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/indexed_search/Classes/ViewHelpers/Format/GroupListViewHelper.php b/typo3/sysext/indexed_search/Classes/ViewHelpers/Format/GroupListViewHelper.php
index f5fc4da59cbfa543667f880c7375dd65aabbc345..3260d74f5568f3616b9e22c9fc9a40ab5597ec7f 100644
--- a/typo3/sysext/indexed_search/Classes/ViewHelpers/Format/GroupListViewHelper.php
+++ b/typo3/sysext/indexed_search/Classes/ViewHelpers/Format/GroupListViewHelper.php
@@ -23,7 +23,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * Group list viewhelper
  * @internal
  */
-class GroupListViewHelper extends AbstractViewHelper
+final class GroupListViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/indexed_search/Classes/ViewHelpers/PageBrowsingResultsViewHelper.php b/typo3/sysext/indexed_search/Classes/ViewHelpers/PageBrowsingResultsViewHelper.php
index 15f8a53ac281bed18d7c8b29e8c871392263819d..345cb16ea0ee1e9bbdbd4fc83efa6478624ffa96 100644
--- a/typo3/sysext/indexed_search/Classes/ViewHelpers/PageBrowsingResultsViewHelper.php
+++ b/typo3/sysext/indexed_search/Classes/ViewHelpers/PageBrowsingResultsViewHelper.php
@@ -24,7 +24,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * renders the header of the results page
  * @internal
  */
-class PageBrowsingResultsViewHelper extends AbstractViewHelper
+final class PageBrowsingResultsViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/indexed_search/Classes/ViewHelpers/PageBrowsingViewHelper.php b/typo3/sysext/indexed_search/Classes/ViewHelpers/PageBrowsingViewHelper.php
index ba20c5e283811d7adc88a80a1974ea253754183d..0f26598d5b67ed65773f8083a73339593ba4cb4b 100644
--- a/typo3/sysext/indexed_search/Classes/ViewHelpers/PageBrowsingViewHelper.php
+++ b/typo3/sysext/indexed_search/Classes/ViewHelpers/PageBrowsingViewHelper.php
@@ -27,7 +27,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper;
  * functionality
  * @internal
  */
-class PageBrowsingViewHelper extends AbstractTagBasedViewHelper
+final class PageBrowsingViewHelper extends AbstractTagBasedViewHelper
 {
     /**
      * @var string
diff --git a/typo3/sysext/install/Classes/ViewHelpers/Format/NoSpaceViewHelper.php b/typo3/sysext/install/Classes/ViewHelpers/Format/NoSpaceViewHelper.php
index e08135b4a66a7cf9ff869d8f652453d740d32815..f025d9a831caaefc900269ed7999453cb7da1117 100644
--- a/typo3/sysext/install/Classes/ViewHelpers/Format/NoSpaceViewHelper.php
+++ b/typo3/sysext/install/Classes/ViewHelpers/Format/NoSpaceViewHelper.php
@@ -26,7 +26,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * @internal
  */
-class NoSpaceViewHelper extends AbstractViewHelper
+final class NoSpaceViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/install/Classes/ViewHelpers/Format/PhpErrorCodeViewHelper.php b/typo3/sysext/install/Classes/ViewHelpers/Format/PhpErrorCodeViewHelper.php
index e147380dfe4ede497dc17cdb47125b023d248ced..a35a08103e6e1caf25bb09fc55163f39620619f8 100644
--- a/typo3/sysext/install/Classes/ViewHelpers/Format/PhpErrorCodeViewHelper.php
+++ b/typo3/sysext/install/Classes/ViewHelpers/Format/PhpErrorCodeViewHelper.php
@@ -24,7 +24,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  *
  * @internal
  */
-class PhpErrorCodeViewHelper extends AbstractViewHelper
+final class PhpErrorCodeViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/install/Classes/ViewHelpers/PhpInfoViewHelper.php b/typo3/sysext/install/Classes/ViewHelpers/PhpInfoViewHelper.php
index f7fd0ba5e93b36f8124e5ad7919cd19f77d0d151..2940b9cd917cb73309b0432db1c9fd273895fac2 100644
--- a/typo3/sysext/install/Classes/ViewHelpers/PhpInfoViewHelper.php
+++ b/typo3/sysext/install/Classes/ViewHelpers/PhpInfoViewHelper.php
@@ -23,7 +23,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * Utility class for phpinfo()
  * @internal
  */
-class PhpInfoViewHelper extends AbstractViewHelper
+final class PhpInfoViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/install/Classes/ViewHelpers/Uri/ActionViewHelper.php b/typo3/sysext/install/Classes/ViewHelpers/Uri/ActionViewHelper.php
index c039896140df3626f1a6c444041a007a8dd4ed39..32ed009ac664840fbae2001c82964b82d4c9bdad 100644
--- a/typo3/sysext/install/Classes/ViewHelpers/Uri/ActionViewHelper.php
+++ b/typo3/sysext/install/Classes/ViewHelpers/Uri/ActionViewHelper.php
@@ -34,7 +34,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * </output>
  * @internal
  */
-class ActionViewHelper extends AbstractViewHelper
+final class ActionViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;
 
diff --git a/typo3/sysext/redirects/Classes/ViewHelpers/TargetPageIdViewHelper.php b/typo3/sysext/redirects/Classes/ViewHelpers/TargetPageIdViewHelper.php
index 26efeef45e814ec2f0baaef6ea486bfcf4864031..4687f36a14f01321a94d35b827ad313783809ee5 100644
--- a/typo3/sysext/redirects/Classes/ViewHelpers/TargetPageIdViewHelper.php
+++ b/typo3/sysext/redirects/Classes/ViewHelpers/TargetPageIdViewHelper.php
@@ -30,7 +30,7 @@ use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
  * This ViewHelper checks for such a case and returns the Page ID
  * @internal
  */
-class TargetPageIdViewHelper extends AbstractViewHelper
+final class TargetPageIdViewHelper extends AbstractViewHelper
 {
     use CompileWithRenderStatic;