Tisztítása cache Bitrix komponens esetén, bitrix

Mi képviseli a következő helyzetet: egy naptári alkatrész (például) elhelyezett több helyszínen különböző mintákkal (take 2 minta). A sablon alkatrész meg kell jeleníteni a legördülő listából, amely tartalmazza az összes felhasználó. Felhasználók, megkapjuk a Bitrix api fájl result_modifier.php naptári alkatrész sablont. De a jövőben a felhasználók nem lesz elég, így meg kell választani, hogy cache listát azokkal a felhasználókkal, hogy minden egyes alkalommal, az oldal a naptár alkatrész nem drága csinálni adatbázis-lekérdezések.

Ebben a megvalósításban van egy probléma - ha megváltoztatja a felhasználók listáját, illetve az adatok legördülő listából a meglévő felhasználók számára, hogy csak akkor változik, miután a cache frissült, azaz mikor jár le.

Bitriks cache alkatrész mappában tárolt / bitrix / cache / S1 / bitrix / alkatrészeket.
Ahol az S1 - a helyszín azonosító, bitrix (az utóbbi esetben) - névtérben. Szabványos alkatrészek, ez bitrix, a másolt - a mappa nevét. Ezután jön a nevét viselő, a mi esetünkben news.calendar, és benne egy mappát véletlenszerű nevet - tartalmaz egy cache sablonokat. Minden mappa egy adott sablon.

Meg kell akasztani delete cache news.calendar alkatrész események

  • OnAfterUserAdd - hozzáad egy felhasználót
  • OnAfterUserUpdate - frissítés felhasználói adatok
  • OnUserDelete - felhasználó eltávolítása

Ehhez adjuk hozzá a kódot a fájlban /bitrix/php_interface/init.php

BXClearCache - egy függvény, amely törli a gyorsítótárat. Az első paraméter -, hogy törölje a cache teljesen (igaz vagy hamis). A második - útvonal a cache relatív / bitrix / cache.