code = $code; $this->message = $message; $this->data = $data; } /** * Creates an instance from an array. * * @param array{ * code: int, * message: string, * data?: mixed|null * } $data * @phpstan-param array $data * @return self */ public static function fromArray(array $data): self { self::assertRequired($data, ['code', 'message']); return new self( self::asInt($data['code']), self::asString($data['message']), $data['data'] ?? null ); } /** * Converts the instance to an array. * * @return array */ public function toArray(): array { $result = []; $result['code'] = $this->code; $result['message'] = $this->message; if ($this->data !== null) { $result['data'] = $this->data; } return $result; } /** * @return int */ public function getCode(): int { return $this->code; } /** * @return string */ public function getMessage(): string { return $this->message; } /** * @return mixed|null */ public function getData() { return $this->data; } }