primo commit
This commit is contained in:
85
libraries/f0f/utils/cache/cleaner.php
vendored
Normal file
85
libraries/f0f/utils/cache/cleaner.php
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
<?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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user