123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <?php
- declare(strict_types=1);
- /**
- * This file is part of Hyperf.
- *
- * @link https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact group@hyperf.io
- * @license https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
- namespace Hyperf\Di;
- use Hyperf\Collection\Arr;
- abstract class MetadataCollector implements MetadataCollectorInterface
- {
- /**
- * Subclass MUST override this property.
- */
- protected static array $container = [];
- /**
- * Retrieve the metadata via key.
- * @param null|mixed $default
- */
- public static function get(string $key, $default = null)
- {
- return Arr::get(static::$container, $key) ?? $default;
- }
- /**
- * Set the metadata to holder.
- * @param mixed $value
- */
- public static function set(string $key, $value): void
- {
- Arr::set(static::$container, $key, $value);
- }
- /**
- * Determine if the metadata exist.
- * If exist will return true, otherwise return false.
- */
- public static function has(string $key): bool
- {
- return Arr::has(static::$container, $key);
- }
- public static function clear(?string $key = null): void
- {
- if ($key) {
- Arr::forget(static::$container, [$key]);
- } else {
- static::$container = [];
- }
- }
- /**
- * Serialize the all metadata to a string.
- */
- public static function serialize(): string
- {
- return serialize(static::$container);
- }
- /**
- * Deserialize the serialized metadata and set the metadata to holder.
- */
- public static function deserialize(string $metadata): bool
- {
- static::$container = unserialize($metadata);
- return true;
- }
- public static function list(): array
- {
- return static::$container;
- }
- }
|