it-swarm.com.de

Verwenden von JCache zum Löschen der zwischengespeicherten Daten eines bestimmten Plugins

Ist es möglich, mit JCache die zwischengespeicherten Daten für ein bestimmtes Plugin oder für alle Plugins zu löschen? Ich verwende ein Plugin, um ein Bild und einen Text auf einer Seite anzuzeigen, und ich muss den Cache manuell leeren, damit Änderungen wirksam werden.

In meinen Google-Suchanfragen oder in der offiziellen Dokumentation wurden keine Beispiele dafür gefunden.

3
Eric

Ohne zu wissen, um welche Plugins es sich handelt, folgt ein Code, der einen Cache für ein bestimmtes Element abruft, einstellt und löscht.

$output = '';
$cache = JFactory::getCache('com_something', '');
$cache->setCaching(true);
$cache->setLifeTime(86400);

// See All cached items
echo "<pre>".print_r($cache->getAll(), true)."</pre>";

// Create a Cache ID that works for you :
$cacheid = md5('something'.JFactory::getUser()->id);  // Just an example

// Remove cached output
//$cache->remove($cacheid);

// Get cached output
$output = $cache->get($cacheid);
if (empty($output)) {
    $output = "something I want to cache";
    $cache->store($output, $cacheid);
}

Wenn Sie die Dokumente unter JCache verwenden und die aktuell erfassten Elemente mit $ cache-> getAll () als Echo anzeigen, sehen Sie ungefähr so ​​aus, um festzustellen, an welchen Elementen Sie interessiert sind:

Array
(
    [com_something] => JCacheStorageHelper Object
        (
            [group] => com_something
            [size] => 0.09
            [count] => 2
        )

    [Gantry] => JCacheStorageHelper Object
        (
            [group] => Gantry
            [size] => 332.58
            [count] => 5
        )

    [GantryLess] => JCacheStorageHelper Object
        (
            [group] => GantryLess
            [size] => 354.04
            [count] => 9
        )

    [myplugin] => JCacheStorageHelper Object
        (
            [group] => myplugin
            [size] => 0.09
            [count] => 2
        )

)
5
GDP