// creating a new Error Object:
$error = new JsonApiErrorObject();
// set some known data about the error:
$error->setTitle(new LangText('LBL_ERROR_LABEL_TITLE'));
$error->setDetail(new LangText('LBL_ERROR_LABEL_DETAIL'));
$error->setCode(ERROR_CODE);
// etc.. see more in source and phpDoc
// creating new Error Object with known data directly in constructor, all parameters are optional:
$error = new JsonApiErrorObject(
// title: a short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.
new LangText('LBL_ERROR_LABEL_TITLE'),
// detail: a human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized.
new LangText('LBL_ERROR_LABEL_DETAIL'),
// id: a unique identifier for this particular occurrence of the problem.
ERROR_ID,
// code: an application-specific error code, expressed as a string value.
ERROR_CODE,
// status: the HTTP status code applicable to this problem, expressed as a string value.
STATUS,
// links: a links object
['about' => 'Description about the problem'],
// source: an object containing references to the source of the error
['pointer' => '/test/foo/bar', 'parameter' => 'wrong'],
// meta: a meta object containing non-standard meta-information about the error.
['some' => 'meta info']
);
// retrieving Error Object from an Exception:
try {
// ...do stuff
} catch (Exception $e) {
$error->retrieveFromException($e)
}
// retrieving Error object from a ServerRequestInterface:
$error->retrieveFromRequest($request);
// converting to an array:
$array = $error->export();
// converting to a JSON string:
$json = $error->exportJson();