| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- <?php
- declare(strict_types=1);
- /*
- * This file is a part of dflydev/dot-access-data.
- *
- * (c) Dragonfly Development Inc.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Dflydev\DotAccessData;
- use Dflydev\DotAccessData\Exception\DataException;
- use Dflydev\DotAccessData\Exception\InvalidPathException;
- interface DataInterface
- {
- public const PRESERVE = 0;
- public const REPLACE = 1;
- public const MERGE = 2;
- /**
- * Append a value to a key (assumes key refers to an array value)
- *
- * If the key does not yet exist it will be created.
- * If the key references a non-array it's existing contents will be added into a new array before appending the new value.
- *
- * @param string $key
- * @param mixed $value
- *
- * @throws InvalidPathException if the given key is empty
- */
- public function append(string $key, $value = null): void;
- /**
- * Set a value for a key
- *
- * If the key does not yet exist it will be created.
- *
- * @param string $key
- * @param mixed $value
- *
- * @throws InvalidPathException if the given key is empty
- * @throws DataException if the given key does not target an array
- */
- public function set(string $key, $value = null): void;
- /**
- * Remove a key
- *
- * No exception will be thrown if the key does not exist
- *
- * @param string $key
- *
- * @throws InvalidPathException if the given key is empty
- */
- public function remove(string $key): void;
- /**
- * Get the raw value for a key
- *
- * If the key does not exist, an optional default value can be returned instead.
- * If no default is provided then an exception will be thrown instead.
- *
- * @param string $key
- * @param mixed $default
- *
- * @return mixed
- *
- * @throws InvalidPathException if the given key is empty
- * @throws InvalidPathException if the given key does not exist and no default value was given
- *
- * @psalm-mutation-free
- */
- public function get(string $key, $default = null);
- /**
- * Check if the key exists
- *
- * @param string $key
- *
- * @return bool
- *
- * @throws InvalidPathException if the given key is empty
- *
- * @psalm-mutation-free
- */
- public function has(string $key): bool;
- /**
- * Get a data instance for a key
- *
- * @param string $key
- *
- * @return DataInterface
- *
- * @throws InvalidPathException if the given key is empty
- * @throws DataException if the given key does not reference an array
- *
- * @psalm-mutation-free
- */
- public function getData(string $key): DataInterface;
- /**
- * Import data into existing data
- *
- * @param array<string, mixed> $data
- * @param self::PRESERVE|self::REPLACE|self::MERGE $mode
- */
- public function import(array $data, int $mode = self::REPLACE): void;
- /**
- * Import data from an external data into existing data
- *
- * @param DataInterface $data
- * @param self::PRESERVE|self::REPLACE|self::MERGE $mode
- */
- public function importData(DataInterface $data, int $mode = self::REPLACE): void;
- /**
- * Export data as raw data
- *
- * @return array<string, mixed>
- *
- * @psalm-mutation-free
- */
- public function export(): array;
- }
|