mirror of
				https://github.com/smarty-php/smarty.git
				synced 2025-10-30 20:01:37 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			103 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| /**
 | |
| * Project:     Smarty: the PHP compiling template engine
 | |
| * File:        smarty_internal_cache.php
 | |
| * SVN:         $Id: $
 | |
| * 
 | |
| * This library is free software; you can redistribute it and/or
 | |
| * modify it under the terms of the GNU Lesser General Public
 | |
| * License as published by the Free Software Foundation; either
 | |
| * version 2.1 of the License, or (at your option) any later version.
 | |
| * 
 | |
| * This library 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
 | |
| * Lesser General Public License for more details.
 | |
| * 
 | |
| * You should have received a copy of the GNU Lesser General Public
 | |
| * License along with this library; if not, write to the Free Software
 | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | |
| * 
 | |
| * For questions, help, comments, discussion, etc., please join the
 | |
| * Smarty mailing list. Send a blank e-mail to
 | |
| * smarty-discussion-subscribe@googlegroups.com
 | |
| * 
 | |
| * @link http://www.smarty.net/
 | |
| * @copyright 2008 New Digital Group, Inc.
 | |
| * @author Monte Ohrt <monte at ohrt dot com> 
 | |
| * @author Uwe Tews 
 | |
| * @package Smarty
 | |
| * @subpackage PluginsInternal
 | |
| * @version 3-SVN$Rev: 3286 $
 | |
| */
 | |
| 
 | |
| class Smarty_Internal_Cache {
 | |
|   
 | |
|     protected $smarty;
 | |
| 
 | |
|     function __construct($smarty) {
 | |
|       $this->smarty = $smarty;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|     * Loads cache resource.
 | |
|     * 
 | |
|     * @return object of cache resource
 | |
|     */
 | |
|     public function loadResource($type = null) {
 | |
|         if (!isset($type)) {
 | |
|             $type = $this->smarty->caching_type;
 | |
|         } 
 | |
|         // already loaded?
 | |
|         if (isset($this->smarty->cache_resource_objects[$type])) {
 | |
|             return $this->smarty->cache_resource_objects[$type];
 | |
|         } 
 | |
|         if (in_array($type, $this->smarty->cache_resource_types)) {
 | |
|             $cache_resource_class = 'Smarty_Internal_CacheResource_' . ucfirst($type);
 | |
|             return $this->smarty->cache_resource_objects[$type] = new $cache_resource_class($this->smarty);
 | |
|         } 
 | |
|         else {
 | |
|             // try plugins dir
 | |
|             $cache_resource_class = 'Smarty_CacheResource_' . ucfirst($type);
 | |
|             if ($this->smarty->loadPlugin($cache_resource_class)) {
 | |
|                 return $this->smarty->cache_resource_objects[$type] = new $cache_resource_class($this->smarty);
 | |
|             } 
 | |
|             else {
 | |
|                 throw new Exception("Unable to load cache resource '{$type}'");
 | |
|             } 
 | |
|         } 
 | |
|     } 
 | |
| 
 | |
|     /**
 | |
|     * Empty cache folder
 | |
|     * 
 | |
|     * @param integer $exp_time expiration time
 | |
|     * @param string $type resource type
 | |
|     * @return integer number of cache files deleted
 | |
|     */
 | |
|     function clearAll($exp_time = null, $type = null)
 | |
|     { 
 | |
|         return $this->loadResource($type)->clearAll($exp_time);
 | |
|     }        
 | |
| 
 | |
|     /**
 | |
|     * Empty cache for a specific template
 | |
|     * 
 | |
|     * @param string $template_name template name
 | |
|     * @param string $cache_id cache id
 | |
|     * @param string $compile_id compile id
 | |
|     * @param integer $exp_time expiration time
 | |
|     * @param string $type resource type
 | |
|     * @return integer number of cache files deleted
 | |
|     */
 | |
|     function clear($template_name, $cache_id = null, $compile_id = null, $exp_time = null, $type = null)
 | |
|     { 
 | |
|        // load cache resource
 | |
|         $cacheResource = $this->loadResource($type);
 | |
|     
 | |
|         return $cacheResource->clear($template_name, $cache_id, $compile_id, $exp_time);
 | |
|     }
 | |
|     
 | |
| }
 |