X7ROOT File Manager
Current Path:
/home/cbholdings/pasukulu/lib/classes/local/guzzle
home
/
cbholdings
/
pasukulu
/
lib
/
classes
/
local
/
guzzle
/
📁
..
📄
cache_handler.php
(8.83 KB)
📄
cache_item.php
(6.47 KB)
📄
cache_storage.php
(2.94 KB)
📄
check_request.php
(3.43 KB)
📄
redirect_middleware.php
(3.76 KB)
Editing: cache_storage.php
<?php // This file is part of Moodle - http://moodle.org/ // // Moodle is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. namespace core\local\guzzle; use Kevinrob\GuzzleCache\CacheEntry; use Kevinrob\GuzzleCache\Storage\CacheStorageInterface; /** * Cache storage handler to handle cache objects, TTL etc. * * @package core * @copyright 2022 safatshahin <safat.shahin@moodle.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class cache_storage implements CacheStorageInterface { /** * The cache pool. * * @var cache_handler */ protected $cachepool; /** * The last item retrieved from the cache. * * This item is transiently stored so that save() can reuse the cache item * usually retrieved by fetch() beforehand, instead of requesting it a second time. * * @var cache_item|null */ protected $lastitem; /** * TTL for the cache. * * @var int|null time to live. */ private int $ttl; public function __construct(cache_handler $cachepool, ?int $ttl = null) { $this->cachepool = $cachepool; $this->ttl = $ttl; } public function fetch($key): ?CacheEntry { // Refresh the cache files. if ($this->ttl) { $this->cachepool->refresh($this->ttl); } $item = $this->cachepool->get_item($key, $this->ttl); $this->lastitem = $item; $cache = $item->get(); if ($cache instanceof CacheEntry) { return $cache; } return null; } public function save($key, CacheEntry $data): bool { if ($this->lastitem && $this->lastitem->get_key() === $key) { $item = $this->lastitem; } else { $item = $this->cachepool->get_item($key); } $this->lastitem = null; $item->set($data); // Check if the TTL is set, otherwise use from data. $ttl = $this->ttl ?? $data->getTTL(); if ($ttl === 0) { // No expiration. $item->expires_after(null); } else { $item->expires_after($ttl); } return $this->cachepool->save($item); } public function delete($key): bool { if (null !== $this->lastitem && $this->lastitem->get_key() === $key) { $this->lastitem = null; } return $this->cachepool->delete_item($key); } }
Upload File
Create Folder