panx.dev | Documentation | Working with Cache

Working with Cache

Working with Cache in panx framework is quite easy. If you need to save some variable to cache, you can do it by calling Cache::save($name, $data), where $name is the name of the variable and $data is its value.

After you saved data, you can retrieve them by calling Cache::get($name, $cacheTime), where $name is the name of the variable and $cacheTime is time in seconds. If the stored data in cache is older then this limit, it will return false. Second parameter is optional. If you do not pass any value as second parameter, Cache class will use the default value (10 seconds).

Cache::get() will return the data or false if the variable is not stored in cache or it is too old.

Example code used in Post Class (Post::listPosts()):

$p = Cache::get("posts", 60);
if($p !== false) {
    Logger::log("Using cached posts");
    return $p;
}
$f = scandir($_SERVER['DOCUMENT_ROOT']."/../template/posts/");
$f_arr = array();

foreach($f as $file) {
    if($file == "." || $file == "..") continue;
    array_push($f_arr, array("name" => basename($file, ".php"), "created_at" => filectime($_SERVER['DOCUMENT_ROOT']."/../template/posts/$file")));

}
//sort array by date
usort($f_arr, 'self::compareTime');
Cache::save("posts", $f_arr);
Logger::log("Cache saved");
return $f_arr;
  • Cache::destroy(string $name): bool - Deletes specified cache file.
  • Cache::clearUnused($dir = null, $time = 86400) - Deletes unused cache files (Older then $time). The $dir parameter must be specified only from terminal (__DIR__).
  • Cache::clearAll($dir = null) - Deletes whole cache directory. The $dir parameter must be specified only from terminal (__DIR__).