@startuml class HttpRequest implements ArrayAccess { - data: array + __construct(data: array) + offsetExists(offset: mixed): bool + offsetGet(offset: mixed): mixed + offsetSet(offset: mixed, value: mixed) + offsetUnset(offset: mixed) + from(request: array, fails: &array, schema: array): HttpRequest + fromPayload(fails: &array, schema: array): HttpRequest } class HttpResponse { - code: int + __construct(code: int) + getCode(): int fromCode(code: int): HttpResponse } class JsonHttpResponse extends HttpResponse { - payload: mixed + __construct(payload: mixed, code: int = HttpCodes::OK) + getJson(): string } class ViewHttpResponse extends HttpResponse { + TWIG_VIEW: int {frozen} + REACT_VIEW: int {frozen} - file: string - arguments: array - kind: int - __construct(kind: int, file: string, arguments: array, code: int = HttpCodes::OK) + getViewKind(): int + getFile(): string + getArguments(): array + twig(file: string, arguments: array, code: int = HttpCodes::OK): ViewHttpResponse + react(file: string, arguments: array, code: int = HttpCodes::OK): ViewHttpResponse } @enduml