!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/usr/share/php/Symfony/Component/Cache/Simple/   drwxr-xr-x
Free 13.19 GB of 57.97 GB (22.75%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     ChainCache.php (6.71 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Cache\Simple;

use 
Psr\SimpleCache\CacheInterface as Psr16CacheInterface;
use 
Symfony\Component\Cache\Adapter\ChainAdapter;
use 
Symfony\Component\Cache\Exception\InvalidArgumentException;
use 
Symfony\Component\Cache\PruneableInterface;
use 
Symfony\Component\Cache\ResettableInterface;
use 
Symfony\Contracts\Cache\CacheInterface;
use 
Symfony\Contracts\Service\ResetInterface;

@
trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.3, use "%s" and type-hint for "%s" instead.'ChainCache::class, ChainAdapter::class, CacheInterface::class), E_USER_DEPRECATED);

/**
 * 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 caches at once.
 *
 * @deprecated since Symfony 4.3, use ChainAdapter and type-hint for CacheInterface instead.
 */
class ChainCache implements Psr16CacheInterfacePruneableInterfaceResettableInterface
{
    private 
$miss;
    private 
$caches = [];
    private 
$defaultLifetime;
    private 
$cacheCount;

    
/**
     * @param Psr16CacheInterface[] $caches          The ordered list of caches used to fetch cached items
     * @param int                   $defaultLifetime The lifetime of items propagated from lower caches to upper ones
     */
    
public function __construct(array $cachesint $defaultLifetime 0)
    {
        if (!
$caches) {
            throw new 
InvalidArgumentException('At least one cache must be specified.');
        }

        foreach (
$caches as $cache) {
            if (!
$cache instanceof Psr16CacheInterface) {
                throw new 
InvalidArgumentException(sprintf('The class "%s" does not implement the "%s" interface.'\get_class($cache), Psr16CacheInterface::class));
            }
        }

        
$this->miss = new \stdClass();
        
$this->caches array_values($caches);
        
$this->cacheCount \count($this->caches);
        
$this->defaultLifetime $defaultLifetime $defaultLifetime null;
    }

    
/**
     * {@inheritdoc}
     */
    
public function get($key$default null)
    {
        
$miss null !== $default && \is_object($default) ? $default $this->miss;

        foreach (
$this->caches as $i => $cache) {
            
$value $cache->get($key$miss);

            if (
$miss !== $value) {
                while (
<= --$i) {
                    
$this->caches[$i]->set($key$value$this->defaultLifetime);
                }

                return 
$value;
            }
        }

        return 
$default;
    }

    
/**
     * {@inheritdoc}
     */
    
public function getMultiple($keys$default null)
    {
        
$miss null !== $default && \is_object($default) ? $default $this->miss;

        return 
$this->generateItems($this->caches[0]->getMultiple($keys$miss), 0$miss$default);
    }

    private function 
generateItems($values$cacheIndex$miss$default)
    {
        
$missing = [];
        
$nextCacheIndex $cacheIndex 1;
        
$nextCache = isset($this->caches[$nextCacheIndex]) ? $this->caches[$nextCacheIndex] : null;

        foreach (
$values as $k => $value) {
            if (
$miss !== $value) {
                yield 
$k => $value;
            } elseif (!
$nextCache) {
                yield 
$k => $default;
            } else {
                
$missing[] = $k;
            }
        }

        if (
$missing) {
            
$cache $this->caches[$cacheIndex];
            
$values $this->generateItems($nextCache->getMultiple($missing$miss), $nextCacheIndex$miss$default);

            foreach (
$values as $k => $value) {
                if (
$miss !== $value) {
                    
$cache->set($k$value$this->defaultLifetime);
                    yield 
$k => $value;
                } else {
                    yield 
$k => $default;
                }
            }
        }
    }

    
/**
     * {@inheritdoc}
     */
    
public function has($key)
    {
        foreach (
$this->caches as $cache) {
            if (
$cache->has($key)) {
                return 
true;
            }
        }

        return 
false;
    }

    
/**
     * {@inheritdoc}
     */
    
public function clear()
    {
        
$cleared true;
        
$i $this->cacheCount;

        while (
$i--) {
            
$cleared $this->caches[$i]->clear() && $cleared;
        }

        return 
$cleared;
    }

    
/**
     * {@inheritdoc}
     */
    
public function delete($key)
    {
        
$deleted true;
        
$i $this->cacheCount;

        while (
$i--) {
            
$deleted $this->caches[$i]->delete($key) && $deleted;
        }

        return 
$deleted;
    }

    
/**
     * {@inheritdoc}
     */
    
public function deleteMultiple($keys)
    {
        if (
$keys instanceof \Traversable) {
            
$keys iterator_to_array($keysfalse);
        }
        
$deleted true;
        
$i $this->cacheCount;

        while (
$i--) {
            
$deleted $this->caches[$i]->deleteMultiple($keys) && $deleted;
        }

        return 
$deleted;
    }

    
/**
     * {@inheritdoc}
     */
    
public function set($key$value$ttl null)
    {
        
$saved true;
        
$i $this->cacheCount;

        while (
$i--) {
            
$saved $this->caches[$i]->set($key$value$ttl) && $saved;
        }

        return 
$saved;
    }

    
/**
     * {@inheritdoc}
     */
    
public function setMultiple($values$ttl null)
    {
        if (
$values instanceof \Traversable) {
            
$valuesIterator $values;
            
$values = function () use ($valuesIterator, &$values) {
                
$generatedValues = [];

                foreach (
$valuesIterator as $key => $value) {
                    yield 
$key => $value;
                    
$generatedValues[$key] = $value;
                }

                
$values $generatedValues;
            };
            
$values $values();
        }
        
$saved true;
        
$i $this->cacheCount;

        while (
$i--) {
            
$saved $this->caches[$i]->setMultiple($values$ttl) && $saved;
        }

        return 
$saved;
    }

    
/**
     * {@inheritdoc}
     */
    
public function prune()
    {
        
$pruned true;

        foreach (
$this->caches as $cache) {
            if (
$cache instanceof PruneableInterface) {
                
$pruned $cache->prune() && $pruned;
            }
        }

        return 
$pruned;
    }

    
/**
     * {@inheritdoc}
     */
    
public function reset()
    {
        foreach (
$this->caches as $cache) {
            if (
$cache instanceof ResetInterface) {
                
$cache->reset();
            }
        }
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0109 ]--