Revert "[RELEASE] Release of TYPO3 4.6.0alpha1"
[Packages/TYPO3.CMS.git] / t3lib / class.t3lib_cache.php
index efbeeee..ea3a7f2 100644 (file)
@@ -1,26 +1,26 @@
 <?php
 /***************************************************************
-*  Copyright notice
-*
-*  (c) 2008-2009 Ingo Renner <ingo@typo3.org>
-*  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.
-*
-*  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.
-*
-*  This copyright notice MUST APPEAR in all copies of the script!
-***************************************************************/
+ *  Copyright notice
+ *
+ *  (c) 2008-2011 Ingo Renner <ingo@typo3.org>
+ *  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.
+ *
+ *  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.
+ *
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
 
 
 /**
@@ -34,7 +34,7 @@ class t3lib_cache {
        /**
         * @var boolean
         */
-       protected static $isCachingFrameworkInitialized;
+       protected static $isCachingFrameworkInitialized = FALSE;
 
        /**
         * Initializes the caching framework by loading the cache manager and factory
@@ -43,10 +43,12 @@ class t3lib_cache {
         * @return      void
         */
        public static function initializeCachingFramework() {
-               $GLOBALS['typo3CacheManager'] = t3lib_div::makeInstance('t3lib_cache_Manager');
-               $GLOBALS['typo3CacheFactory'] = t3lib_div::makeInstance('t3lib_cache_Factory');
-               $GLOBALS['typo3CacheFactory']->setCacheManager($GLOBALS['typo3CacheManager']);
-               self::$isCachingFrameworkInitialized = true;
+               if (!self::isCachingFrameworkInitialized()) {
+                       $GLOBALS['typo3CacheManager'] = t3lib_div::makeInstance('t3lib_cache_Manager');
+                       $GLOBALS['typo3CacheFactory'] = t3lib_div::makeInstance('t3lib_cache_Factory');
+                       $GLOBALS['typo3CacheFactory']->setCacheManager($GLOBALS['typo3CacheManager']);
+                       self::$isCachingFrameworkInitialized = TRUE;
+               }
        }
 
        /**
@@ -59,12 +61,12 @@ class t3lib_cache {
                try {
                        $GLOBALS['typo3CacheFactory']->create(
                                'cache_pages',
-                               't3lib_cache_frontend_VariableFrontend',
+                               $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['cache_pages']['frontend'],
                                $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['cache_pages']['backend'],
                                $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['cache_pages']['options']
                        );
-               } catch(t3lib_cache_exception_DuplicateIdentifier $e) {
-                               // do nothing, a cache_pages cache already exists
+               } catch (t3lib_cache_exception_DuplicateIdentifier $e) {
+                       // do nothing, a cache_pages cache already exists
                }
        }
 
@@ -78,12 +80,12 @@ class t3lib_cache {
                try {
                        $GLOBALS['typo3CacheFactory']->create(
                                'cache_pagesection',
-                               't3lib_cache_frontend_VariableFrontend',
+                               $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['cache_pagesection']['frontend'],
                                $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['cache_pagesection']['backend'],
                                $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['cache_pagesection']['options']
                        );
-               } catch(t3lib_cache_exception_DuplicateIdentifier $e) {
-                               // do nothing, a cache_pagesection cache already exists
+               } catch (t3lib_cache_exception_DuplicateIdentifier $e) {
+                       // do nothing, a cache_pagesection cache already exists
                }
        }
 
@@ -97,12 +99,12 @@ class t3lib_cache {
                try {
                        $GLOBALS['typo3CacheFactory']->create(
                                'cache_hash',
-                               't3lib_cache_frontend_VariableFrontend',
+                               $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['cache_hash']['frontend'],
                                $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['cache_hash']['backend'],
                                $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['cache_hash']['options']
                        );
-               } catch(t3lib_cache_exception_DuplicateIdentifier $e) {
-                               // do nothing, a cache_hash cache already exists
+               } catch (t3lib_cache_exception_DuplicateIdentifier $e) {
+                       // do nothing, a cache_hash cache already exists
                }
        }
 
@@ -113,7 +115,14 @@ class t3lib_cache {
         * @return      boolean
         */
        public function isCachingFrameworkInitialized() {
-               return (bool)self::$isCachingFrameworkInitialized;
+               if (!self::$isCachingFrameworkInitialized
+                               && isset($GLOBALS['typo3CacheManager']) && $GLOBALS['typo3CacheManager'] instanceof t3lib_cache_Manager
+                               && isset($GLOBALS['typo3CacheFactory']) && $GLOBALS['typo3CacheFactory'] instanceof t3lib_cache_Factory
+               ) {
+                       self::$isCachingFrameworkInitialized = TRUE;
+               }
+
+               return self::$isCachingFrameworkInitialized;
        }
 
        /**
@@ -129,7 +138,7 @@ class t3lib_cache {
                } elseif (!TYPO3_UseCachingFramework) {
                        throw new RuntimeException(
                                'The caching framework was already defined to be disabled and cannot be changed. ' .
-                               'Please put your call to t3lib_cache::enableCachingFramework() into ext_localconf.php.',
+                                               'Please put your call to t3lib_cache::enableCachingFramework() into ext_localconf.php.',
                                1253273131
                        );
                }
@@ -137,8 +146,8 @@ class t3lib_cache {
 }
 
 
-if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_cache.php'])    {
-       include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_cache.php']);
+if (defined('TYPO3_MODE') && isset($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_cache.php'])) {
+       include_once($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_cache.php']);
 }
 
 ?>
\ No newline at end of file