Дополнение к моей предыдущей записи. На полноту не претендует...
$CACHE_MANAGER->CleanDir ("b_smile");
CSmile::add
CSmile::update
CSmile::delete
$CACHE_MANAGER->CleanDir ("b_smile_set");
CSmileSet::add
CSmileSet::update
CSmileSet::delete
$this->CleanCache ();
CHotKeysCode::Add
CHotKeys::Add
CHotKeysCode::Update
CHotKeysCode::Delete
CHotKeys::Update
CHotKeys::Delete
$USER_FIELD_MANAGER->CleanCache (); $CACHE_MANAGER->CleanDir ("b_user_field");
CUserTypeEntity::Add
CUserTypeEntity::Update
CUserTypeEntity::Delete
$CACHE_MANAGER->CleanDir ("b_lang");
CSite::Add
CSite::Update
CSite::Delete
$CACHE_MANAGER->CleanDir ("agents");
CAgent::Add
CAgent::Update
CAgent::Delete
$CACHE_MANAGER->ClearByTag ("USER_CARD_".intval($ID / TAGGED_user_card_size));
$CACHE_MANAGER->ClearByTag ($isRealUser? "USER_CARD": "EXTERNAL_USER_CARD");
$CACHE_MANAGER->ClearByTag ("USER_NAME_".$ID);
$CACHE_MANAGER->ClearByTag ($isRealUser? "USER_NAME": "EXTERNAL_USER_NAME");
CUser::Add
CUser::Update
CUser::Delete
$CACHE_MANAGER->CleanDir ("b_task");
CTask::Add
CTask::Update
CTask::Delete
$stackCacheManager->Clear ("b_rating");
CRatings::Add
CRatings::Update
CRatings::Delete
CUser ::clearUserGroupCache ();
CGroup::Add
CGroup::Update
CGroup::Delete
$entity->cleanCache ();
DataManager::add
DataManager::update
DataManager::delete
$cacheManager =Application ::getInstance ()->getManagedCache ();
$cacheManager->clean ("b_module");
$cacheManager->clean ("b_module_to_module");
ModuleManager::add
ModuleManager::delete
CCatalogSKU ::ClearCache ();
CCatalog::Add
$CACHE_MANAGER->CleanDir ("catalog_group");
$CACHE_MANAGER->Clean ("catalog_group_perms");
$stackCacheManager->Clear ("catalog_discount");
CCatalogGroup::Add
CCatalogGroup::Update
CCatalogGroup::Delete
Currency\CurrencyManager ::clearCurrencyCache ($arFields['LID']);
CCurrencyLang::Add
CCurrencyLang::Update
CCurrencyLang::Delete
Currency\CurrencyManager ::clearCurrencyCache ();
CCurrency::Add
CCurrency::Update
CCurrency::Delete
Currency\CurrencyManager ::clearTagCache ($arFields['CURRENCY']);
CCurrencyRates::Add
CCurrencyRates::Update
CCurrencyRates::Delete
$GLOBALS["CACHE_MANAGER"]->CleanDir ("b_forum_filter");
CFilterUnquotableWords::Add
CFilterUnquotableWords::Update
CFilterUnquotableWords::Delete
CIBlock ::clearIblockTagCache ($arIBlock['ID']);
CIBlockElement::Add
CIBlockSection::Add
CIBlockElement::Update
CIBlockElement::Delete
CIBlockSection::Update
CIBlockSection::Delete
CIBlock::Update
CIBlock::Delete
$CACHE_MANAGER->ClearByTag ("iblock_property_enum_".$arFields["PROPERTY_ID"]);
CIBlockPropertyEnum::Add
CIBlockPropertyEnum::Update
CIBlockPropertyEnum::Delete
$CACHE_MANAGER->ClearByTag ("iblock_id_new");
CIBlock::Add
$CACHE_MANAGER->cleanDir ("b_iblock_type");
CIBlockType::Add
CIBlockType::Update
CIBlockType::Delete
$CACHE_MANAGER->ClearByTag ('LEARNING_GROUP_' . (int) ($id / 100));
$CACHE_MANAGER->ClearByTag ('LEARNING_GROUP');
CLearningGroup::add
CLearningGroup::update
CLearningGroup::delete
$app = Main\Application ::getInstance ();
$app->getTaggedCache ()->clearByTag ('sale_product_buy');
Product2ProductTable::addProductsFromOrder
$cacheManager =Application ::getInstance ()->getManagedCache ();
$cacheManager->clean ($this->cacheId);
$cacheManager->read (self::CACHE_TTL, $this->cacheId);
$cacheManager->set ($this->cacheId, $dataToSave);
VkExportedData::addData
$GLOBALS['CACHE_MANAGER']->ClearByTag ('sale-location-data');
Connector::add
LocationTable::addExtended
NameEntity::addMultipleForOwner
DefaultSiteTable::addMultipleForOwner
$CACHE_MANAGER->ClearByTag ("SONET_LOG_".intval($LOG_ID));
CSocNetLogRights::Add
CSocNetLogComments::Add
$CACHE_MANAGER->ClearByTag ("SONET_LOG_FOLLOW_".$user_id);
CSocNetLogFollow::Add
CSocNetLogFollow::Update
CSocNetLogFollow::Delete
$CACHE_MANAGER->Clean ("b_sonet_smile");
CSocNetSmile::Add
CSocNetSmile::Update
CSocNetSmile::Delete
$GLOBALS["CACHE_MANAGER"]->ClearByTag ("sonet_subscription_".$arFields["CODE"]);
CSocNetSubscription::Add
$CACHE_MANAGER->CleanDir ("b_sonet_group_subjects");
CSocNetGroupSubject::Add
CSocNetGroupSubject::Update
CSocNetGroupSubject::Delete
$CACHE_MANAGER->ClearByTag ("sonet_group");
CSocNetGroup::Add
CSocNetGroup::Update
CSocNetGroup::Delete
$CACHE_MANAGER->ClearByTag ("sonet_user2group_G".$arFields["GROUP_ID"]);
$CACHE_MANAGER->ClearByTag ("sonet_user2group_U".$arFields["USER_ID"]);
$CACHE_MANAGER->ClearByTag ("sonet_user2group");
CSocNetUserToGroup::Add
CSocNetUserToGroup::Update
CSocNetUserToGroup::Delete
$GLOBALS["CACHE_MANAGER"]->ClearByTag ("sonet_feature_".$arFields["FEATURE_ID"]);
CSocNetFeaturesPerms::Add
CSocNetFeaturesPerms::Update
CSocNetFeaturesPerms::Delete
$CACHE_MANAGER->ClearByTag ("sonet_features_".$arFields["ENTITY_TYPE"]."_".$arFields["ENTITY_ID"]);
CSocNetFeatures::Add
CSocNetFeatures::Update
CSocNetFeatures::Delete
self ::ClearTag ("V", $arFields['VOTE_ID']);
CVoteCacheManager::OnAfterVoteQuestionAdd
self ::ClearTag ("Q", $arFields["QUESTION_ID"]);
CVoteCacheManager::OnAfterVoteAnswerAdd
$this->CleanCache ($ID, $arFields['NAME'],$arFields['IBLOCK_ID']);
CWiki::Add
CWiki::Update
$this->CleanCacheById ($ID,$IBLOCK_ID);
CWiki::Delete
В старом ядре методы работают по принципу "кто на что горазд". Какие-то методы вызываютClearByTag , какие-то используют обёртки типа clearIblockTagCache ,
кто-то вызываетCleanDir (вычисляется директория с кэшем, которая соответствует таблице и очищается эта директория. Директория имеет вид типа $dbType."/".$tableId, где tableId- это, например, b_iblock_type) , некоторые классы используют собственные методы для очистки кэша.
Ещё нет единого стандарта именования тэгов: iblock_id_new , sale-location-data , LEARNING_GROUP - snake_case, kebab-case, SCREAMING_SNAKE_CASE
Новое ядро мне нравится больше:
Кстати, встретил мимоходом такой код
$arFields1 - плохой пример именования переменных.
http://prntscr.com/j2y769 - ещё нет единого стандарта именования методов - EventAdd и AddEvent - классно, не правда ли ?
Заметка на будущее : разобрать класс CacheTracker
$CACHE_MANAGER->
CSmile::add
CSmile::update
CSmile::delete
$CACHE_MANAGER->
CSmileSet::add
CSmileSet::update
CSmileSet::delete
$this->
CHotKeysCode::Add
CHotKeys::Add
CHotKeysCode::Update
CHotKeysCode::Delete
CHotKeys::Update
CHotKeys::Delete
$USER_FIELD_MANAGER->
CUserTypeEntity::Add
CUserTypeEntity::Update
CUserTypeEntity::Delete
$CACHE_MANAGER->
CSite::Add
CSite::Update
CSite::Delete
$CACHE_MANAGER->
CAgent::Add
CAgent::Update
CAgent::Delete
$CACHE_MANAGER->
$CACHE_MANAGER->
$CACHE_MANAGER->
$CACHE_MANAGER->
CUser::Add
CUser::Update
CUser::Delete
$CACHE_MANAGER->
CTask::Add
CTask::Update
CTask::Delete
$stackCacheManager->
CRatings::Add
CRatings::Update
CRatings::Delete
CGroup::Add
CGroup::Update
CGroup::Delete
$entity->
DataManager::add
DataManager::update
DataManager::delete
$cacheManager =
$cacheManager->
$cacheManager->
ModuleManager::add
ModuleManager::delete
CCatalog::Add
$CACHE_MANAGER->
$CACHE_MANAGER->
$stackCacheManager->
CCatalogGroup::Add
CCatalogGroup::Update
CCatalogGroup::Delete
Currency\
CCurrencyLang::Add
CCurrencyLang::Update
CCurrencyLang::Delete
Currency\
CCurrency::Add
CCurrency::Update
CCurrency::Delete
Currency\
CCurrencyRates::Add
CCurrencyRates::Update
CCurrencyRates::Delete
$GLOBALS["CACHE_MANAGER"]->
CFilterUnquotableWords::Add
CFilterUnquotableWords::Update
CFilterUnquotableWords::Delete
CIBlockElement::Add
CIBlockSection::Add
CIBlockElement::Update
CIBlockElement::Delete
CIBlockSection::Update
CIBlockSection::Delete
CIBlock::Update
CIBlock::Delete
$CACHE_MANAGER->
CIBlockPropertyEnum::Add
CIBlockPropertyEnum::Update
CIBlockPropertyEnum::Delete
$CACHE_MANAGER->
CIBlock::Add
$CACHE_MANAGER->
CIBlockType::Add
CIBlockType::Update
CIBlockType::Delete
$CACHE_MANAGER->
$CACHE_MANAGER->
CLearningGroup::add
CLearningGroup::update
CLearningGroup::delete
$app = Main\
$app->
Product2ProductTable::addProductsFromOrder
$cacheManager =
$cacheManager->
$cacheManager->
$cacheManager->
VkExportedData::addData
$GLOBALS['CACHE_MANAGER']->
Connector::add
LocationTable::addExtended
NameEntity::addMultipleForOwner
DefaultSiteTable::addMultipleForOwner
$CACHE_MANAGER->
CSocNetLogRights::Add
CSocNetLogComments::Add
$CACHE_MANAGER->
CSocNetLogFollow::Add
CSocNetLogFollow::Update
CSocNetLogFollow::Delete
$CACHE_MANAGER->
CSocNetSmile::Add
CSocNetSmile::Update
CSocNetSmile::Delete
$GLOBALS["CACHE_MANAGER"]->
CSocNetSubscription::Add
$CACHE_MANAGER->
CSocNetGroupSubject::Add
CSocNetGroupSubject::Update
CSocNetGroupSubject::Delete
$CACHE_MANAGER->
CSocNetGroup::Add
CSocNetGroup::Update
CSocNetGroup::Delete
$CACHE_MANAGER->
$CACHE_MANAGER->
$CACHE_MANAGER->
CSocNetUserToGroup::Add
CSocNetUserToGroup::Update
CSocNetUserToGroup::Delete
$GLOBALS["CACHE_MANAGER"]->
CSocNetFeaturesPerms::Add
CSocNetFeaturesPerms::Update
CSocNetFeaturesPerms::Delete
$CACHE_MANAGER->
CSocNetFeatures::Add
CSocNetFeatures::Update
CSocNetFeatures::Delete
CVoteCacheManager::OnAfterVoteQuestionAdd
CVoteCacheManager::OnAfterVoteAnswerAdd
$this->
CWiki::Add
CWiki::Update
$this->
CWiki::Delete
В старом ядре методы работают по принципу "кто на что горазд". Какие-то методы вызывают
кто-то вызывает
Ещё нет единого стандарта именования тэгов: iblock_id_new , sale-location-data , LEARNING_GROUP - snake_case, kebab-case, SCREAMING_SNAKE_CASE
Новое ядро мне нравится больше:
$app = Main\Application::getInstance(); $app->getTaggedCache()->clearByTag('sale_product_buy'); |
Кстати, встретил мимоходом такой код
$arFields1 = array(); foreach ($arFields as $key => $value) { if (substr($key, 0, 1) == "=") { $arFields1[substr($key, 1)] = $value; unset($arFields[$key]); } } |
Заметка на будущее : разобрать класс CacheTracker