|null $_meta @since 2025-11-25 * @param string|null $logger @since 2025-11-25 */ public function __construct( string $level, $data, ?array $_meta = null, ?string $logger = null ) { parent::__construct($_meta); $this->level = $level; $this->data = $data; $this->logger = $logger; } /** * Creates an instance from an array. * * @param array{ * _meta?: array|null, * level: 'debug'|'info'|'notice'|'warning'|'error'|'critical'|'alert'|'emergency', * logger?: string|null, * data: mixed * } $data * @phpstan-param array $data * @return self */ public static function fromArray(array $data): self { self::assertRequired($data, ['level', 'data']); /** @var 'debug'|'info'|'notice'|'warning'|'error'|'critical'|'alert'|'emergency' $level */ $level = self::asString($data['level']); return new self( $level, $data['data'], self::asArrayOrNull($data['_meta'] ?? null), self::asStringOrNull($data['logger'] ?? null) ); } /** * Converts the instance to an array. * * @return array */ public function toArray(): array { $result = parent::toArray(); $result['level'] = $this->level; if ($this->logger !== null) { $result['logger'] = $this->logger; } $result['data'] = $this->data; return $result; } /** * @return 'debug'|'info'|'notice'|'warning'|'error'|'critical'|'alert'|'emergency' */ public function getLevel(): string { return $this->level; } /** * @return string|null */ public function getLogger(): ?string { return $this->logger; } /** * @return mixed */ public function getData() { return $this->data; } }