Server IP : 15.235.198.142 / Your IP : 216.73.216.14 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/rhodeworks/wp-content/plugins/elementor/vendor_prefixed/twig/src/Cache/ |
Upload File : |
<?php /* * This file is part of Twig. * * (c) Fabien Potencier * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace ElementorDeps\Twig\Cache; /** * Chains several caches together. * * Cached items are fetched from the first cache having them in its data store. * They are saved and deleted in all adapters at once. * * @author Quentin Devos <quentin@devos.pm> */ final class ChainCache implements CacheInterface { private $caches; /** * @param iterable<CacheInterface> $caches The ordered list of caches used to store and fetch cached items */ public function __construct(iterable $caches) { $this->caches = $caches; } public function generateKey(string $name, string $className) : string { return $className . '#' . $name; } public function write(string $key, string $content) : void { $splitKey = $this->splitKey($key); foreach ($this->caches as $cache) { $cache->write($cache->generateKey(...$splitKey), $content); } } public function load(string $key) : void { [$name, $className] = $this->splitKey($key); foreach ($this->caches as $cache) { $cache->load($cache->generateKey($name, $className)); if (\class_exists($className, \false)) { break; } } } public function getTimestamp(string $key) : int { $splitKey = $this->splitKey($key); foreach ($this->caches as $cache) { if (0 < ($timestamp = $cache->getTimestamp($cache->generateKey(...$splitKey)))) { return $timestamp; } } return 0; } /** * @return string[] */ private function splitKey(string $key) : array { return \array_reverse(\explode('#', $key, 2)); } }