From 21258313ef2f8da3a758e9c0dbb046a4b024bbce Mon Sep 17 00:00:00 2001
From: slawkens <slawkens@gmail.com>
Date: Mon, 19 Jun 2023 08:01:11 +0200
Subject: [PATCH] New function Cache::remember($key, $ttl, $callback)

---
 system/libs/cache.php | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/system/libs/cache.php b/system/libs/cache.php
index 880c33c7..55c17a17 100644
--- a/system/libs/cache.php
+++ b/system/libs/cache.php
@@ -110,4 +110,21 @@ class Cache
 	 * @return bool
 	 */
 	public function enabled() {return false;}
+
+	public static function remember($key, $ttl, $callback)
+	{
+		$cache = self::getInstance();
+		if(!$cache->enabled()) {
+			return $callback();
+		}
+
+		$value = null;
+		if ($cache->fetch($key, $value)) {
+			return unserialize($value);
+		}
+
+		$value = $callback();
+		$cache->set($key, serialize($value),$ttl);
+		return $value;
+	}
 }