From 5ad80dd3bc78081f83f28c5a11ce97de46875df7 Mon Sep 17 00:00:00 2001 From: Awilum Date: Wed, 13 Feb 2019 19:16:55 +0300 Subject: [PATCH] Flextype Core: Entries - method fetch() - improvements. --- flextype/Entries.php | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/flextype/Entries.php b/flextype/Entries.php index de2dc1b1..fc05710e 100755 --- a/flextype/Entries.php +++ b/flextype/Entries.php @@ -292,20 +292,35 @@ class Entries { $entry_file = PATH['entries'] . '/' . $entry . '/entry.html'; + $entry_cache_id = md5('entry' . $entry_file . Filesystem::getTimestamp($entry_file)); + if (Filesystem::has($entry_file)) { - if ($entry_body = Filesystem::read($entry_file)) { - if ($entry_decoded = YamlParser::decode($entry_body)) { - - // Create default entry items - $entry_decoded['date'] = $entry_decoded['date'] ?? date(Registry::get('settings.date_format'), Filesystem::getTimestamp($entry_file)); - $entry_decoded['slug'] = $entry_decoded['slug'] ?? $entry; + // Try to get the entry from cache + if (Cache::contains($entry_cache_id)) { + if ($entry_decoded = Cache::fetch($entry_cache_id)) { return $entry_decoded; } else { return false; } } else { - return false; + + if ($entry_body = Filesystem::read($entry_file)) { + if ($entry_decoded = YamlParser::decode($entry_body)) { + + // Create default entry items + $entry_decoded['date'] = $entry_decoded['date'] ?? date(Registry::get('settings.date_format'), Filesystem::getTimestamp($entry_file)); + $entry_decoded['slug'] = $entry_decoded['slug'] ?? $entry; + + Cache::save($entry_cache_id, $entry_decoded); + + return $entry_decoded; + } else { + return false; + } + } else { + return false; + } } } else { return false; @@ -320,7 +335,7 @@ class Entries */ public static function fetchAll(string $entry) { - + return $entry; } /**