本文整理汇总了PHP中CPHPCache类的典型用法代码示例。如果您正苦于以下问题:PHP CPHPCache类的具体用法?PHP CPHPCache怎么用?PHP CPHPCache使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CPHPCache类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getPropertyFieldSections
public static function getPropertyFieldSections($linkIblockId)
{
$linkIblockId = (int) $linkIblockId;
if ($linkIblockId <= 0) {
return false;
}
$ttl = 10000;
$cache_id = 'catalog_store_sections';
$cache_dir = '/bx/catalog_store_sections';
$obCache = new CPHPCache();
if ($obCache->InitCache($ttl, $cache_id, $cache_dir)) {
$res = $obCache->GetVars();
} else {
$res = array();
}
if (!isset($res[$linkIblockId])) {
$res[$linkIblockId] = array();
$sectionsIterator = Iblock\SectionTable::getList(array('select' => array('*'), 'filter' => array('=IBLOCK_ID' => $linkIblockId), 'order' => array('LEFT_MARGIN' => 'ASC')));
while ($section = $sectionsIterator->fetch()) {
$res[$linkIblockId][] = $section;
}
unset($section, $sectionsIterator);
if ($obCache->StartDataCache()) {
$obCache->EndDataCache($res);
}
}
return $res[$linkIblockId];
}
示例2: getJobName
public static function getJobName($id)
{
if (empty($id)) {
return false;
}
$result = false;
$obCache = new CPHPCache();
$dir = '/companies/names';
if ($obCache->InitCache(9999999999, md5($id), $dir)) {
$result = $obCache->GetVars();
} elseif ($obCache->StartDataCache() && \Bitrix\Main\Loader::includeModule('iblock')) {
if ($result = CIBlockElement::GetByID($id)->Fetch()) {
if (defined('BX_COMP_MANAGED_CACHE')) {
$GLOBALS['CACHE_MANAGER']->StartTagCache($dir);
$GLOBALS['CACHE_MANAGER']->RegisterTag('iblock_id_' . $result['IBLOCK_ID']);
}
$result = $result['NAME'];
if (defined('BX_COMP_MANAGED_CACHE')) {
$GLOBALS['CACHE_MANAGER']->EndTagCache();
}
}
$obCache->EndDataCache($result);
}
return $result;
}
示例3: LoadTrigrams
function LoadTrigrams($dir_name)
{
if (empty($this->_trigrams)) {
$file_name = $dir_name . "/trigram";
if (file_exists($file_name) && is_file($file_name)) {
$cache_id = filemtime($file_name) . "," . $file_name;
$obCache = new CPHPCache();
if ($obCache->StartDataCache(360000, $cache_id, "search")) {
$text = file_get_contents($file_name);
$ar = explode("\n", $text);
foreach ($ar as $trigramm) {
if (strlen($trigramm) == 3) {
$strScanCodesTmp = $this->ConvertToScancode($trigramm, false, true);
if (strlen($strScanCodesTmp) == 3) {
$this->_trigrams[$strScanCodesTmp] = true;
}
}
}
$obCache->EndDataCache($this->_trigrams);
} else {
$this->_trigrams = $obCache->GetVars();
}
}
}
}
示例4: get
public function get($typeSID)
{
// ƒл¤ показа баннера одного типа только 1 раз на странице
if (!empty($this->_typeSids[$typeSID])) {
return false;
}
if (!empty($_SESSION['SESS_SHOW_INCLUDE_TIME_EXEC'])) {
$debugKey = $_SESSION['SESS_SHOW_INCLUDE_TIME_EXEC'];
$_SESSION["SESS_SHOW_INCLUDE_TIME_EXEC"] = 'N';
}
$cacheBlock = new CPHPCache();
$url = CAdvBanner::GetCurUri();
if (($pos = strpos(CAdvBanner::GetCurUri(), '?')) !== false) {
$url = substr($url, 0, $pos);
}
$cacheId = $typeSID . '-' . $url;
if ($cacheBlock->StartDataCache($this->_cacheTime, $cacheId, $this->_cacheDir)) {
$result = CAdvBanner::Show($typeSID, '', '');
$cacheBlock->EndDataCache(array('VARS' => $result));
} else {
$vars = $cacheBlock->GetVars();
$result = $vars['VARS'];
}
if (!empty($_SESSION['SESS_SHOW_INCLUDE_TIME_EXEC'])) {
$_SESSION['SESS_SHOW_INCLUDE_TIME_EXEC'] = $debugKey;
}
/*ѕодсчЄт показов*/
if (empty($this->_typeSids[$typeSID])) {
$this->_typeSids[$typeSID] = 1;
} else {
$this->_typeSids[$typeSID] = $this->_typeSids[$typeSID] + 1;
}
/**/
return $result;
}
示例5: getListElements
function getListElements( $arSort = array(), $arFilter = array(), $arNav = array(), $arGroup = array(), $arSelect = array(), $cache_id = '' ) {
$cache = new CPHPCache();
$cache_time = 3600;
$cache_id = 'service_calc_'.$cache_id.'_'.md5(array( $arSort,$arFilter, $arNav, $arGroup, $arSelect, $cache_id));
$cache_path = '/bitrix/cache/';
if ($cache_time > 0 && $cache->InitCache($cache_time, $cache_id, $cache_path))
{
$res = $cache->GetVars();
if (is_array($res["dbElements"]) && (!empty($res["dbElements"]) ) )
$dbElements = $res["dbElements"];
}
if (empty($dbElements))
{
$dbElements = CIBlockElement::GetList ( $arSort,$arFilter, $arNav, $arGroup, $arSelect);
//////////// end cache /////////
if ($cache_time > 0)
{
$cache->StartDataCache ( $cache_time, $cache_id, $cache_path);
$cache->EndDataCache ( array("dbElements" => $dbElements) );
}
}
return $dbElements;
}
示例6: canRead
/**
* @param $userId
* @return bool
*/
public function canRead($userId)
{
if ($this->canRead !== null) {
return $this->canRead;
}
if (!Loader::includeModule('socialnetwork')) {
return false;
}
$cacheTtl = 2592000;
$cacheId = 'blog_post_socnet_general_' . $this->entityId . '_' . LANGUAGE_ID;
$timezoneOffset = \CTimeZone::getOffset();
if ($timezoneOffset != 0) {
$cacheId .= "_" . $timezoneOffset;
}
$cacheDir = '/blog/socnet_post/gen/' . intval($this->entityId / 100) . '/' . $this->entityId;
$cache = new \CPHPCache();
if ($cache->initCache($cacheTtl, $cacheId, $cacheDir)) {
$post = $cache->getVars();
} else {
$cache->startDataCache();
$queryPost = \CBlogPost::getList(array(), array("ID" => $this->entityId), false, false, array("ID", "BLOG_ID", "PUBLISH_STATUS", "TITLE", "AUTHOR_ID", "ENABLE_COMMENTS", "NUM_COMMENTS", "VIEWS", "CODE", "MICRO", "DETAIL_TEXT", "DATE_PUBLISH", "CATEGORY_ID", "HAS_SOCNET_ALL", "HAS_TAGS", "HAS_IMAGES", "HAS_PROPS", "HAS_COMMENT_IMAGES"));
$post = $queryPost->fetch();
$cache->endDataCache($post);
}
if (!$post) {
$this->canRead = false;
return false;
}
/** @noinspection PhpDynamicAsStaticMethodCallInspection */
$this->canRead = \CBlogPost::getSocNetPostPerms($this->entityId, true, $userId, $post["AUTHOR_ID"]) >= BLOG_PERMS_READ;
return $this->canRead;
}
示例7: sectionUFields
public static function sectionUFields($primary)
{
if (!$primary) {
throw new ArgumentException('Не указан идентификатор инфоблока');
}
$cache = new \CPHPCache();
$path = self::createPath(__METHOD__);
$cacheId = md5($primary . $path);
if ($cache->InitCache(86400 * 2, $cacheId, $path)) {
$uFields = $cache->GetVars();
} else {
if (!is_numeric($primary)) {
$iblock = self::iblock($primary);
if (!$iblock) {
$cache->AbortDataCache();
return null;
}
$primary = $iblock['ID'];
}
global $USER_FIELD_MANAGER;
$uFields = $USER_FIELD_MANAGER->getUserFields("IBLOCK_{$primary}_SECTION");
if ($cache->StartDataCache()) {
$cache->EndDataCache($uFields);
}
}
return $uFields;
}
示例8: SetRecent
public static function SetRecent($entityId, $messageId, $isChat = false, $userId = false)
{
$entityId = intval($entityId);
$messageId = intval($messageId);
if ($entityId <= 0 || $messageId <= 0) {
return false;
}
$userId = intval($userId);
if ($userId <= 0) {
$userId = $GLOBALS['USER']->GetID();
}
if (!$isChat && $userId == $entityId) {
return false;
}
global $DB;
$strSQL = "\n\t\t\tINSERT INTO b_im_recent (USER_ID, ITEM_TYPE, ITEM_ID, ITEM_MID)\n\t\t\tVALUES (" . $userId . ", '" . ($isChat ? IM_MESSAGE_GROUP : IM_MESSAGE_PRIVATE) . "', " . $entityId . ", " . $messageId . ")\n\t\t\tON DUPLICATE KEY UPDATE ITEM_MID = " . $messageId;
$DB->Query($strSQL, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__);
$obCache = new CPHPCache();
$obCache->CleanDir('/bx/im/rec' . CIMMessenger::GetCachePath($userId));
if ($isChat) {
CIMMessenger::SpeedFileDelete($userId, IM_SPEED_GROUP);
} else {
CIMMessenger::SpeedFileDelete($userId, IM_SPEED_MESSAGE);
}
return true;
}
示例9: addVariants
public function addVariants(&$field, $params)
{
if (!$params["LINK_IBLOCK_ID"]) {
return;
}
$cacheDir = KFilter::$config['CACHE_DIR'] . self::$cacheSubdir;
$obCache = new CPHPCache();
if ($obCache->InitCache(KFilter::$config['CACHE_TIME'], md5($params["LINK_IBLOCK_ID"] . __METHOD__), $cacheDir)) {
$field['VARIANTS'] = $obCache->GetVars();
} elseif ($obCache->StartDataCache()) {
CModule::IncludeModule('iblock');
global $CACHE_MANAGER;
$CACHE_MANAGER->StartTagCache($cacheDir);
$CACHE_MANAGER->RegisterTag("iblock_id_" . $params["LINK_IBLOCK_ID"]);
$CACHE_MANAGER->EndTagCache();
$rsSect = CIBlockSection::GetList(array('sort' => 'asc', 'name' => 'asc'), array('IBLOCK_ID' => $params["LINK_IBLOCK_ID"], 'ACTIVE' => 'Y'), false, array('ID', 'NAME'));
while ($arSect = $rsSect->GetNext()) {
$field['VARIANTS'][] = array('ID' => $arSect['ID'], 'NAME' => $arSect['NAME']);
}
$obCache->EndDataCache($field['VARIANTS']);
}
foreach ($field['VARIANTS'] as &$section) {
if ($_REQUEST[$field['NAME']] == $section['ID']) {
$section['SELECTED'] = 'Y';
$res = CIBlockElement::GetList(array(), array("IBLOCK_ID" => $params["LINK_IBLOCK_ID"], "SECTION_ID" => $section['ID']), false, false, array("ID", "IBLOCK_ID"));
$arr = array();
while ($el = $res->GetNext()) {
$arr[] = $el['ID'];
}
$this->filter['PROPERTY_' . $field['PROPERTY']] = $arr;
break;
}
}
}
示例10: isMandatoryUserFieldExists
/**
* @return bool true if some mandatory UF exists for TASKS
*/
public static function isMandatoryUserFieldExists()
{
/** @var $CACHE_MANAGER CCacheManager */
global $CACHE_MANAGER;
$isFieldExists = null;
// unknown yet
$obCache = new CPHPCache();
$lifeTime = CTasksTools::CACHE_TTL_UNLIM;
$cacheID = md5('uftasks');
$cacheDir = "/tasks/ufs";
if (defined('BX_COMP_MANAGED_CACHE') && $obCache->InitCache($lifeTime, $cacheID, $cacheDir)) {
$data = $obCache->GetVars();
$isFieldExists = $data['isFieldExists'];
} else {
/** @noinspection PhpDynamicAsStaticMethodCallInspection */
$rsUserType = CUserTypeEntity::GetList(array(), array('ENTITY_ID' => 'TASKS_TASK', 'MANDATORY' => 'Y'));
if ($rsUserType->fetch()) {
$isFieldExists = true;
} else {
$isFieldExists = false;
}
if (defined('BX_COMP_MANAGED_CACHE') && $obCache->StartDataCache()) {
$CACHE_MANAGER->StartTagCache($cacheDir);
$CACHE_MANAGER->RegisterTag('tasks_user_fields');
$CACHE_MANAGER->EndTagCache();
$data = array('isFieldExists' => $isFieldExists);
$obCache->EndDataCache($data);
}
}
return $isFieldExists;
}
示例11: getPropertyFieldSections
public static function getPropertyFieldSections($linkIblockId)
{
$linkIblockId = (int) $linkIblockId;
if ($linkIblockId <= 0) {
return false;
}
$ttl = 10000;
$cache_id = 'catalog_store_sections';
$cache_dir = '/bx/catalog_store_sections';
$obCache = new CPHPCache();
if ($obCache->InitCache($ttl, $cache_id, $cache_dir)) {
$res = $obCache->GetVars();
} else {
$res = array();
}
if (!isset($res[$linkIblockId])) {
$res[$linkIblockId] = array();
$sections = \CIBlockSection::GetTreeList(array("IBLOCK_ID" => $linkIblockId));
while ($row = $sections->Fetch()) {
$res[$linkIblockId][] = $row;
}
if ($obCache->StartDataCache()) {
$obCache->EndDataCache($res);
}
}
return $res[$linkIblockId];
}
示例12: __blogcleartagsimportant
function __blogcleartagsimportant($options, $cache_id, $cache_path)
{
$obCache = new CPHPCache;
if ($cache_id != "")
$obCache->Clean($cache_id, $cache_path);
else
$obCache->CleanDir($cache_path);
}
示例13: set
/**
* @param $name
* @param $value
* @param int $time
*/
public function set($name, $value, $time = 3600)
{
$cache = new \CPHPCache();
list($dir, $name) = $this->dirAndName($name);
$cache->InitCache($time, $name, $dir);
$cache->Clean($name, $dir);
$cache->StartDataCache();
$cache->EndDataCache(array('value' => $value));
}
示例14: parsePath
protected function parsePath($requestUri)
{
static $storages;
if (empty($storages)) {
$cache = new \CPHPCache();
if ($cache->initCache(30 * 24 * 3600, 'webdav_disk_common_storage', '/webdav/storage')) {
$storages = $cache->getVars();
} else {
$storages = \Bitrix\Disk\Storage::getModelList(array('filter' => array('=ENTITY_TYPE' => \Bitrix\Disk\ProxyType\Common::className())));
foreach ($storages as $key => $storage) {
$storages[$key] = array('id' => $storage->getEntityId(), 'path' => $storage->getProxyType()->getStorageBaseUrl());
}
$cache->startDataCache();
if (defined('BX_COMP_MANAGED_CACHE')) {
$taggedCache = \Bitrix\Main\Application::getInstance()->getTaggedCache();
$taggedCache->startTagCache('/webdav/storage');
$taggedCache->registerTag('disk_common_storage');
$taggedCache->endTagCache();
}
$cache->endDataCache($storages);
}
}
$patterns = array(array('user', '/(?:company|contacts)/personal/user/(\\d+)/files/lib(.*)$'), array('user', '/(?:company|contacts)/personal/user/(\\d+)/disk/path(.*)$'), array('group', '/workgroups/group/(\\d+)/files(.*)$'), array('group', '/workgroups/group/(\\d+)/disk/path(.*)$'));
foreach ($storages as $storage) {
$storagePath = trim($storage['path'], '/');
$patterns[] = array('docs', sprintf('^/%s/path(.*)$', $storagePath), $storage['id']);
$patterns[] = array('docs', sprintf('^/%s(.*)$', $storagePath), $storage['id']);
}
// @TODO: aggregator
$patterns[] = array('docs', '^/docs/path(.*)$', 'shared_files_s1');
$patterns[] = array('docs', '^/docs(.*)$', 'shared_files_s1');
$type = null;
$id = null;
$path = null;
foreach ($patterns as $pattern) {
$matches = array();
if (preg_match('#' . $pattern[1] . '#i', $requestUri, $matches)) {
$type = $pattern[0];
list($id, $path) = $type == 'docs' ? array($pattern[2], $matches[1]) : array($matches[1], $matches[2]);
break;
}
}
/** @var Storage $storage */
$storage = null;
if ($type == 'user') {
$storage = Driver::getInstance()->getStorageByUserId((int) $id);
} elseif ($type == 'group') {
$storage = Driver::getInstance()->getStorageByGroupId((int) $id);
} elseif ($type == 'docs') {
$storage = Driver::getInstance()->getStorageByCommonId($id);
} else {
return array(null, null);
}
$path = static::UrlDecode($path);
return array($storage, $path);
}
示例15: getData
public static function getData($SITE_ID = SITE_ID, $bFull = false)
{
global $USER, $CACHE_MANAGER;
$obCache = new CPHPCache();
$today = ConvertTimeStamp();
$cache_dir = '/intranet/planner/' . $USER->GetID();
$cache_id = 'intranet|planner|' . $USER->GetID() . '|' . $SITE_ID . '|' . intval($bFull) . '|' . $today . '|' . FORMAT_DATETIME . '|' . FORMAT_DATE . '|' . LANGUAGE_ID;
$arData = null;
if ($obCache->InitCache(self::CACHE_TTL, $cache_id, $cache_dir)) {
$arData = $obCache->GetVars();
if (is_array($arData['SCRIPTS'])) {
foreach ($arData['SCRIPTS'] as $key => $script) {
if (is_array($script)) {
$arData['SCRIPTS'][$key] = self::JS_CORE_EXT_RANDOM_NAME . RandString(5);
CJSCore::RegisterExt($arData['SCRIPTS'][$key], $script);
}
}
}
} else {
// cache expired or there's no cache
$obCache->StartDataCache();
$arData = array('SCRIPTS' => array(), 'STYLES' => array(), 'DATA' => array());
$CACHE_MANAGER->StartTagCache($cache_dir);
$CACHE_MANAGER->RegisterTag(self::CACHE_TAG . $USER->GetID());
$events = GetModuleEvents("intranet", "OnPlannerInit");
while ($arEvent = $events->Fetch()) {
$arEventData = ExecuteModuleEventEx($arEvent, array(array('SITE_ID' => SITE_ID, 'FULL' => $bFull)));
if (is_array($arEventData)) {
if (is_array($arEventData['SCRIPTS'])) {
$arData['SCRIPTS'] = array_merge($arData['SCRIPTS'], $arEventData['SCRIPTS']);
}
if (is_array($arEventData['STYLES'])) {
$arData['STYLES'] = array_merge($arData['STYLES'], $arEventData['STYLES']);
}
if (is_array($arEventData['DATA'])) {
$arData['DATA'] = array_merge($arData['DATA'], $arEventData['DATA']);
}
}
}
$arCacheData = $arData;
if (is_array($arCacheData['SCRIPTS'])) {
foreach ($arCacheData['SCRIPTS'] as $key => $script) {
if (CJSCore::IsExtRegistered($script)) {
$arCacheData['SCRIPTS'][$key] = CJSCore::getExtInfo($script);
}
}
}
$CACHE_MANAGER->EndTagCache();
$obCache->EndDataCache($arCacheData);
}
return $arData;
}