From d25257a115e296db61b11430d276e82e39fd680f Mon Sep 17 00:00:00 2001
From: Helmut Hummel <info@helhum.io>
Date: Mon, 9 May 2016 19:54:04 +0200
Subject: [PATCH] [TASK] Make driver registry TCA change cacheable

Instead of calling the driver registry on every request,
we can cache the TCA addition, by putting the call into overrides.

Resolves: #76102
Releases: 7.6, master
Change-Id: I8cfc72f0e7dbb133eecc754fd3cb774637a0d4bf
Reviewed-on: https://review.typo3.org/48047
Reviewed-by: Nicole Cordes <typo3@cordes.co>
Tested-by: Nicole Cordes <typo3@cordes.co>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Tested-by: Markus Klein <markus.klein@typo3.org>
---
 typo3/sysext/core/Classes/Resource/Driver/DriverRegistry.php  | 4 ----
 .../core/Configuration/TCA/Overrides/sys_file_storage.php     | 4 ++++
 typo3/sysext/core/ext_tables.php                              | 4 ----
 3 files changed, 4 insertions(+), 8 deletions(-)
 create mode 100644 typo3/sysext/core/Configuration/TCA/Overrides/sys_file_storage.php

diff --git a/typo3/sysext/core/Classes/Resource/Driver/DriverRegistry.php b/typo3/sysext/core/Classes/Resource/Driver/DriverRegistry.php
index 4ef5661fb6d1..2b5cb4581195 100644
--- a/typo3/sysext/core/Classes/Resource/Driver/DriverRegistry.php
+++ b/typo3/sysext/core/Classes/Resource/Driver/DriverRegistry.php
@@ -87,10 +87,6 @@ class DriverRegistry implements \TYPO3\CMS\Core\SingletonInterface
      */
     public function addDriversToTCA()
     {
-        // Add driver to TCA of sys_file_storage
-        if (TYPO3_MODE !== 'BE') {
-            return;
-        }
         $driverFieldConfig = &$GLOBALS['TCA']['sys_file_storage']['columns']['driver']['config'];
         $configurationFieldConfig = &$GLOBALS['TCA']['sys_file_storage']['columns']['configuration']['config'];
         foreach ($this->driverConfigurations as $driver) {
diff --git a/typo3/sysext/core/Configuration/TCA/Overrides/sys_file_storage.php b/typo3/sysext/core/Configuration/TCA/Overrides/sys_file_storage.php
new file mode 100644
index 000000000000..4404f3533fcf
--- /dev/null
+++ b/typo3/sysext/core/Configuration/TCA/Overrides/sys_file_storage.php
@@ -0,0 +1,4 @@
+<?php
+defined('TYPO3_MODE') || die();
+
+\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Resource\Driver\DriverRegistry::class)->addDriversToTCA();
diff --git a/typo3/sysext/core/ext_tables.php b/typo3/sysext/core/ext_tables.php
index 1a5fced4019b..f1a9dc0d4e4b 100644
--- a/typo3/sysext/core/ext_tables.php
+++ b/typo3/sysext/core/ext_tables.php
@@ -40,10 +40,6 @@ $GLOBALS['PAGES_TYPES'] = array(
 
 \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('sys_category,sys_file_reference,sys_file_collection');
 
-/** @var \TYPO3\CMS\Core\Resource\Driver\DriverRegistry $registry */
-$registry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Resource\Driver\DriverRegistry::class);
-$registry->addDriversToTCA();
-
 /**
  * $TBE_MODULES contains the structure of the backend modules as they are
  * arranged in main- and sub-modules. Every entry in this array represents a
-- 
GitLab