Файловый менеджер - Редактировать - /home/wuectly/www/03cbe/cache.php.tar
Назад
home/wuectly/www/plugins/system/cache/cache.php 0000604 00000013143 15245527333 0015647 0 ustar 00 <?php /** * @package Joomla.Plugin * @subpackage System.cache * * @copyright (C) 2007 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Joomla! Page Cache Plugin. * * @since 1.5 */ class PlgSystemCache extends JPlugin { /** * Cache instance. * * @var JCache * @since 1.5 */ public $_cache; /** * Cache key * * @var string * @since 3.0 */ public $_cache_key; /** * Application object. * * @var JApplicationCms * @since 3.8.0 */ protected $app; /** * Constructor. * * @param object &$subject The object to observe. * @param array $config An optional associative array of configuration settings. * * @since 1.5 */ public function __construct(& $subject, $config) { parent::__construct($subject, $config); // Get the application if not done by JPlugin. if (!isset($this->app)) { $this->app = JFactory::getApplication(); } // Set the cache options. $options = array( 'defaultgroup' => 'page', 'browsercache' => $this->params->get('browsercache', 0), 'caching' => false, ); // Instantiate cache with previous options and create the cache key identifier. $this->_cache = JCache::getInstance('page', $options); $this->_cache_key = JUri::getInstance()->toString(); } /** * Get a cache key for the current page based on the url and possible other factors. * * @return string * * @since 3.7 */ protected function getCacheKey() { static $key; if (!$key) { JPluginHelper::importPlugin('pagecache'); $parts = JEventDispatcher::getInstance()->trigger('onPageCacheGetKey'); $parts[] = JUri::getInstance()->toString(); $key = md5(serialize($parts)); } return $key; } /** * After Initialise Event. * Checks if URL exists in cache, if so dumps it directly and closes. * * @return void * * @since 1.5 */ public function onAfterInitialise() { if ($this->app->isClient('administrator') || $this->app->get('offline', '0') || $this->app->getMessageQueue()) { return; } // If any pagecache plugins return false for onPageCacheSetCaching, do not use the cache. JPluginHelper::importPlugin('pagecache'); $results = JEventDispatcher::getInstance()->trigger('onPageCacheSetCaching'); $caching = !in_array(false, $results, true); if ($caching && JFactory::getUser()->guest && $this->app->input->getMethod() === 'GET') { $this->_cache->setCaching(true); } $data = $this->_cache->get($this->getCacheKey()); // If page exist in cache, show cached page. if ($data !== false) { // Set HTML page from cache. $this->app->setBody($data); // Dumps HTML page. echo $this->app->toString((bool) $this->app->get('gzip')); // Mark afterCache in debug and run debug onAfterRespond events. // e.g., show Joomla Debug Console if debug is active. if (JDEBUG) { JProfiler::getInstance('Application')->mark('afterCache'); JEventDispatcher::getInstance()->trigger('onAfterRespond'); } // Closes the application. $this->app->close(); } } /** * After Render Event. * Verify if current page is not excluded from cache. * * @return void * * @since 3.9.12 */ public function onAfterRender() { if ($this->_cache->getCaching() === false) { return; } // We need to check if user is guest again here, because auto-login plugins have not been fired before the first aid check. // Page is excluded if excluded in plugin settings. if (!JFactory::getUser()->guest || $this->app->getMessageQueue() || $this->isExcluded() === true) { $this->_cache->setCaching(false); return; } // Disable compression before caching the page. $this->app->set('gzip', false); } /** * After Respond Event. * Stores page in cache. * * @return void * * @since 1.5 */ public function onAfterRespond() { if ($this->_cache->getCaching() === false) { return; } // Saves current page in cache. $this->_cache->store($this->app->getBody(), $this->getCacheKey()); } /** * Check if the page is excluded from the cache or not. * * @return boolean True if the page is excluded else false * * @since 3.5 */ protected function isExcluded() { // Check if menu items have been excluded. if ($exclusions = $this->params->get('exclude_menu_items', array())) { // Get the current menu item. $active = $this->app->getMenu()->getActive(); if ($active && $active->id && in_array((int) $active->id, (array) $exclusions)) { return true; } } // Check if regular expressions are being used. if ($exclusions = $this->params->get('exclude', '')) { // Normalize line endings. $exclusions = str_replace(array("\r\n", "\r"), "\n", $exclusions); // Split them. $exclusions = explode("\n", $exclusions); // Gets internal URI. $internal_uri = '/index.php?' . JUri::getInstance()->buildQuery($this->app->getRouter()->getVars()); // Loop through each pattern. if ($exclusions) { foreach ($exclusions as $exclusion) { // Make sure the exclusion has some content if ($exclusion !== '') { // Test both external and internal URI if (preg_match('#' . $exclusion . '#i', $this->_cache_key . ' ' . $internal_uri, $match)) { return true; } } } } } // If any pagecache plugins return true for onPageCacheIsExcluded, exclude. JPluginHelper::importPlugin('pagecache'); $results = JEventDispatcher::getInstance()->trigger('onPageCacheIsExcluded'); return in_array(true, $results, true); } } home/wuectly/www/libraries/regularlabs/helpers/cache.php 0000604 00000001734 15245570465 0017527 0 ustar 00 <?php /** * @package Regular Labs Library * @version 21.4.10972 * * @author Peter van Westen <info@regularlabs.com> * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ /* @DEPRECATED */ defined('_JEXEC') or die; use RegularLabs\Library\Cache as RL_Cache; if (is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; } class RLCache { static $cache = []; public static function has($id) { return RL_Cache::has($id); } public static function get($id) { return RL_Cache::get($id); } public static function set($id, $data) { return RL_Cache::set($id, $data); } public static function read($id) { return RL_Cache::read($id); } public static function write($id, $data, $ttl = 0) { return RL_Cache::write($id, $data, $ttl); } } home/wuectly/www/administrator/components/com_cache/cache.php 0000604 00000001061 15245604440 0020534 0 ustar 00 <?php /** * @package Joomla.Administrator * @subpackage com_cache * * @copyright (C) 2005 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; if (!JFactory::getUser()->authorise('core.manage', 'com_cache')) { throw new JAccessExceptionNotallowed(JText::_('JERROR_ALERTNOAUTHOR'), 403); } $controller = JControllerLegacy::getInstance('Cache'); $controller->execute(JFactory::getApplication()->input->get('task')); $controller->redirect(); home/wuectly/www/administrator/components/com_cache/models/cache.php 0000604 00000014544 15245613425 0022034 0 ustar 00 <?php /** * @package Joomla.Administrator * @subpackage com_cache * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\Utilities\ArrayHelper; /** * Cache Model * * @since 1.6 */ class CacheModelCache extends JModelList { /** * An Array of CacheItems indexed by cache group ID * * @var Array */ protected $_data = array(); /** * Group total * * @var integer */ protected $_total = null; /** * Pagination object * * @var object */ protected $_pagination = null; /** * Constructor. * * @param array $config An optional associative array of configuration settings. * * @since 3.5 */ public function __construct($config = array()) { if (empty($config['filter_fields'])) { $config['filter_fields'] = array( 'group', 'count', 'size', 'client_id', ); } parent::__construct($config); } /** * Method to auto-populate the model state. * * Note. Calling getState in this method will result in recursion. * * @param string $ordering Field for ordering. * @param string $direction Direction of ordering. * * @return void * * @since 1.6 */ protected function populateState($ordering = 'group', $direction = 'asc') { // Load the filter state. $this->setState('filter.search', $this->getUserStateFromRequest($this->context . '.filter.search', 'filter_search', '', 'string')); // Special case for client id. $clientId = (int) $this->getUserStateFromRequest($this->context . '.client_id', 'client_id', 0, 'int'); $clientId = (!in_array($clientId, array (0, 1))) ? 0 : $clientId; $this->setState('client_id', $clientId); parent::populateState($ordering, $direction); } /** * Method to get a store id based on model configuration state. * * This is necessary because the model is used by the component and * different modules that might need different sets of data or different * ordering requirements. * * @param string $id A prefix for the store id. * * @return string A store id. * * @since 3.5 */ protected function getStoreId($id = '') { // Compile the store id. $id .= ':' . $this->getState('client_id'); $id .= ':' . $this->getState('filter.search'); return parent::getStoreId($id); } /** * Method to get cache data * * @return array */ public function getData() { if (empty($this->_data)) { try { $cache = $this->getCache(); $data = $cache->getAll(); if ($data && count($data) > 0) { // Process filter by search term. if ($search = $this->getState('filter.search')) { foreach ($data as $key => $cacheItem) { if (stripos($cacheItem->group, $search) === false) { unset($data[$key]); continue; } } } // Process ordering. $listOrder = $this->getState('list.ordering', 'group'); $listDirn = $this->getState('list.direction', 'ASC'); $this->_data = ArrayHelper::sortObjects($data, $listOrder, strtolower($listDirn) === 'desc' ? -1 : 1, true, true); // Process pagination. $limit = (int) $this->getState('list.limit', 25); if ($limit !== 0) { $start = (int) $this->getState('list.start', 0); return array_slice($this->_data, $start, $limit); } } else { $this->_data = array(); } } catch (JCacheExceptionConnecting $exception) { $this->setError(JText::_('COM_CACHE_ERROR_CACHE_CONNECTION_FAILED')); $this->_data = array(); } catch (JCacheExceptionUnsupported $exception) { $this->setError(JText::_('COM_CACHE_ERROR_CACHE_DRIVER_UNSUPPORTED')); $this->_data = array(); } } return $this->_data; } /** * Method to get cache instance. * * @return JCacheController */ public function getCache($clientId = null) { $conf = JFactory::getConfig(); if (is_null($clientId)) { $clientId = $this->getState('client_id'); } $options = array( 'defaultgroup' => '', 'storage' => $conf->get('cache_handler', ''), 'caching' => true, 'cachebase' => (int) $clientId === 1 ? JPATH_ADMINISTRATOR . '/cache' : $conf->get('cache_path', JPATH_SITE . '/cache') ); return JCache::getInstance('', $options); } /** * Method to get client data. * * @return array * * @deprecated 4.0 No replacement. */ public function getClient() { return JApplicationHelper::getClientInfo($this->getState('client_id', 0)); } /** * Get the number of current Cache Groups. * * @return integer */ public function getTotal() { if (empty($this->_total)) { $this->_total = count($this->getData()); } return $this->_total; } /** * Method to get a pagination object for the cache. * * @return JPagination */ public function getPagination() { if (empty($this->_pagination)) { $this->_pagination = new JPagination($this->getTotal(), $this->getState('list.start'), $this->getState('list.limit')); } return $this->_pagination; } /** * Clean out a cache group as named by param. * If no param is passed clean all cache groups. * * @param string $group Cache group name. * * @return boolean True on success, false otherwise */ public function clean($group = '') { try { $this->getCache()->clean($group); } catch (JCacheExceptionConnecting $exception) { return false; } catch (JCacheExceptionUnsupported $exception) { return false; } Factory::getApplication()->triggerEvent('onAfterPurge', array($group)); return true; } /** * Purge an array of cache groups. * * @param array $array Array of cache group names. * * @return array Array with errors, if they exist. */ public function cleanlist($array) { $errors = array(); foreach ($array as $group) { if (!$this->clean($group)) { $errors[] = $group; } } return $errors; } /** * Purge all cache items. * * @return boolean True if successful; false otherwise. */ public function purge() { try { JFactory::getCache('')->gc(); } catch (JCacheExceptionConnecting $exception) { return false; } catch (JCacheExceptionUnsupported $exception) { return false; } Factory::getApplication()->triggerEvent('onAfterPurge', array()); return true; } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка