本文整理汇总了PHP中Cache_Lite::remove方法的典型用法代码示例。如果您正苦于以下问题:PHP Cache_Lite::remove方法的具体用法?PHP Cache_Lite::remove怎么用?PHP Cache_Lite::remove使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Cache_Lite
的用法示例。
在下文中一共展示了Cache_Lite::remove方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: removeFromCache
/**
* This is a warpper for Cache_Lite::remove(), since it generates
* strict warnings.
*
* @param mixed $key The key to remove from cache
*
* @return result of Cache_Lite::remove(), without the strict warnings
*/
protected function removeFromCache($key)
{
$current = error_reporting();
error_reporting($current & ~E_STRICT);
$this->cache->remove($key);
error_reporting($current);
}
示例2: remove
/**
* Remove a cached data entry by ID and group
*
* @param string $id The cache data ID
* @param string $group The cache data group
*
* @return boolean
*
* @since 11.1
*/
public function remove($id, $group)
{
static::$CacheLiteInstance->setOption('cacheDir', $this->_root . '/' . $group . '/');
// This call is needed to ensure $this->rawname is set
$this->_getCacheId($id, $group);
return static::$CacheLiteInstance->remove($this->rawname, $group);
}
示例3: intercept_page
public function intercept_page(&$page)
{
if ($this->_in_excluded_pages()) {
return;
}
$frontend = Frontend::instance();
$logged_in = $frontend->isLoggedIn();
$headers = $page['page']->_headers;
$url = getCurrentPage();
$options = array('cacheDir' => CACHE . "/", 'lifeTime' => $this->_get_lifetime());
$cl = new Cache_Lite($options);
if ($page['page']->_param['url-flush'] == 'site') {
$cl->clean();
} else {
if (array_key_exists('url-flush', $page['page']->_param)) {
$cl->remove($url);
} else {
if (!$logged_in && ($output = $cl->get($url))) {
# Ensure the original headers are served out
foreach ($headers as $header) {
header($header);
}
print $output;
if ($this->_get_comment_pref() == 'yes') {
echo "<!-- Cache served: " . $cl->_fileName . " -->";
}
exit;
}
}
}
}
示例4: delete
public function delete()
{
global $config;
if ($config['cache']['disable']) {
return false;
}
return parent::remove($this->cache_id, $this->cache_group);
}
示例5: delete_by_cache_id
/**
* Removes all items from cache with specified cache ids (cache id = md5(id))
*
* @param array $ids
* @return bool
*/
public function delete_by_cache_id(array $ids)
{
if (empty($ids)) {
return true;
}
foreach ($ids as $id) {
if ($this->cache_lite->remove($id, 'vivvo_cache') !== true) {
return false;
}
}
return true;
}
示例6: die
if (!defined('TYPO3_MODE')) {
die('Access denied.');
}
if ($this->get['invoices_export_hash']) {
set_time_limit(86400);
ignore_user_abort(true);
$invoices_export = mslib_fe::getInvoicesExportWizard($this->get['invoices_export_hash'], 'code');
$lifetime = 7200;
if ($this->ADMIN_USER) {
$lifetime = 0;
}
$options = array('caching' => true, 'cacheDir' => $this->DOCUMENT_ROOT . 'uploads/tx_multishop/tmp/cache/', 'lifeTime' => $lifetime);
$Cache_Lite = new Cache_Lite($options);
$string = 'invoicesfeed_' . $this->shop_pid . '_' . serialize($invoices_export) . '-' . md5($this->cObj->data['uid'] . '_' . $this->server['REQUEST_URI'] . $this->server['QUERY_STRING']);
if ($this->ADMIN_USER and $this->get['clear_cache']) {
$Cache_Lite->remove($string);
}
if (!($content = $Cache_Lite->get($string))) {
$fields = unserialize($invoices_export['fields']);
$post_data = unserialize($invoices_export['post_data']);
if (!$post_data['delimeter_type']) {
$post_data['delimeter_type'] = ';';
}
$fields_values = $post_data['fields_values'];
$records = array();
// orders record
$filter = array();
$from = array();
$having = array();
$match = array();
$orderby = array();
示例7: delete
/**
* Explicitly deletes (empties) values stored for the given key
* @param string $key The key used to delete value
* @return boolean
*/
public function delete($key)
{
return $this->cache->remove($key, self::$group);
}
示例8: getFromCache
public function getFromCache($id, $group, $REQUIRED_KEYS = null, $sign = null)
{
$cacheId = $this->localCacheKey($id, $group);
//Сначала ищем в локальном хранилище
if ($this->CACHE->has($cacheId)) {
$CACHED = $this->CACHE->get($cacheId);
if ($CACHED['sign'] == $sign) {
$this->LOGGER->info("Информация по ключу '{$cacheId}' найдена в локальном кеше");
return $CACHED['data'];
} else {
$this->LOGGER->info("Информация по ключу '{$cacheId}' найдена в локальном кеше, но старая и новая подписи не совпадают: [{}]!=[{}]. Чистим...", $CACHED['sign'], $sign);
$this->CACHE->remove($cacheId);
$this->CACHELITE->remove($id, $group);
return null;
}
}
/*
* Самое интересное и спорное место всей реализации.
* Нам нужно отслеживать свежесть кешей. Сами по себе они сбрасываются через опередённое время (время жизни кеша).
* Но это время достаточно велико и, если мы сейчас, например, правим код, то нам некогда ждать, пока всё само сабой обновится.
*
* Кеши валидируются через свои, so called, "подписи".
* Например - структура проекта (строка навигации) зависит от кол-ва постов в каждом разделе, но при этом если какой-либо пост изменится, то
* на подпись кеша для навигации это никак не повлияет, а ведь в посте мог измениться анонс, например.
*
* Всё крутится вокруг изменения сущностей фолдингов. При изменении сущности будет сброшен кеш, который от этого фолдинга зависит.
* Весь вопрос в том - как отслеживать эти изменения?.. Единственное решение - пробегать по всем фолдингам и выполнять checkAllEntityChanged.
* Решение это довольно дорогостоящее. Даже если сущность не изменилась и кеш не будет перестроен, мы вынуждены выполнить очень много действий.
*
* Есть два варинта для обеспечения "свежести" кешей:
*
* Вариант №1.
* Каждый раз при запросе кеша выполнять checkAllEntityChanged для фолдингов, от которых зависит запрашеваемая группа кешей.
* Это нам ВСЕГДА обеспечит свежесть всех кешей, но данная операция является довольно тяжёлой.
*
* Вариант №2.
* Выполнять проверку checkAllEntityChanged для всех фолдингов, но так как это довольно дорого - делать это не каждый раз, а с определённой периодичностью.
* Это также обеспечивает свежесть кешей, но операция - очень тяжёлая, поэтому её нельзя выполнять каждый раз.
* В идеале её вообще должен выполнять внешний процесс, запускаемый раз в EXTERNAL_PROCESS_CALL_DELAY минут.
* Будем эмулировать его работу посредством класса ExternalProcess.
* В продакшене будет работать второй вариант - там частота обновлений кешей не так важна.
*/
$this->validateGroup($group);
PsProfiler::inst(__CLASS__)->start('LOAD from cache');
$CACHED = $this->CACHELITE->get($id, $group);
PsProfiler::inst(__CLASS__)->stop();
if (!$CACHED) {
$this->LOGGER->info("Информация по ключу '{$cacheId}' не найдена в кеше");
return null;
}
if (!is_array($CACHED)) {
$this->LOGGER->info("Информация по ключу '{$cacheId}' найдена в хранилище, но не является массивом. Чистим...");
$this->CACHELITE->remove($id, $group);
return null;
}
if (!array_has_all_keys(array('data', 'sign'), $CACHED)) {
$this->LOGGER->info("Информация по ключу '{$cacheId}' найдена в хранилище, но отсутствует параметр sign или data. Чистим...");
$this->CACHELITE->remove($id, $group);
return null;
}
if ($CACHED['sign'] != $sign) {
$this->LOGGER->info("Информация по ключу '{$cacheId}' найдена в хранилище, но старая и новая подписи не совпадают: [{}]!=[{}]. Чистим...", $CACHED['sign'], $sign);
$this->CACHELITE->remove($id, $group);
return null;
}
$MUST_BE_ARRAY = is_array($REQUIRED_KEYS);
$REQUIRED_KEYS = to_array($REQUIRED_KEYS);
if ($MUST_BE_ARRAY || !empty($REQUIRED_KEYS)) {
//Если нам переданы ключи для проверки, значит необходимо убедиться, что сами данные являются массивом
if (!is_array($CACHED['data'])) {
$this->LOGGER->info("Информация по ключу '{$cacheId}' найдена в хранилище, но не является массивом. Чистим...");
$this->CACHELITE->remove($id, $group);
return null;
}
foreach ($REQUIRED_KEYS as $key) {
if (!array_key_exists($key, $CACHED['data'])) {
$this->LOGGER->info("Информация по ключу '{$cacheId}' найдена, но в данных отсутствует обязательный ключ [{$key}]. Чистим...");
$this->CACHELITE->remove($id, $group);
return null;
}
}
}
$this->LOGGER->info("Информация по ключу '{$cacheId}' найдена в хранилище");
//Перенесём данные в локальный кеш для быстрого доступа
return array_get_value('data', $this->CACHE->set($cacheId, $CACHED));
}
示例9: cleanup
function cleanup()
{
$cache = $this->get_config('cache');
if ($this->get_config('cache') == 'no') {
if (@(include_once "Cache/Lite.php")) {
$cache_obj = new Cache_Lite(array('cacheDir' => $serendipity['serendipityPath'] . 'templates_c/', 'automaticSerialization' => true));
@$cache_obj->remove('linklist_html');
@$cache_obj->remove('linklist_xmlhash');
}
}
$setdata = array('display' => $this->get_config('display'), 'category' => $this->get_config('category'), 'style' => $this->get_config('style'), 'cache' => $cache);
if ($this->get_config('directxml') != 'true') {
$blah = $this->get_config('display');
if (!isset($blah)) {
$this->set_config('display', 'category');
}
$setdata['enabled'] = 'true';
$setdata['links'] = $this->get_config('links');
} else {
$setdata['enabled'] = 'false';
}
serendipity_plugin_api::hook_event('plugins_linklist_conf', $setdata);
if ($setdata['changed'] == 'true') {
$this->set_config('links', $setdata['links']);
}
}
示例10: remove
/**
* A method to remove a cache file
*
* @param string $cacheName The name of the original file
* @return bool True if the cache was deleted
*/
function remove($cacheName)
{
$id = $this->_getId($cacheName);
$group = $this->_getGroup($cacheName);
return $this->oCache->remove($id, $group);
}
示例11: removeFromCache
public function removeFromCache($id, $group)
{
$this->IMPL->remove($id, $group);
}
示例12: clear
function clear()
{
return $this->oCache->remove($this->id, $this->group);
}
示例13: removeCache
function removeCache()
{
$this->oCache->remove($this->cacheId, $this->groupId);
}
示例14: time
<?php
//Guardar IMG
session_start();
$username = $_SESSION['username'];
require "config.php";
$filefile = $_FILES['foto']['name'];
$urrl = "local_img/" . $filefile;
$time = time();
$id = $_GET['id'];
//Borra la cache de las fotos:
require_once "cachelite/Lite.php";
$options = array("cacheDir" => "cachelite/", "lifeTime" => 0);
$objCache = new Cache_Lite($options);
$objCache->remove("last_img");
//
if ($urrl != "local_img/") {
$ran = rand(1, 999999);
$urrl = "local_img/" . $ran . $filefile;
}
//echo($filefile.$urrl);
echo "Guardando...";
if (is_uploaded_file($_FILES['foto']['tmp_name'])) {
//copy($HTTP_POST_FILES['filename']['foto'], $HTTP_POST_FILES['filename']['tmp_name']);
copy($_FILES['foto']['tmp_name'], $urrl);
$subio = true;
}
mysql_query("INSERT INTO `markers_foto` (\n`id` ,\n`local_id` ,\n`image` ,\n`username` ,\n`timestamp`\n)\nVALUES (\nNULL , '" . $id . "', '" . $urrl . "', '" . $username . "', '" . $time . "'\n);");
$ver_todoo = mysql_query("SELECT * FROM markers WHERE id = '{$id}' ;");
while ($prodroww = mysql_fetch_array($ver_todoo)) {
$iddd = $prodroww['id'];
示例15: isset
}
}
mb_convert_variables('CP932', 'UTF-8', $search_result);
$cache->save($search_result, $cache_id_result, $cache_group_result);
}
// 検索結果キャッシュのガーベッジコレクション
if (mt_rand(0, 99) == 0) {
P2Util::garbageCollection($cache_options['cacheDir'], $cache_options['lifeTime'], 'cache_' . $cache_group_result);
P2Util::garbageCollection($cache_options['cacheDir'], $cache_options['lifeTime'], 'cache_' . $cache_group_profile);
}
$errors = isset($search_result['errors']) ? $search_result['errors'] : null;
$threads = isset($search_result['threads']) ? $search_result['threads'] : null;
$profile = $search_profile['profile'];
$modified = strtotime($search_profile['modified']);
if ($errors) {
$cache->remove($cache_id_result, $cache_group_result);
$cache->remove($cache_id_profile, $cache_group_profile);
} else {
// 検索履歴を更新
if ($_conf['expack.tgrep.recent_num'] > 0) {
FileCtl::make_datafile($_conf['expack.tgrep.recent_file'], $_conf['expack.tgrep.file_perm']);
$tgrep_recent_list = FileCtl::file_read_lines($_conf['expack.tgrep.recent_file'], FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if (!is_array($tgrep_recent_list)) {
$tgrep_recent_list = array();
}
array_unshift($tgrep_recent_list, preg_replace('/[\\r\\n\\t]/', ' ', trim($_GET['Q'])));
$tgrep_recent_list = array_unique($tgrep_recent_list);
while (count($tgrep_recent_list) > $_conf['expack.tgrep.recent_num']) {
array_pop($tgrep_recent_list);
}
$tgrep_recent_data = implode("\n", $tgrep_recent_list) . "\n";