$throwable->getCode(), 'message' => $throwable->getMessage(), 'data' => null, 'timestamp' => time(), ]; } else { // 记录未知错误日志 $this->logger->error(sprintf( 'Unknown error: %s %s in %s:%d', $throwable->getMessage(), $throwable->getCode(), $throwable->getFile(), $throwable->getLine() )); $data = [ 'code' => 500, 'message' => 'Server internal error', 'data' => env('APP_ENV') === 'dev' ? [ 'message' => $throwable->getMessage(), 'file' => $throwable->getFile(), 'line' => $throwable->getLine(), 'trace' => $throwable->getTraceAsString(), ] : null, 'timestamp' => time(), ]; } $body = json_encode($data, JSON_UNESCAPED_UNICODE); return $response->withHeader('Content-Type', 'application/json') ->withBody(new SwooleStream($body)); } public function isValid(Throwable $throwable): bool { return true; } }