本文整理汇总了PHP中memBuff::add方法的典型用法代码示例。如果您正苦于以下问题:PHP memBuff::add方法的具体用法?PHP memBuff::add怎么用?PHP memBuff::add使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类memBuff
的用法示例。
在下文中一共展示了memBuff::add方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: foreach
/**
* Деструктор.
* @see CFileCache::getInstance()
*/
function __destruct()
{
foreach ($this->_cache as $key => $row) {
if ($this->_memAllowed($row)) {
$this->_memBuff->add($this->_memkey($key), $row, self::MEM_LIFE);
}
}
}
示例2: getCountSubscribe
/**
* Количество подписавшихся на рассылку
* @global type $DB
* @return type
*/
public function getCountSubscribe()
{
global $DB;
$memBuff = new memBuff();
$count = $memBuff->get('verify_count');
if (!$count) {
$count = $DB->val("SELECT COUNT(*) as cnt FROM verify");
$memBuff->add('verify_count', $count, 600);
}
return $count;
}
示例3: processRequest
/**
* Обрабатывает POST переменную action и возвращает null или данные.
*
* @return string
*/
public function processRequest()
{
$expire = 1;
//3600;
$action = __paramInit('string', '', 'action');
switch ($action) {
case 'getdays':
$days = array(1 => iconv('WINDOWS-1251', 'UTF-8//IGNORE', '1 день'));
$max = __paramInit('integer', '', 'max', 1);
$all = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14, 21, 30, 45, 60, 90);
if ($max > 1) {
$days = array();
foreach ($all as $day) {
if ($day >= $max) {
break;
}
$days[$day] = iconv('WINDOWS-1251', 'UTF-8//IGNORE', $day . ending($day, ' день', ' дня', ' дней'));
}
}
$days = array(array('parentId' => '0'), $days);
return json_encode($days);
break;
case 'gettucategories':
$expire = 300;
//3600;
$membuf = new memBuff();
$memkey = 'b-combo-gettucategories';
$result = $membuf->get($memkey);
if (!$result) {
/*
* Получаем из базы иерархию категорий для
* типовой услуги
*/
$DB = new DB('master');
$sql = 'SELECT
g.id AS gid,
g.title AS gname,
g.ucnt AS gucnt,
p.id AS pid,
p.title AS name,
p.ucnt AS pucnt
FROM tservices_categories AS g
INNER JOIN tservices_categories AS p ON p.parent_id = g.id
ORDER BY g.ucnt DESC, p.ucnt DESC --gid, pid --g.n_order, p.n_order';
$rows = $DB->rows($sql);
$result = array();
if (count($rows)) {
foreach ($rows as $k => $i) {
if ($result[$i['gid']] === null) {
$result[$i['gid']] = array('0' => array(iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['gname']), $i['gucnt']));
if ($i['pid'] !== null) {
$result[$i['gid']][$i['pid']] = array(iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['name']), $i['pucnt']);
} else {
$result[$i['gid']] = array(iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['gname']), $i['gucnt']);
}
} elseif (is_array($result[$i['gid']])) {
$result[$i['gid']][$i['pid']] = array(iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['name']), $i['pucnt']);
}
}
}
//print_r($result);
//exit;
$result = json_encode($result);
$membuf->add($memkey, $result, $expire);
}
return $result;
break;
case 'getlettergrouplist':
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/letters.php';
$lettergroups = letters::getGroups($_POST['word'], (int) $_POST['limit']);
$result = array();
$n = 0;
foreach ($lettergroups as $k => $i) {
$result[$n]['uid'] = $i['id'];
$result[$n]['uname'] = iconv('WINDOWS-1251', 'UTF-8//IGNORE', $i['title']);
$result[$n]['usurname'] = '';
$result[$n]['login'] = '';
$result[$n]['photo'] = '';
$result[$n]['path'] = '';
$result[$n]['isContacts'] = '';
++$n;
}
$list = array();
$list['list'] = $result;
$list['counters']['moreContacts'] = 0;
$list['counters']['moreUsers'] = 0;
$list['dav'] = WDCPREFIX;
return json_encode($list);
break;
case 'getlettergroupinfo':
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/letters.php';
$group = letters::getGroup($_POST['uid']);
if ($group) {
$data = array('record' => array('uid' => $group['id'], 'uname' => iconv('WINDOWS-1251', 'UTF-8//IGNORE', $group['title']), 'usurname' => '', 'login' => '', 'photo' => '', 'path' => '', 'isContacts' => ''), 'found' => 1, 'dav' => WDCPREFIX);
}
//.........这里部分代码省略.........
示例4: array
$cResult[$k] = "'{$k}' : '{$i}'";
}
$result[10] = $cResult;
//города Казахстана 38
$rows = city::GetCities(38);
$cResult = array('0' => "'0' : 'Казахстан'", 'undefined_value' => "'undefined_value' : 'Все города'");
foreach ($rows as $k => $i) {
$i = str_replace('"', '"', $i);
$i = str_replace("'", "\\'", $i);
$cResult[$k] = "'{$k}' : '{$i}'";
}
$result[38] = $cResult;
$tdata = array();
foreach ($result as $k => $i) {
$inner = "'{$i}'";
$item = "'{$k}' : {$inner}";
if (is_array($i)) {
$inner = implode(',', $i);
//join(",\n\t\t\t",
$item = "'{$k}' : " . '{' . $inner . '}';
//"'$k' : \n\t{\n\t\t\t$inner\n\t\t}";
}
$tdata[] = $item;
}
$result = $tdata;
$s = implode(',', $result);
//join(",\n"
$s = '{' . $s . '}';
$membuf->add($memkey, $s, 3600);
}
print 'var citiesList = ' . $s . '; citiesList["1"]["0"] = "Россия"; ';
示例5: memBuff
<?php
require_once $_SERVER["DOCUMENT_ROOT"] . "/classes/stdf.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/professions.php";
$membuf = new memBuff();
$memkey = "b-combo-getprofandgroups";
$s = $membuf->get($memkey);
if (!$s) {
$rows = professions::GetProfessionsAndGroup();
$result = array();
foreach ($rows as $k => $i) {
if ($result[$i["gid"]] === null) {
$result[$i["gid"]] = array('0' => iconv("WINDOWS-1251", "UTF-8//IGNORE", $i["gname"]), "undefined_value" => iconv("WINDOWS-1251", "UTF-8//IGNORE", 'Все специальности'));
if ($i["id"] !== null) {
$result[$i["gid"]][$i["id"]] = iconv("WINDOWS-1251", "UTF-8//IGNORE", $i["name"]);
} else {
$result[$i["gid"]] = iconv("WINDOWS-1251", "UTF-8//IGNORE", $i["gname"]);
}
} else {
if (is_array($result[$i["gid"]])) {
$result[$i["gid"]][$i["id"]] = iconv("WINDOWS-1251", "UTF-8//IGNORE", $i["name"]);
}
}
}
$s = json_encode($result);
$membuf->add($memkey, $s);
}
print 'var professionsList = ' . $s . '; professionsList["0"]["0"] = "Другое";professionsList["0"]["undefined_value"] = "Нет специализации";';
示例6: paymentOrder
//.........这里部分代码省略.........
$tmpPrj->setProjectField('state', projects::STATE_PUBLIC);
//Если оплачивается не перемещенная вакансия
//то работаем как обычно и подымаем вверх
if ($tproject['state'] != projects::STATE_MOVED_TO_VACANCY) {
$tmpPrj->setProjectField('post_now', true);
}
break;
}
$error = $tmpPrj->saveProject($this->user['uid'], $proj, $this->ordersPromoCodes);
$success = !$error;
if ($success) {
if (isset($tmpPrj->account_operation_id) && $tmpPrj->account_operation_id > 0) {
$account_operation_id = $tmpPrj->account_operation_id;
}
switch ($order['option']) {
case 'office':
if ($tproject['state'] == projects::STATE_MOVED_TO_VACANCY) {
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/smail.php';
$smail = new smail();
$smail->sendMovedToVacancySuccessPayed($tproject);
require_once $_SERVER['DOCUMENT_ROOT'] . '/guest/models/GuestInviteModel.php';
$guestInviteModel = new GuestInviteModel();
$guestInviteModel->updateDatePublicBySrc($prj_id, array(GuestConst::TYPE_PROJECT, GuestConst::TYPE_VACANCY));
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/autoresponse.php';
$autoresponse = new autoresponse();
$autoresponse->reduceByProject($prj_id);
}
break;
}
}
}
//Сохраняем, чтобы показать попап юзеру
$memBuff = new memBuff();
$memBuff->add('bill_ok_project_' . $this->user['uid'], $proj['id']);
//Если это оплата вакансии или конкусра то предлагаем еще купить платные опции
if (in_array($order['option'], array('office', 'contest')) && !$isMovedToVacancy) {
$memBuff->add('bill_ok_project_payed_' . $this->user['uid'], true);
}
break;
//------------------------------------------------------------------
// Платное место в карусели
//------------------------------------------------------------------
// Платное место в карусели
case 65:
// На главной странице
$catalog = 0;
case 73:
// В каталоге
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/pay_place.php';
$payPlace = new pay_place(isset($catalog) ? $catalog : 1);
$buyMain = $this->account->Buy($account_operation_id, $this->transaction, $order['op_code'], $this->user['uid'], $order['comment'], $order['descr'], $order['op_count'], 0, $order['promo_code']);
if ($buyMain === 0) {
$options = unserialize($order['option']);
if (isset($options['adHead'])) {
//поддержка старого режима
$success = $payPlace->addUser($this->user['uid'], $options['adHead'], $options['adText'], $options['adImg']);
} else {
$success = $payPlace->addUserRequest($this->user['uid'], $options);
}
}
break;
//------------------------------------------------------------------
// ПРО аккаунт фрилансеры
//------------------------------------------------------------------
// ПРО аккаунт фрилансеры
case 47:
示例7: while
while ($users = freelancer::GetPrjRecps($error, ++$page, $page_size)) {
$to_storage = array();
foreach ($users as $user) {
$to_storage[$user['uid']] = $user;
$indexs[$user['uid']] = $page;
//$indexs_str .= $user['uid'] . ':' . $page . '|';
//@todo: fill more more for testing
for ($i = 0; $i < 19; ++$i) {
$user['uid'] .= '_' . $i;
$to_storage[$user['uid']] = $user;
$indexs[$user['uid']] = $page;
//$indexs_str .= $user['uid'] . ':' . $page . '|';
}
}
$key = FRL_KEY . '-' . $page_size . '-' . $page;
$membuf->add($key, $to_storage, LIFE_TIME, FRL_TAG);
unset($to_storage);
}
if ($page > 0) {
$membuf->add(FRL_PAGES, $page, LIFE_TIME, FRL_TAG);
$membuf->add(FRL_INDEX, $indexs, LIFE_TIME, FRL_TAG);
//$membuf->add(FRL_INDEX, $indexs_str, LIFE_TIME, FRL_TAG);
}
unset($indexs);
}
//END IF
//------------------------------------------------------------------------------
$profiler->stop('fill_frl_mem');
//------------------------------------------------------------------------------
//$results['$indexs_str'] = strlen($indexs_str);
/*
示例8: send
/**
* Печатает html-блоки (<script ...>, <link ...>, др.) для обращения к статическому контенту.
* Собирает статику каждого типа (js|css) в один файл, вида:
* %batchid%_%version%.%type%
* который сохраняет на сервере. При следующем обращении, если версия не устарела, то просто печатаем тег с адресом этого файла.
* Если версия устарела, то сначала генерируем файл заново. При этом блокируем запись файла от других процессов.
* Если процесс натыкается на блок, то выдаем ему статику "online" -- через static_compressor::output().
*/
public function send()
{
global $DB;
if (!$this->enabled) {
return $this->sendUncomressed();
}
$log = $this->_log;
$this->getBatchesInfo();
foreach ($this->types as $type => $name) {
if (!$this->files[$type]) {
continue;
}
$batch_id = md5(implode(self::SEED_SEP, $this->files[$type]));
$batch_version = $this->getBatchVersion($batch_id);
$ext = $this->types[$type];
$filename = self::STATIC_WDPATH . '/' . $this->createFileName($batch_id, $batch_version, $ext);
$fileurl = WDCPREFIX . '/';
$expired = false;
$file_not_exists = false;
$batch_locked = 0;
if ($expired = $batch_version < $this->_batches['version']) {
if (isset($_SERVER['REQUEST_URI'])) {
// $log->writeln("ref: {$_SERVER['REQUEST_METHOD']} {$_SERVER['REQUEST_URI']}");
}
$old_filename = $filename;
$old_batch_version = $batch_version;
// $log->writeln("batch file {$filename} expired");
$lock_key = $this->_createBatchLockKey($batch_id, $this->_batches['version']);
// $this->memBuff->delete($lock_key);
if (!$batch_locked && !($batch_locked = $this->memBuff->get($lock_key))) {
$log->writeln('lock not exist, try set it...');
if ($batch_locked = !$this->memBuff->add($lock_key, 1, self::MEM_LOCK_LIFE)) {
$log->writeln('lock already added');
} elseif ($batch_locked = !$this->memBuff->set($lock_key, 1, self::MEM_LOCK_LIFE)) {
// какая-то фигня с add(), но зато блокирует другие add().
$log->writeln('lock setting failed');
}
}
if (!$batch_locked) {
// т.е. именно этот процесс будет формировать пакет.
$lock_cnt = (int) $this->memBuff->get($lock_key . '.counter');
if ($lock_cnt > 0 || !$DB->query("SELECT pgq.insert_event('share', 'static_compress.createBatchBySeed', ?)", 'seed=' . $this->_encodeSeed($type))) {
// Сжимаем рантайм (но лайт):
// а) если прошло уже достаточно времени для формирования пакета, но его так и нет -- считаем, что отвалился pgq
// (один $lock_cnt значит, что прошло self::MEM_LOCK_LIFE секунд);
// б) в случае, если pgq сработал, но возникла ошибка в createBatch() (например, при сжатии);
// в) в случае неудачи инсерта в очередь.
$batch_locked = $this->_createBatch($type, $batch_id, $this->_batches['version'], $filename, true);
} else {
$batch_locked = 100;
// просто отдадим пока старую версию.
}
$this->memBuff->set($lock_key . '.counter', $lock_cnt + 1, self::MEM_LOCK_LIFE * 10);
}
if ($batch_locked) {
if ($old_batch_version) {
// старый файл точно есть.
// 1. Отдаем старую версию.
// $log->writeln("sending old version: batch file {$filename} is locked/failed ($batch_locked)\n");
$filename = $old_filename;
} else {
// 2. Если использовать только этот вариант, то он жутко грузит апачи при перегенерации.
// Поэтому только в случае отсутствия старого файла.
// $log->writeln("sending uncompressed: batch file {$filename} is locked/failed ($batch_locked)\n");
$filename = '/static.php?t=' . $this->_encodeSeed($type);
$fileurl = '';
}
// 3. Либо такой вариант. Но в таком случае рискуем выдать юзеру серверный устаревший кэш.
// 08.2012: уже не катит совсем из-за IE+БЭМ.
// $this->sendUncomressed($type, $this->_batches['version']);
// continue;
}
// $log->write("\n");
}
$this->printTags($fileurl . $filename, $type);
}
if ($this->_addWorker) {
$this->_addWorker->send();
}
}
示例9: isCommuneTopicSubscribed
/**
* Функция возвращает результат подписки на комментарии топика сообщества для пользователя
*
* @param integer $user_id
* @param integer $message_id
* @return array
*/
public static function isCommuneTopicSubscribed($message_id, $user_id)
{
$membuf = new memBuff();
$memkey = "comm_topic_subscribe_{$message_id}" . "_" . "{$user_id}";
$result = $membuf->get($memkey);
if (!$result) {
global $DB;
$sql = "SELECT subscribed FROM commune_users_messages WHERE user_id = ?i AND message_id = ?i";
$result = $DB->val($sql, $user_id, $message_id);
$membuf->add($memkey, $result, 3600);
}
if ($result == 't') {
return true;
}
return false;
}