You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.4 KiB
PHP
66 lines
1.4 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Helper;
|
|
|
|
use App\Constants\ResultCode;
|
|
use Hyperf\Utils\Contracts\Arrayable;
|
|
|
|
class Result implements Arrayable
|
|
{
|
|
private $code;
|
|
private $message;
|
|
private $data = [];
|
|
|
|
public function __construct(int $code = ResultCode::SUCCESS, string $message = '', array $data = [])
|
|
{
|
|
$this->code = $code;
|
|
$this->message = empty($message) ? ResultCode::getMessage($code) : $message;
|
|
$this->data = $data;
|
|
}
|
|
|
|
public function getCode(): int
|
|
{
|
|
return $this->code;
|
|
}
|
|
|
|
public function setCode(int $code)
|
|
{
|
|
return $this->code = $code;
|
|
}
|
|
|
|
public function getMessage(): string
|
|
{
|
|
return $this->message;
|
|
}
|
|
|
|
public function setMessage(string $message)
|
|
{
|
|
return $this->message = empty($message) ? ResultCode::getMessage($this->code) : $message;
|
|
}
|
|
|
|
public function getData(): array
|
|
{
|
|
return $this->data;
|
|
}
|
|
|
|
public function setData(array $data)
|
|
{
|
|
return $this->data = $data;
|
|
}
|
|
|
|
public function toArray(): array
|
|
{
|
|
return [
|
|
'code' => $this->code,
|
|
'message' => $this->message,
|
|
'data' => new \ArrayObject($this->data),
|
|
];
|
|
}
|
|
|
|
public function __toString()
|
|
{
|
|
return json_encode($this->toArray(), JSON_UNESCAPED_UNICODE);
|
|
}
|
|
} |