Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/mautic.corals.io/vendor/twig/twig/src/Cache/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/mautic.corals.io/vendor/twig/twig/src/Cache/ChainCache.php
<?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 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 <[email protected]>
 */
final class ChainCache implements CacheInterface
{
    /**
     * @param iterable<CacheInterface> $caches The ordered list of caches used to store and fetch cached items
     */
    public function __construct(
        private iterable $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));
    }
}

Spamworldpro Mini