File "ArrayContainer.php"
Full Path: /home/siazco/grocery.siazco.se/wp-content/plugins/flexible-shipping-pro/vendor_prefixed/wpdesk/wp-persistence/src/Adapter/ArrayContainer.php
File size: 1.35 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace FSProVendor\WPDesk\Persistence\Adapter;
use FSProVendor\WPDesk\Persistence\ElementNotExistsException;
use FSProVendor\WPDesk\Persistence\FallbackFromGetTrait;
use FSProVendor\WPDesk\Persistence\PersistentContainer;
/**
* Container that uses array as a persistent memory.
*
* @package WPDesk\Persistence
*/
class ArrayContainer implements \FSProVendor\WPDesk\Persistence\PersistentContainer
{
use FallbackFromGetTrait;
/** @var array */
protected $array;
public function __construct(array $initial = [])
{
$this->array = $initial;
}
public function set(string $id, $value)
{
if ($value === null) {
$this->delete($id);
} else {
$this->array[$id] = $value;
}
}
public function delete(string $id)
{
unset($this->array[$id]);
}
public function has($id) : bool
{
return \key_exists($id, $this->array);
}
public function get($id)
{
if (!isset($this->array[$id])) {
throw new \FSProVendor\WPDesk\Persistence\ElementNotExistsException(\sprintf('Element %s not exists!', $id));
}
return $this->array[$id];
}
/**
* Return array that is used internally to save the data.
*
* @return array
*/
public function get_array()
{
return $this->array;
}
}