[TASK] Move dbal check from ext:extbase to ext:dbal 68/49568/6
authorChristian Kuhn <lolli@schwarzbu.ch>
Tue, 23 Aug 2016 22:03:12 +0000 (00:03 +0200)
committerGeorg Ringer <georg.ringer@gmail.com>
Tue, 30 Aug 2016 15:25:18 +0000 (17:25 +0200)
Move the reports module provider in extbase that warns from dbal
to ext:dbal itself and change wording.

Change-Id: I9eb5e68a105078fd2900875ec90cdf401c7ad43a
Resolves: #77614
Releases: master
Reviewed-on: https://review.typo3.org/49568
Tested-by: Bamboo TYPO3com <info@typo3.com>
Reviewed-by: Benni Mack <benni@typo3.org>
Tested-by: Benni Mack <benni@typo3.org>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
typo3/sysext/dbal/Classes/Report/DbalStatus.php [new file with mode: 0644]
typo3/sysext/dbal/ext_tables.php
typo3/sysext/extbase/Classes/Utility/ExtbaseRequirementsCheckUtility.php [deleted file]
typo3/sysext/extbase/ext_tables.php

diff --git a/typo3/sysext/dbal/Classes/Report/DbalStatus.php b/typo3/sysext/dbal/Classes/Report/DbalStatus.php
new file mode 100644 (file)
index 0000000..39fc84d
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+namespace TYPO3\CMS\Dbal\Report;
+
+/*
+ * This file is part of the TYPO3 CMS project.
+ *
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
+ *
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
+ *
+ * The TYPO3 project - inspiring people to share!
+ */
+
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+use TYPO3\CMS\Reports\Status;
+use TYPO3\CMS\Reports\StatusProviderInterface;
+
+/**
+ * A checker which hooks into the backend module "Reports" warning about dbal.
+ */
+class DbalStatus implements StatusProviderInterface
+{
+    /**
+     * Compiles a collection of system status checks as a status report.
+     *
+     * @return array
+     */
+    public function getStatus()
+    {
+        return [
+            'dbalExtensionIsInstalled' => $this->dbalExtensionIsInstalled()
+        ];
+    }
+
+    /**
+     * Warn about ext:dbal and give a hint when to unload.
+     *
+     * @return Status
+     */
+    protected function dbalExtensionIsInstalled()
+    {
+        $value = 'DBAL is loaded';
+        $message = 'The Database Abstraction Layer Extension "ext:dbal" is loaded.<br />'
+            . 'Unload this extension together with "ext:adodb".<br />'
+            . ' Keep dbal and adodb loaded only if TYPO3 does NOT run on MySQL or MariaDB, AND if'
+            . ' an old extension is loaded that uses the legacy DatabaseConnection / $GLOBALS[\'TYPO3_DB\'] query interface.<br />'
+            . ' Database abstraction has been built directly into TYPO3 CMS version 8 and ext:dbal is obsolete.'
+            . ' The new implementation based on doctrine dbal is much more reliable and extensions still using TYPO3_DB should'
+            . ' be migrated, especially if this instance actively uses connections to databases other than MySQL or MariaDB.';
+        $status = Status::WARNING;
+        return GeneralUtility::makeInstance(Status::class, 'DBAL Extension', $value, $message, $status);
+    }
+}
index 126bacc..e0efa02 100644 (file)
@@ -1,6 +1,11 @@
 <?php
 defined('TYPO3_MODE') or die();
 
+if (!is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['reports']['tx_reports']['status']['providers']['dbal'])) {
+    $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['reports']['tx_reports']['status']['providers']['dbal'] = [];
+}
+$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['reports']['tx_reports']['status']['providers']['dbal'][] = \TYPO3\CMS\Dbal\Report\DbalStatus::class;
+
 if (TYPO3_MODE === 'BE') {
     \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addModule(
         'tools',
diff --git a/typo3/sysext/extbase/Classes/Utility/ExtbaseRequirementsCheckUtility.php b/typo3/sysext/extbase/Classes/Utility/ExtbaseRequirementsCheckUtility.php
deleted file mode 100644 (file)
index 7679210..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-namespace TYPO3\CMS\Extbase\Utility;
-
-/*
- * This file is part of the TYPO3 CMS project.
- *
- * It is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, either version 2
- * of the License, or any later version.
- *
- * For the full copyright and license information, please read the
- * LICENSE.txt file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
-
-/**
- * A checker which hooks into the backend module "Reports" checking whether
- * dbal is installed
- */
-class ExtbaseRequirementsCheckUtility implements \TYPO3\CMS\Reports\StatusProviderInterface
-{
-    /**
-     * Compiles a collection of system status checks as a status report.
-     *
-     * @return array
-     */
-    public function getStatus()
-    {
-        $reports = [
-            'dbalExtensionIsInstalled' => $this->checkIfDbalExtensionIsInstalled()
-        ];
-        return $reports;
-    }
-
-    /**
-     * Check whether dbal extension is installed
-     *
-     * @return \TYPO3\CMS\Reports\Status
-     */
-    protected function checkIfDbalExtensionIsInstalled()
-    {
-        if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('dbal')) {
-            $value = 'DBAL is loaded';
-            $message = 'The Database Abstraction Layer Extension (dbal) is loaded. Extbase does not fully support dbal at the moment. If you are aware of this fact or don\'t make use of the incompatible parts on this installation, you can ignore this notice.';
-            $status = \TYPO3\CMS\Reports\Status::INFO;
-        } else {
-            $value = 'DBAL is not loaded';
-            $message = '';
-            $status = \TYPO3\CMS\Reports\Status::OK;
-        }
-        return \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Reports\Status::class, 'DBAL Extension', $value, $message, $status);
-    }
-}
index 1e73815..7d02645 100644 (file)
@@ -1,8 +1,6 @@
 <?php
 defined('TYPO3_MODE') or die();
 
-$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['reports']['tx_reports']['status']['providers']['extbase'][] = \TYPO3\CMS\Extbase\Utility\ExtbaseRequirementsCheckUtility::class;
-
 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\TYPO3\CMS\Extbase\Scheduler\Task::class] = [
     'extension' => 'extbase',
     'title' => 'LLL:EXT:extbase/Resources/Private/Language/locallang_db.xlf:task.name',