Я нахожусь в процессе обновления класса REST Api; в конце каждого метода мне нужно вызвать метод DoResponse
для преобразования данных, которые я передаю в качестве первого параметра, в строку JSON.
В рамках требований я создал объекты ответа для каждая конечная точка; все эти объекты реализуют \JSONSerializable
class CustomResponseObject implements JsonSerializable {
public function jsonSerialize() {
return [/*...*/];
}
}
Затем я создаю эти объекты в своем методе Api и передаю его в функцию DoResponse
.
function myApiEndpoint() {
$res = new CustomResponseObject();
/*...*/
return $this->DoResponse($res);
}
Проблема в том, что указанный метод только принимает массивы в качестве первого параметра.
public function DoResponse(array $response = array());
Я мог бы обойти эту проблему, передав $res->jsonSerialize()
, но есть ли способ автоматически jsonSerialize объекта всякий раз, когда я передаю его в функцию DoResponse
без изменить базовые методы?