[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.119.110.76: ~ $
<?php

namespace Doctrine\Common\Cache;

use Traversable;

use function array_values;
use function count;
use function iterator_to_array;

/**
 * Cache provider that allows to easily chain multiple cache providers
 *
 * @deprecated Deprecated without replacement in doctrine/cache 1.11. This class will be dropped in 2.0
 */
class ChainCache extends CacheProvider
{
    /** @var CacheProvider[] */
    private $cacheProviders = [];

    /** @var int */
    private $defaultLifeTimeForDownstreamCacheProviders = 0;

    /**
     * @param CacheProvider[] $cacheProviders
     */
    public function __construct($cacheProviders = [])
    {
        $this->cacheProviders = $cacheProviders instanceof Traversable
            ? iterator_to_array($cacheProviders, false)
            : array_values($cacheProviders);
    }

    public function setDefaultLifeTimeForDownstreamCacheProviders(int $defaultLifeTimeForDownstreamCacheProviders): void
    {
        $this->defaultLifeTimeForDownstreamCacheProviders = $defaultLifeTimeForDownstreamCacheProviders;
    }

    /**
     * {@inheritDoc}
     */
    public function setNamespace($namespace)
    {
        parent::setNamespace($namespace);

        foreach ($this->cacheProviders as $cacheProvider) {
            $cacheProvider->setNamespace($namespace);
        }
    }

    /**
     * {@inheritDoc}
     */
    protected function doFetch($id)
    {
        foreach ($this->cacheProviders as $key => $cacheProvider) {
            if ($cacheProvider->doContains($id)) {
                $value = $cacheProvider->doFetch($id);

                // We populate all the previous cache layers (that are assumed to be faster)
                for ($subKey = $key - 1; $subKey >= 0; $subKey--) {
                    $this->cacheProviders[$subKey]->doSave($id, $value, $this->defaultLifeTimeForDownstreamCacheProviders);
                }

                return $value;
            }
        }

        return false;
    }

    /**
     * {@inheritdoc}
     */
    protected function doFetchMultiple(array $keys)
    {
        /** @var CacheProvider[] $traversedProviders */
        $traversedProviders = [];
        $keysCount          = count($keys);
        $fetchedValues      = [];

        foreach ($this->cacheProviders as $key => $cacheProvider) {
            $fetchedValues = $cacheProvider->doFetchMultiple($keys);

            // We populate all the previous cache layers (that are assumed to be faster)
            if (count($fetchedValues) === $keysCount) {
                foreach ($traversedProviders as $previousCacheProvider) {
                    $previousCacheProvider->doSaveMultiple($fetchedValues, $this->defaultLifeTimeForDownstreamCacheProviders);
                }

                return $fetchedValues;
            }

            $traversedProviders[] = $cacheProvider;
        }

        return $fetchedValues;
    }

    /**
     * {@inheritDoc}
     */
    protected function doContains($id)
    {
        foreach ($this->cacheProviders as $cacheProvider) {
            if ($cacheProvider->doContains($id)) {
                return true;
            }
        }

        return false;
    }

    /**
     * {@inheritDoc}
     */
    protected function doSave($id, $data, $lifeTime = 0)
    {
        $stored = true;

        foreach ($this->cacheProviders as $cacheProvider) {
            $stored = $cacheProvider->doSave($id, $data, $lifeTime) && $stored;
        }

        return $stored;
    }

    /**
     * {@inheritdoc}
     */
    protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
    {
        $stored = true;

        foreach ($this->cacheProviders as $cacheProvider) {
            $stored = $cacheProvider->doSaveMultiple($keysAndValues, $lifetime) && $stored;
        }

        return $stored;
    }

    /**
     * {@inheritDoc}
     */
    protected function doDelete($id)
    {
        $deleted = true;

        foreach ($this->cacheProviders as $cacheProvider) {
            $deleted = $cacheProvider->doDelete($id) && $deleted;
        }

        return $deleted;
    }

    /**
     * {@inheritdoc}
     */
    protected function doDeleteMultiple(array $keys)
    {
        $deleted = true;

        foreach ($this->cacheProviders as $cacheProvider) {
            $deleted = $cacheProvider->doDeleteMultiple($keys) && $deleted;
        }

        return $deleted;
    }

    /**
     * {@inheritDoc}
     */
    protected function doFlush()
    {
        $flushed = true;

        foreach ($this->cacheProviders as $cacheProvider) {
            $flushed = $cacheProvider->doFlush() && $flushed;
        }

        return $flushed;
    }

    /**
     * {@inheritDoc}
     */
    protected function doGetStats()
    {
        // We return all the stats from all adapters
        $stats = [];

        foreach ($this->cacheProviders as $cacheProvider) {
            $stats[] = $cacheProvider->doGetStats();
        }

        return $stats;
    }
}

Filemanager

Name Type Size Permission Actions
Psr6 Folder 0755
ApcCache.php File 2.33 KB 0644
ApcuCache.php File 2.22 KB 0644
ArrayCache.php File 2.17 KB 0644
Cache.php File 2.73 KB 0644
CacheProvider.php File 8.28 KB 0644
ChainCache.php File 4.84 KB 0644
ClearableCache.php File 501 B 0644
CouchbaseBucketCache.php File 4.67 KB 0644
CouchbaseCache.php File 2.27 KB 0644
ExtMongoDBCache.php File 5.22 KB 0644
FileCache.php File 8 KB 0644
FilesystemCache.php File 2.12 KB 0644
FlushableCache.php File 350 B 0644
InvalidCacheId.php File 970 B 0644
LegacyMongoDBCache.php File 4.69 KB 0644
MemcacheCache.php File 2.16 KB 0644
MemcachedCache.php File 3.86 KB 0644
MongoDBCache.php File 3.23 KB 0644
MultiDeleteCache.php File 466 B 0644
MultiGetCache.php File 593 B 0644
MultiOperationCache.php File 251 B 0644
MultiPutCache.php File 704 B 0644
PhpFileCache.php File 2.72 KB 0644
PredisCache.php File 3.35 KB 0644
RedisCache.php File 4.36 KB 0644
RiakCache.php File 6.65 KB 0644
SQLite3Cache.php File 4.66 KB 0644
Version.php File 211 B 0644
VoidCache.php File 994 B 0644
WinCacheCache.php File 2.34 KB 0644
XcacheCache.php File 2.16 KB 0644
ZendDataCache.php File 1.32 KB 0644