Files
wp-multisite-waas/dependencies/symfony/cache/Adapter/NullAdapter.php
2024-11-30 18:24:12 -07:00

131 lines
2.7 KiB
PHP

<?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 WP_Ultimo\Dependencies\Symfony\Component\Cache\Adapter;
use WP_Ultimo\Dependencies\Psr\Cache\CacheItemInterface;
use WP_Ultimo\Dependencies\Symfony\Component\Cache\CacheItem;
use WP_Ultimo\Dependencies\Symfony\Contracts\Cache\CacheInterface;
/**
* @author Titouan Galopin <galopintitouan@gmail.com>
*/
class NullAdapter implements AdapterInterface, CacheInterface
{
private static $createCacheItem;
public function __construct()
{
self::$createCacheItem ?? (self::$createCacheItem = \Closure::bind(static function ($key) {
$item = new CacheItem();
$item->key = $key;
$item->isHit = \false;
return $item;
}, null, CacheItem::class));
}
/**
* {@inheritdoc}
*/
public function get(string $key, callable $callback, float $beta = null, array &$metadata = null)
{
$save = \true;
return $callback((self::$createCacheItem)($key), $save);
}
/**
* {@inheritdoc}
*/
public function getItem($key)
{
return (self::$createCacheItem)($key);
}
/**
* {@inheritdoc}
*/
public function getItems(array $keys = [])
{
return $this->generateItems($keys);
}
/**
* {@inheritdoc}
*
* @return bool
*/
public function hasItem($key)
{
return \false;
}
/**
* {@inheritdoc}
*
* @return bool
*/
public function clear(string $prefix = '')
{
return \true;
}
/**
* {@inheritdoc}
*
* @return bool
*/
public function deleteItem($key)
{
return \true;
}
/**
* {@inheritdoc}
*
* @return bool
*/
public function deleteItems(array $keys)
{
return \true;
}
/**
* {@inheritdoc}
*
* @return bool
*/
public function save(CacheItemInterface $item)
{
return \true;
}
/**
* {@inheritdoc}
*
* @return bool
*/
public function saveDeferred(CacheItemInterface $item)
{
return \true;
}
/**
* {@inheritdoc}
*
* @return bool
*/
public function commit()
{
return \true;
}
/**
* {@inheritdoc}
*/
public function delete(string $key) : bool
{
return $this->deleteItem($key);
}
private function generateItems(array $keys) : \Generator
{
$f = self::$createCacheItem;
foreach ($keys as $key) {
(yield $key => $f($key));
}
}
}