mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-27 04:28:44 +02:00
Update pelago/emogrifier bundle (^6.0.0)
>> files omitted
This commit is contained in:
committed by
bdalsass
parent
f6c50733fc
commit
742ef2b23b
87
lib/pelago/emogrifier/src/Caching/SimpleStringCache.php
Normal file
87
lib/pelago/emogrifier/src/Caching/SimpleStringCache.php
Normal file
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Pelago\Emogrifier\Caching;
|
||||
|
||||
/**
|
||||
* This cache caches string values with string keys. It is not PSR-6-compliant.
|
||||
*
|
||||
* Usage:
|
||||
*
|
||||
* ```php
|
||||
* $cache = new SimpleStringCache();
|
||||
* $cache->set($key, $value);
|
||||
* …
|
||||
* if ($cache->has($key) {
|
||||
* $cachedValue = $cache->get($value);
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
class SimpleStringCache
|
||||
{
|
||||
/**
|
||||
* @var array<string, string>
|
||||
*/
|
||||
private $values = [];
|
||||
|
||||
/**
|
||||
* Checks whether there is an entry stored for the given key.
|
||||
*
|
||||
* @param string $key the key to check; must not be empty
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public function has(string $key): bool
|
||||
{
|
||||
$this->assertNotEmptyKey($key);
|
||||
|
||||
return isset($this->values[$key]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the entry stored for the given key, and throws an exception if the value does not exist
|
||||
* (which helps keep the return type simple).
|
||||
*
|
||||
* @param string $key the key to of the item to retrieve; must not be empty
|
||||
*
|
||||
* @return string the retrieved value; may be empty
|
||||
*
|
||||
* @throws \BadMethodCallException
|
||||
*/
|
||||
public function get(string $key): string
|
||||
{
|
||||
if (!$this->has($key)) {
|
||||
throw new \BadMethodCallException('You can only call `get` with a key for an existing value.', 1625996246);
|
||||
}
|
||||
|
||||
return $this->values[$key];
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets or overwrites an entry.
|
||||
*
|
||||
* @param string $key the key to of the item to set; must not be empty
|
||||
* @param string $value the value to set; can be empty
|
||||
*
|
||||
* @throws \BadMethodCallException
|
||||
*/
|
||||
public function set(string $key, string $value): void
|
||||
{
|
||||
$this->assertNotEmptyKey($key);
|
||||
|
||||
$this->values[$key] = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
private function assertNotEmptyKey(string $key): void
|
||||
{
|
||||
if ($key === '') {
|
||||
throw new \InvalidArgumentException('Please provide a non-empty key.', 1625995840);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user