it-swarm-ja.tech

JCacheを使用して特定のプラグインのキャッシュデータをクリアする

JCacheを使用して、特定のプラグインまたはすべてのプラグインのキャッシュデータをクリアすることはできますか?プラグインを使用してページに画像とテキストを表示しています。変更を有効にするには、手動でキャッシュをクリアする必要があります。

私のGoogle検索または公式ドキュメントでこの例を見つけることができませんでした。

3
Eric

関係のあるプラグインがわからない場合、特定のアイテムのキャッシュを取得、設定、クリアするコードを次に示します。

$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);
}

JCache のドキュメントを使用し、$ cache-> getAll()で現在のキャッチされたアイテムをエコーすると、次のようになり、興味のあるアイテムが識別されます。

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