Skip to content

AbilityBaseObject — 能力基对象

AbilityBaseObject 适用于作为提供功能、能力类的基类,在 BaseObject 的单例/工厂能力之上,提供了实例级错误机制(错误状态 + 错误返回)。

  • 命名空间: kernel\Foundation\Object
  • 文件位置: kernel/Foundation/Object/AbilityBaseObject.php
  • 继承: BaseObject
  • 子类: kernel\Foundation\Service
  • 属性: $error$errorCode$errorMessage$errorStatusCode$errorDetails$errorData(均 protected

注意:错误机制为实例级(依赖 $this->),适用于被实例化使用的能力类。若你的类是纯静态无状态调用,应直接返回 kernel\Foundation\Result,而非依赖本类错误机制。

方法列表

setError($statusCode, $code, $message, $return, $details, $data)

设置错误状态。protected

参数类型默认说明
$statusCodeint500HTTP 状态码
$codeint|string500响应码
$messagestring"error"错误信息
$returnboolfalsetrue 时直接返回错误 Result
$detailsmixed[]错误详情
$datamixed[]主体数据

返回值:AbilityBaseObject$return=false)或 Result$return=true

break($statusCode, $code, $message, $details, $data)

设置错误并返回 false,适用于 return $this->break(...) 直接中断。protected

参数类型默认说明
$statusCodeint|Result500HTTP 状态码;传 Result 时从其错误信息构建
$codeint|string500响应码
$messagestring"error"错误信息
$detailsmixed[]错误详情
$datamixed[]主体数据

返回值:false

forwardBreak()

转发错误:等价于 $this->break($this->return())。适用于将调用方返回的 Result 错误继续向上中断。protected

返回值:false

getErrorMessage()

获取错误信息。public。返回值:string

getErrorCode()

获取错误码。public。返回值:int|string

getStatusCode()

获取错误 HTTP 状态码。public。返回值:int

getErrorDetails()

获取错误详情。public。返回值:mixed

getErrorData()

获取错误数据。public。返回值:mixed

return()

将当前错误状态打包成 Result 返回。public。返回值:kernel\Foundation\Result

php
// 调用方拿到错误 Result
$result = $obj->return();
if ($result->isError()) {
    // 处理错误
}

使用方式

php
class PaymentService extends AbilityBaseObject
{
    public function charge($amount)
    {
        if ($amount <= 0) {
            return $this->break(422, 422, "金额必须大于 0");
        }
        // ...
        return true;
    }
}