From dcd1f3b10da331396ac1bdc85cb216f9acfbf19f Mon Sep 17 00:00:00 2001 From: Matias Griese Date: Wed, 21 Aug 2019 12:21:34 +0300 Subject: [PATCH] Added object meta caching in Flex FolderStorage --- .../Grav/Framework/Flex/Storage/FolderStorage.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/system/src/Grav/Framework/Flex/Storage/FolderStorage.php b/system/src/Grav/Framework/Flex/Storage/FolderStorage.php index 6d68074c6..6882e8efd 100644 --- a/system/src/Grav/Framework/Flex/Storage/FolderStorage.php +++ b/system/src/Grav/Framework/Flex/Storage/FolderStorage.php @@ -36,6 +36,8 @@ class FolderStorage extends AbstractFilesystemStorage protected $prefixed; /** @var bool */ protected $indexed; + /** @var array */ + protected $meta = []; /** * {@inheritdoc} @@ -468,13 +470,21 @@ class FolderStorage extends AbstractFilesystemStorage */ protected function getObjectMeta(string $key, bool $reload = false): array { + if (!$reload && isset($this->meta[$key])) { + return $this->meta[$key]; + } + $filename = $this->getPathFromKey($key); $modified = is_file($filename) ? filemtime($filename) : 0; - return [ + $meta = [ 'storage_key' => $key, 'storage_timestamp' => $modified ]; + + $this->meta[$key] = $meta; + + return $meta; }