[TASK] Use fully qualified name resolution in PHP 5.5
[Packages/TYPO3.CMS.git] / typo3 / sysext / install / Classes / Service / ClearCacheService.php
index 04da499..0b33998 100644 (file)
@@ -1,31 +1,18 @@
 <?php
 namespace TYPO3\CMS\Install\Service;
 
-/***************************************************************
- *  Copyright notice
- *
- *  (c) 2013 Christian Kuhn <lolli@schwarzbu.ch>
- *  All rights reserved
- *
- *  This script is part of the TYPO3 project. The TYPO3 project is
- *  free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  The GNU General Public License can be found at
- *  http://www.gnu.org/copyleft/gpl.html.
- *  A copy is found in the textfile GPL.txt and important notices to the license
- *  from the author is found in LICENSE.txt distributed with these scripts.
+/**
+ * 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.
  *
- *  This script is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
  *
- *  This copyright notice MUST APPEAR in all copies of the script!
- ***************************************************************/
+ * The TYPO3 project - inspiring people to share!
+ */
 
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 
@@ -60,8 +47,19 @@ class ClearCacheService {
                // Delete typo3temp/Cache
                GeneralUtility::rmdir(PATH_site . 'typo3temp/Cache', TRUE);
 
+               $bootstrap = \TYPO3\CMS\Core\Core\Bootstrap::getInstance();
+               $bootstrap->unregisterClassLoader();
+
+               \TYPO3\CMS\Core\Cache\Cache::flagCachingFrameworkForReinitialization();
+
+               $bootstrap
+                       ->initializeClassLoader()
+                       ->initializeCachingFramework()
+                       ->initializeClassLoaderCaches()
+                       ->initializePackageManagement('TYPO3\\CMS\\Core\\Package\\PackageManager');
+
                // Get all table names starting with 'cf_' and truncate them
-               $database = $this->getDatabaseInstance();
+               $database = $this->getDatabaseConnection();
                $tables = $database->admin_get_tables();
                foreach ($tables as $table) {
                        $tableName = $table['Name'];
@@ -73,13 +71,13 @@ class ClearCacheService {
                // From this point on, the code may fatal, if some broken extension is loaded.
 
                // Use bootstrap to load all ext_localconf and ext_tables
-               \TYPO3\CMS\Core\Core\Bootstrap::getInstance()
+               $bootstrap
                        ->loadTypo3LoadedExtAndExtLocalconf(FALSE)
                        ->applyAdditionalConfigurationSettings()
                        ->initializeTypo3DbGlobal()
                        ->loadExtensionTables(FALSE);
 
-               // $GLOBALS['typo3CacheManager'] is already instantiated in the install tool
+               // The cache manager is already instantiated in the install tool
                // with some hacked settings to disable caching of extbase and fluid.
                // We want a "fresh" object here to operate on a different cache setup.
                // cacheManager implements SingletonInterface, so the only way to get a "fresh"
@@ -99,11 +97,11 @@ class ClearCacheService {
         * @TODO: This method is a copy from AbstractAction. Review them and extract to service
         * @return \TYPO3\CMS\Core\Database\DatabaseConnection
         */
-       protected function getDatabaseInstance() {
+       protected function getDatabaseConnection() {
                static $database;
                if (!is_object($database)) {
                        /** @var \TYPO3\CMS\Core\Database\DatabaseConnection $database */
-                       $database = $this->objectManager->get('TYPO3\\CMS\\Core\\Database\\DatabaseConnection');
+                       $database = $this->objectManager->get(\TYPO3\CMS\Core\Database\DatabaseConnection::class);
                        $database->setDatabaseUsername($GLOBALS['TYPO3_CONF_VARS']['DB']['username']);
                        $database->setDatabasePassword($GLOBALS['TYPO3_CONF_VARS']['DB']['password']);
                        $database->setDatabaseHost($GLOBALS['TYPO3_CONF_VARS']['DB']['host']);
@@ -115,4 +113,3 @@ class ClearCacheService {
                return $database;
        }
 }
-?>
\ No newline at end of file