A free and open-source book on ZF3 for beginners

Translation into this language is not yet finished. You can help this project by translating the chapters and contributing your changes.

4.6. Colocar Datos en la Respuesta HTTP

Aunque raramente interactuamos con los datos de la respuesta HTTP directamente podemos hacerlo con la ayuda del método getResponse() que provee la clase base AbstractActionController. El método getResponse() regresa la instancia de la clase Zend\Http\PhpEnvironment\Response. La tabla 4.4 contiene los métodos más importantes de esta clase:

Tabla 4.4. Métodos de la clase Zend\Http\PhpEnvironment\Response.
Nombre del Método Descripción
fromString($string) Poblar el objeto de respuesta a partir de una cadena de caracteres.
toString() Imprime toda la respuesta como una respuesta HTTP en forma de cadena de caracteres.
setStatusCode($code) Coloca el código de estado HTTP y opcionalmente un mensaje.
getStatusCode() Regresa el código de estado HTTP.
setReasonPhrase($reasonPhrase) Coloca el mensaje de estado HTTP.
getReasonPhrase() Regresa el mensaje de estado HTTP.
isForbidden() Revisa si el código de respuesta es: 403 Forbidden.
isNotFound() Revisa si el código de estado indica que el recurso no se encontró (código de estado 404).
isOk() Revisa si la respuesta es exitosa.
isServerError() Revisa si el código de estado de la respuesta es 5xx.
isRedirect() Revisa si la respuesta es: 303 Redirect.
isSuccess() Revisa si la respuesta es: 200 Successful.
setHeaders(Headers $headers) Permite colocar los encabezados de la respuesta.
getHeaders() Regresa una lista con los encabezados de la respuesta.
getCookie() Regresa la cabecera Cookie.
setContent($value) Coloca el contenido de la respuesta en crudo.
getContent() Regresa el contenido de la respuesta en crudo.
getBody() Trae y codifica el contenido de la respuesta.

Por ejemplo, usamos el siguiente código para colocar el código de estado 404 en la respuesta:

$this->getResponse()->setStatusCode(404);

Usamos el siguiente código para agregar un encabezado a la respuesta:

$headers = $this->getResponse()->getHeaders();
$headers->addHeaderLine(
             "Content-type: application/octet-stream");

Usamos el siguiente código para agregar contenido a la respuesta:

$this->getResponse()->setContent('Some content');

Top