85 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * @package     FrameworkOnFramework
 | |
|  * @subpackage  utils
 | |
|  * @copyright   Copyright (C) 2010-2016 Nicholas K. Dionysopoulos / Akeeba Ltd. All rights reserved.
 | |
|  * @license     GNU General Public License version 2 or later; see LICENSE.txt
 | |
|  */
 | |
| 
 | |
| defined('F0F_INCLUDED') or die;
 | |
| 
 | |
| /**
 | |
|  * A utility class to help you quickly clean the Joomla! cache
 | |
|  */
 | |
| class F0FUtilsCacheCleaner
 | |
| {
 | |
| 	/**
 | |
| 	 * Clears the com_modules and com_plugins cache. You need to call this whenever you alter the publish state or
 | |
| 	 * parameters of a module or plugin from your code.
 | |
| 	 *
 | |
| 	 * @return  void
 | |
| 	 */
 | |
| 	public static function clearPluginsAndModulesCache()
 | |
| 	{
 | |
| 		self::clearPluginsCache();
 | |
| 		self::clearModulesCache();
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Clears the com_plugins cache. You need to call this whenever you alter the publish state or parameters of a
 | |
| 	 * plugin from your code.
 | |
| 	 *
 | |
| 	 * @return  void
 | |
| 	 */
 | |
| 	public static function clearPluginsCache()
 | |
| 	{
 | |
| 		self::clearCacheGroups(array('com_plugins'), array(0,1));
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Clears the com_modules cache. You need to call this whenever you alter the publish state or parameters of a
 | |
| 	 * module from your code.
 | |
| 	 *
 | |
| 	 * @return  void
 | |
| 	 */
 | |
| 	public static function clearModulesCache()
 | |
| 	{
 | |
| 		self::clearCacheGroups(array('com_modules'), array(0,1));
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Clears the specified cache groups.
 | |
| 	 *
 | |
| 	 * @param   array $clearGroups    Which cache groups to clear. Usually this is com_yourcomponent to clear your
 | |
| 	 *                                component's cache.
 | |
| 	 * @param   array   $cacheClients Which cache clients to clear. 0 is the back-end, 1 is the front-end. If you do not
 | |
| 	 *                                specify anything, both cache clients will be cleared.
 | |
| 	 *
 | |
| 	 * @return  void
 | |
| 	 */
 | |
| 	public static function clearCacheGroups(array $clearGroups, array $cacheClients = array(0, 1))
 | |
| 	{
 | |
| 		$conf = JFactory::getConfig();
 | |
| 
 | |
| 		foreach ($clearGroups as $group)
 | |
| 		{
 | |
| 			foreach ($cacheClients as $client_id)
 | |
| 			{
 | |
| 				try
 | |
| 				{
 | |
| 					$options = array(
 | |
| 						'defaultgroup' => $group,
 | |
| 						'cachebase' => ($client_id) ? JPATH_ADMINISTRATOR . '/cache' : $conf->get('cache_path', JPATH_SITE . '/cache')
 | |
| 					);
 | |
| 
 | |
| 					$cache = JCache::getInstance('callback', $options);
 | |
| 					$cache->clean();
 | |
| 				}
 | |
| 				catch (Exception $e)
 | |
| 				{
 | |
| 					// suck it up
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| } 
 |