Response
in package
Representa la respuesta HTTP que se devolverá al cliente.
Acumula contenido, código de estado, cabeceras y cookies, y los envía al llamar a send() (o a métodos de conveniencia como json(), pdf(), view()...).
Table of Contents
Constants
- HTTP_BAD_REQUEST : mixed = 400
- HTTP_CONFLICT : mixed = 409
- HTTP_FORBIDDEN : mixed = 403
- HTTP_INTERNAL_SERVER_ERROR : mixed = 500
- HTTP_METHOD_NOT_ALLOWED : mixed = 405
- HTTP_NOT_FOUND : mixed = 404
- HTTP_OK : mixed = 200
- HTTP_UNAUTHORIZED : mixed = 401
- HTTP_UNPROCESSABLE_ENTITY : mixed = 422
Properties
- $headers : mixed
- Cabeceras HTTP de la respuesta.
- $content : mixed
- Cuerpo de la respuesta que se enviará al cliente.
- $cookies : mixed
- Cookies pendientes de enviar, indexadas por nombre.
- $http_code : mixed
- Código de estado HTTP.
- $send_disabled : mixed
- Si es true, send()/sendHeaders() no emiten nada (útil en tests o CLI).
- $sent : mixed
- Indica si la respuesta ya se ha enviado, para evitar enviarla dos veces.
Methods
- __construct() : mixed
- cookie() : self
- Programa una cookie para ser enviada con la respuesta.
- disableSend() : self
- Activa o desactiva el envío real de la respuesta (cabeceras y cuerpo).
- download() : void
- Fuerza la descarga del archivo indicado (Content-Disposition: attachment).
- file() : void
- Envía un archivo del disco como respuesta.
- getContent() : string
- Devuelve el cuerpo acumulado en la respuesta.
- getHttpCode() : int
- Devuelve el código de estado HTTP actual.
- header() : self
- Atajo para añadir una cabecera HTTP individual.
- json() : void
- Serializa $data como JSON, fija el Content-Type y envía la respuesta.
- pdf() : void
- Envía un PDF ya generado (binario en $content) inline en el navegador.
- redirect() : self
- Programa una redirección a $url.
- send() : void
- Envía cabeceras y cuerpo al cliente.
- setContent() : self
- Establece el cuerpo de la respuesta (sustituye el actual).
- setHttpCode() : self
- Establece el código de estado HTTP.
- setStatusCode() : self
- view() : void
- Renderiza una plantilla Twig con $data y la envía como HTML.
- withoutCookie() : self
- Indica al cliente que elimine la cookie indicada (expiración en el pasado).
- sanitizeFileName() : string
- Normaliza un nombre de archivo eliminando todo lo que no sea alfanumérico, punto, guion o guion bajo.
- sendHeaders() : void
- Emite el código de estado, las cabeceras y las cookies acumuladas.
Constants
HTTP_BAD_REQUEST
public
mixed
HTTP_BAD_REQUEST
= 400
HTTP_CONFLICT
public
mixed
HTTP_CONFLICT
= 409
HTTP_FORBIDDEN
public
mixed
HTTP_FORBIDDEN
= 403
HTTP_INTERNAL_SERVER_ERROR
public
mixed
HTTP_INTERNAL_SERVER_ERROR
= 500
HTTP_METHOD_NOT_ALLOWED
public
mixed
HTTP_METHOD_NOT_ALLOWED
= 405
HTTP_NOT_FOUND
public
mixed
HTTP_NOT_FOUND
= 404
HTTP_OK
public
mixed
HTTP_OK
= 200
HTTP_UNAUTHORIZED
public
mixed
HTTP_UNAUTHORIZED
= 401
HTTP_UNPROCESSABLE_ENTITY
public
mixed
HTTP_UNPROCESSABLE_ENTITY
= 422
Properties
$headers
Cabeceras HTTP de la respuesta.
public
mixed
$headers
@var ResponseHeaders
$content
Cuerpo de la respuesta que se enviará al cliente.
private
mixed
$content
@var string
$cookies
Cookies pendientes de enviar, indexadas por nombre.
private
mixed
$cookies
@var array
$http_code
Código de estado HTTP.
private
mixed
$http_code
@var int
$send_disabled
Si es true, send()/sendHeaders() no emiten nada (útil en tests o CLI).
private
mixed
$send_disabled
= false
@var bool
$sent
Indica si la respuesta ya se ha enviado, para evitar enviarla dos veces.
private
mixed
$sent
= false
@var bool
Methods
__construct()
public
__construct([int $http_code = 200 ]) : mixed
Parameters
- $http_code : int = 200
-
Código de estado HTTP inicial (200 por defecto).
cookie()
Programa una cookie para ser enviada con la respuesta.
public
cookie(string $name, string|null $value[, int $expire = 0 ][, bool $httpOnly = true ][, bool|null $secure = null ][, string $sameSite = 'Lax' ]) : self
Parameters
- $name : string
- $value : string|null
- $expire : int = 0
-
Timestamp de expiración. Si es 0 se usa el TTL configurado en cookies_expire.
- $httpOnly : bool = true
- $secure : bool|null = null
-
Si es null, se autodetecta a partir de $_SERVER['HTTPS'].
- $sameSite : string = 'Lax'
-
Política SameSite (Lax, Strict o None).
Return values
selfdisableSend()
Activa o desactiva el envío real de la respuesta (cabeceras y cuerpo).
public
disableSend([bool $disable = true ]) : self
Parameters
- $disable : bool = true
Return values
selfdownload()
Fuerza la descarga del archivo indicado (Content-Disposition: attachment).
public
download(string $file_path[, string $file_name = '' ]) : void
Parameters
- $file_path : string
- $file_name : string = ''
file()
Envía un archivo del disco como respuesta.
public
file(string $file_path[, string $file_name = '' ][, string $disposition = 'inline' ]) : void
Verifica existencia, lectura y que la ruta no apunte a un directorio; en caso contrario responde con 404 o 403 sin contenido.
Parameters
- $file_path : string
- $file_name : string = ''
- $disposition : string = 'inline'
-
"inline" (mostrar) o "attachment" (descargar).
getContent()
Devuelve el cuerpo acumulado en la respuesta.
public
getContent() : string
Return values
stringgetHttpCode()
Devuelve el código de estado HTTP actual.
public
getHttpCode() : int
Return values
intheader()
Atajo para añadir una cabecera HTTP individual.
public
header(string $name, string $value) : self
Parameters
- $name : string
- $value : string
Return values
selfjson()
Serializa $data como JSON, fija el Content-Type y envía la respuesta.
public
json(array<string|int, mixed> $data) : void
Parameters
- $data : array<string|int, mixed>
pdf()
Envía un PDF ya generado (binario en $content) inline en el navegador.
public
pdf(string $content[, string $file_name = '' ]) : void
Si $file_name está vacío se genera uno con prefijo "doc_".
Parameters
- $content : string
- $file_name : string = ''
redirect()
Programa una redirección a $url.
public
redirect(string $url[, int $delay = 0 ]) : self
Si $delay es 0 usa la cabecera Location; si es positivo usa Refresh con esos segundos de espera (útil para mostrar antes un mensaje al usuario).
Parameters
- $url : string
- $delay : int = 0
Return values
selfsend()
Envía cabeceras y cuerpo al cliente.
public
send() : void
Es idempotente: una respuesta solo se envía una vez, y no hace nada si send_disabled está activo.
setContent()
Establece el cuerpo de la respuesta (sustituye el actual).
public
setContent(string $content) : self
Parameters
- $content : string
Return values
selfsetHttpCode()
Establece el código de estado HTTP.
public
setHttpCode(int $http_code) : self
Parameters
- $http_code : int
Return values
selfsetStatusCode()
public
setStatusCode(int $http_code) : self
replaced by setHttpCode
Parameters
- $http_code : int
Return values
selfview()
Renderiza una plantilla Twig con $data y la envía como HTML.
public
view(string $view[, array<string|int, mixed> $data = [] ]) : void
Parameters
- $view : string
- $data : array<string|int, mixed> = []
withoutCookie()
Indica al cliente que elimine la cookie indicada (expiración en el pasado).
public
withoutCookie(string $name) : self
Parameters
- $name : string
Return values
selfsanitizeFileName()
Normaliza un nombre de archivo eliminando todo lo que no sea alfanumérico, punto, guion o guion bajo.
private
sanitizeFileName(string $fileName[, string $prefix = 'file_' ][, string $suffix = '' ]) : string
Si el resultado queda vacío genera uno único con $prefix + uniqid() + $suffix.
Parameters
- $fileName : string
- $prefix : string = 'file_'
- $suffix : string = ''
Return values
stringsendHeaders()
Emite el código de estado, las cabeceras y las cookies acumuladas.
private
sendHeaders() : void
Las cookies se envían por la ruta configurada en FS_ROUTE para que sean coherentes con la base de la aplicación.