vendor/shopware/core/Framework/Struct/ArrayStruct.php line 5

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Framework\Struct;
  3. class ArrayStruct extends Struct implements \ArrayAccess
  4. {
  5.     /**
  6.      * @var array
  7.      */
  8.     protected $data;
  9.     public function __construct(array $data = [])
  10.     {
  11.         $this->data $data;
  12.     }
  13.     public function has(string $property): bool
  14.     {
  15.         return \array_key_exists($property$this->data);
  16.     }
  17.     public function offsetExists($offset)
  18.     {
  19.         return \array_key_exists($offset$this->data);
  20.     }
  21.     public function offsetGet($offset)
  22.     {
  23.         return $this->data[$offset] ?? null;
  24.     }
  25.     public function offsetSet($offset$value): void
  26.     {
  27.         $this->data[$offset] = $value;
  28.     }
  29.     public function offsetUnset($offset): void
  30.     {
  31.         unset($this->data[$offset]);
  32.     }
  33.     public function get(string $key)
  34.     {
  35.         return $this->offsetGet($key);
  36.     }
  37.     public function set($key$value)
  38.     {
  39.         return $this->data[$key] = $value;
  40.     }
  41.     public function assign(array $options)
  42.     {
  43.         $this->data array_replace_recursive($this->data$options);
  44.         return $this;
  45.     }
  46.     public function all()
  47.     {
  48.         return $this->data;
  49.     }
  50.     public function jsonSerialize(): array
  51.     {
  52.         $data parent::jsonSerialize();
  53.         unset($data['data']);
  54.         foreach ($this->data as $property => $value) {
  55.             if ($value instanceof \DateTimeInterface) {
  56.                 $value $value->format(\DateTime::ATOM);
  57.             }
  58.             $data[$property] = $value;
  59.         }
  60.         return $data;
  61.     }
  62.     public function getApiAlias(): string
  63.     {
  64.         return 'array_struct';
  65.     }
  66. }