data = $data; $this->errors = $errors; $this->extensions = $extensions; } /** * @param callable $errorFormatter * @return $this */ public function setErrorFormatter(callable $errorFormatter) { $this->errorFormatter = $errorFormatter; return $this; } /** * @return array */ public function toArray() { $result = []; if (null !== $this->data) { $result['data'] = $this->data; } if (!empty($this->errors)) { $result['errors'] = array_map($this->errorFormatter, $this->errors); } if (!empty($this->extensions)) { $result['extensions'] = (array) $this->extensions; } return $result; } public function jsonSerialize() { return $this->toArray(); } }