Class PHRUTS_HttpServiceResponse

Description

Defines an object to assist a service in sending a http response to the client.

  • author: John WILDENAUER <jwilde@users.sourceforge.net> (PHP4 port of Struts)
  • author: Olivier HENRY <oliv.henry@gmail.com> (PHP5 port of Struts)
  • version: $Id: PHRUTS_HttpServiceResponse.php,v 1.3 2008/05/21 16:50:27 ohenry Exp $
  • copyright: Copyright PHruts 2008
  • todo: Test content type and character encoding methods.

Located in /connector/PHRUTS_HttpServiceResponse.php (line 32)


	
			
Class Constant Summary
Variable Summary
boolean $autoflush
string $buffer
boolean $charsetSet
boolean $committed
string $contentType
array $cookies
array $headers
integer $sc
Method Summary
void addCookie (PHRUTS_Cookie $cookie)
void addDateHeader (string $name, integer $date)
void addHeader (string $name, string $value)
void commit ()
boolean containsHeader (string $name)
string encodeRedirectURL (string $url)
void flushBuffer ()
unknown getAutoflush ()
integer getBufferSize ()
string getContentType ()
boolean isCommitted ()
void resetBuffer ()
void sendError (integer $sc, string $msg)
void sendRedirect (string $location)
void setAutoflush (boolean $autoflush)
void setCharacterEncoding (string $charset)
void setContentType (string $type)
void setDateHeader (string $name, integer $date)
void setHeader (string $name, string $value)
void setStatus (integer $sc)
void write (string $str)
void writeln (string $str)
Variables
boolean $autoflush = false (line 91)

If auto-flush is enabled, any writes are automatically flushed to the client whenever writeln method is called.

  • access: protected
string $buffer = '' (line 98)

The buffer through which all of our output is passed.

  • access: protected
string $characterEncoding = null (line 66)

The character encoding associated with this Response.

  • access: protected
boolean $charsetSet = false (line 73)

Has the charset been explicitly set.

  • access: protected
boolean $committed = false (line 38)

Boolean indicating if the response has been committed.

  • access: protected
string $contentType = null (line 59)

The content type associated with this Response.

  • access: protected
array $cookies = array() (line 52)

The set of Cookies associated with this Response.

  • access: protected
array $headers = array() (line 83)

The HTTP headers explicitly added.

This array is keyed by the header name, and the elements are array containing the associated values that have been set.

  • access: protected
integer $sc = self::SC_OK (line 45)

The status code for this response.

  • access: protected
Methods
addCookie (line 130)

Adds the specified cookie to the response.

This method can be called multiple times to set more than one cookie.

  • access: public
void addCookie (PHRUTS_Cookie $cookie)
addDateHeader (line 321)

Adds a response header with the given name and date-value.

The date is specified in terms of milliseconds since the epoch. This method allows response headers to have multiple values.

  • access: public
void addDateHeader (string $name, integer $date)
  • string $name: The name of the header to set
  • integer $date: The assigned date value
addHeader (line 288)

Add a response header with the given name and value.

This method allows response headers to have multiple values.

  • access: public
void addHeader (string $name, string $value)
  • string $name: The name of the header
  • string $value: The additional header value
commit (line 347)

Commit the response.

Send headers from the response (status code, cookies and other headers) if the response has not been already committed.

  • throws: PHRUTS_IllegalStateException - If headers has been already sent
  • access: protected
void commit ()
containsHeader (line 260)

Returns a boolean indicating whether the named response header has already been set.

  • return: True if the named response header has already been set; false otherwise
  • access: public
boolean containsHeader (string $name)
  • string $name: The header name
encodeRedirectURL (line 557)

Encodes the specified URL for use in the sendRedirect method or, if encoding is not needed, returns the URL unchanged.

The implementation of this method includes the logic to determine whether the session ID needs to be encoded in the URL.

  • return: The encoded URL if encoding is needed; the unchanged URL otherwise
  • todo: Implement the method.
  • access: public
string encodeRedirectURL (string $url)
  • string $url: The url to be encoded
flushBuffer (line 468)

Forces any content in the buffer to be written to the client.

A call to this method automatically commits the response, meaning the status code and headers will be written.

  • throws: PHRUTS_IllegalStateException - If the headers has been already sent
  • access: public
void flushBuffer ()
getAutoflush (line 390)

Returns the actual auto-flush property for the response.

  • access: public
unknown getAutoflush ()
getBufferSize (line 413)

Returns the actual buffer size used for the response.

  • access: public
integer getBufferSize ()
getCharacterEncoding (line 146)

Returns the name of the character encoding (MIME charset) used for the body sent in this response.

The character encoding may have been specified explicitly using the setCharacterEncoding or setContentType methods, or implicitly using the setLocale method. Explicit specifications take precedence over implicit specifications. If no character encoding has been specified, ISO-8859-1 is returned.

  • access: public
string getCharacterEncoding ()
getContentType (line 184)

Returns the content type used for the MIME body sent in this response.

The content type proper must have been specified using setContentType before the response is committed. If no content type has been specified, this method returns null. If a content type has been specified and a character encoding has been explicitly or implicitly specified as described in getCharacterEncoding the charset parameter is uncluded in the string returned. If no character encoding has been specified, the charset parameter is omitted.

  • access: public
string getContentType ()
isCommitted (line 335)

Returns a boolean indicating if the response has been committed.

A committed response has already had its status code and headers written.

  • access: public
boolean isCommitted ()
resetBuffer (line 423)

Clears the content of the underlying buffer in the response without clearing headers or status code.

  • throws: PHRUTS_IllegalStateException - If the response has been committed
  • access: public
void resetBuffer ()
sendError (line 497)

Sends an error response to the client using the specified status code and clearing the buffer.

The server defaults to creating the response to look like an HTML-formatted server error page containing the specified message, setting the content type to "text/html", leaving cookies and other headers unmodified.

If the response has already been committed, this method throws a PHRUTS_IllegalStateException. After using this method, the response should be considered to be committed an should not be written to.

  • throws: PHRUTS_IllegalStateException - If the response was committed or the headers has been already sent
  • access: public
void sendError (integer $sc, string $msg)
  • integer $sc: The error status code
  • string $msg: The descriptive message
sendRedirect (line 535)

Sends a temporary redirect response to the client using the specified redirect location URL.

If the response has already been committed, this method throws a PHRUTS_IllegalStateException. After using this method, the response should be considered to be committed an should not be written to.

  • todo: Manage relatives URL.
  • todo: Send cookies.
  • throws: PHRUTS_IllegalStateException - If the response was committed or the headers has been already sent
  • access: public
void sendRedirect (string $location)
  • string $location: The redirect location URL
setAutoflush (line 400)

Sets the auto-flush property for the response.

  • throws: PHRUTS_IllegalStateException - If the response has been committed
  • access: public
void setAutoflush (boolean $autoflush)
  • boolean $autoflush
setCharacterEncoding (line 164)

Sets the character encoding (MIME charset) of the response being sent to the client, for example, to UTF-8.

If the character encoding has already been set by setContentType or setLocale, this method overrides it. Calling setContentType with the string of "text/html" and calling this method with the string of "UTF-8" is equivalent with calling setContentType with the string of "text/html; charset=UTF-8".

  • access: public
void setCharacterEncoding (string $charset)
  • string $charset: A string specifying only the character set defined by IANA Character Sets (http://www.iana.org/assignments/character-sets)
setContentType (line 207)

Sets the content type of the response being sent to the client, if the response has not been committed yet.

The given content type may include a character encoding specification, for example "text/html;charset=UTF-8".

This method may be called repeatedly to change content type and character encoding. This method has no effect if called after the response has been committed.

  • access: public
void setContentType (string $type)
  • string $type
setDateHeader (line 305)

Sets a response header with the given name and date-value.

The date is specified in terms of milliseconds since the epoch. If the header had already been set, the new value overwrites the previous one. The containsHeader method can be used to test for the presence of a header before setting its value.

  • access: public
void setDateHeader (string $name, integer $date)
  • string $name: The name of the header to set
  • integer $date: The assigned date value
setHeader (line 274)

Sets a response header with the given name and value.

If the header had already been set, the new value overwrites the previous one. The containsHeader method can be used to test for the presence of a header before setting its value.

  • access: public
void setHeader (string $name, string $value)
  • string $name: The name of the header
  • string $value: The header value
setStatus (line 113)

Sets the status code for this response.

This method is used to set the return status code when there is no error (for example, for the status codes SC_OK or SC_MOVED_TEMPORARILY).

If there is an error, and the caller wishes to invoke an error-page defined in the the web application, the sendError method should be used instead.

Clears the buffer, preserving cookies and other headers.

  • throws: PHRUTS_IllegalStateException - If the response has been committed
  • access: public
void setStatus (integer $sc)
  • integer $sc
write (line 436)

This method prints a string to the buffer response.

  • access: public
void write (string $str)
  • string $str: The string to print
writeln (line 448)

This method prints a string to the buffer response.

This method prints a line termination sequence after printing the value.

  • throws: PHRUTS_IllegalStateException - If the headers has been already sent
  • access: public
void writeln (string $str)
  • string $str: The string to print
Class Constants
SC_ACCEPTED = 202 (line 587)

Status code (202) indicating that a request was accepted for processing, but was not completed.

SC_BAD_GATEWAY = 502 (line 807)

Status code (502) indicating that the HTTP server received an invalid response from a server it consulted when acting as a proxy or gateway.

SC_BAD_REQUEST = 400 (line 678)

Status code (400) indicating the request sent by the client was syntactically incorrect.

SC_CONFLICT = 409 (line 735)

Status code (409) indicating that the request could not be completed due to a conflict with the current state of the resource.

SC_CONTINUE = 100 (line 564)

Status code (100) indicating the client can continue.

SC_CREATED = 201 (line 581)

Status code (201) indicating the request succeeded and created a new resource on the server.

SC_EXPECTATION_FAILED = 417 (line 788)

Status code (417) indicating that the server could not meet the expectation given in the Expect request header.

SC_FORBIDDEN = 403 (line 695)

Status code (403) indicating the server understood the request but refused to fulfill it.

SC_FOUND = 302 (line 645)

Status code (302) indicating that the resource reside temporarily under a different URI.

Since the redirection might be altered on occasion, the client should continue to use the Request-URI for future requests(HTTP/1.1). To represent the status code (302), it is recommended to use this variable.

SC_GATEWAY_TIMEOUT = 504 (line 820)

Status code (504) indicating that the server did not receive a timely response from the upstream server while acting as a gateway or proxy.

SC_GONE = 410 (line 742)

Status code (410) indicating that the resource is no longer available at the server and no forwarding address is known.

This condition SHOULD be considered permanent.

SC_HTTP_VERSION_NOT_SUPPORTED = 505 (line 827)

Status code (505) indicating that the server does not support or refuses to support the HTTP protocol version that was used in the request message.

SC_INTERNAL_SERVER_ERROR = 500 (line 794)

Status code (500) indicating an error inside the HTTP server which prevented it from fulfilling the request.

SC_LENGTH_REQUIRED = 411 (line 748)

Status code (411) indicating that the request cannot be handled without a defined Content-Length.

SC_METHOD_NOT_ALLOWED = 405 (line 708)

Status code (405) indicating that the method specified in the Request-Line is not allowed for the resource identified by the Request-URI.

SC_MOVED_PERMANENTLY = 301 (line 625)

Status code (301) indicating that the resource has permanently moved to a new location, and that future references should use a new URI with their requests.

SC_MOVED_TEMPORARILY = 302 (line 635)

Status code (302) indicating that the resource has temporarily moved to another location, but that future references should still use the original URI to access the resource.

This definition is being retained for backwards compatibility. SC_FOUND is now the preferred definition.

SC_MULTIPLE_CHOICES = 300 (line 618)

Status code (300) indicating that the requested resource corresponds to any one of a set of representations, each with its own specific location.

SC_NON_AUTHORITATIVE_INFORMATION = 203 (line 593)

Status code (203) indicating that the meta information presented by the client did not originate from the server.

SC_NOT_ACCEPTABLE = 406 (line 716)

Status code (406) indicating that the resource identified by the request is only capable of generating response entities which have content characteristics not acceptable according to the accept headers sent in the request.

SC_NOT_FOUND = 404 (line 701)

Status code (404) indicating that the requested resource is not available.

SC_NOT_IMPLEMENTED = 501 (line 800)

Status code (501) indicating the HTTP server does not support the functionality needed to fulfill the request.

SC_NOT_MODIFIED = 304 (line 657)

Status code (304) indicating that a conditional GET operation found that the resource was available and not modified.

SC_NO_CONTENT = 204 (line 599)

Status code (204) indicating that the request succeeded but that there was no new information to return.

SC_OK = 200 (line 575)

Status code (200) indicating the request succeeded normally.

SC_PARTIAL_CONTENT = 206 (line 611)

Status code (206) indicating that the server has fulfilled the partial GET request for the resource.

SC_PAYMENT_REQUIRED = 402 (line 689)

Status code (402) reserved for future use.

SC_PRECONDITION_FAILED = 412 (line 755)

Status code (412) indicating that the precondition given in one or more of the request-header fields evaluated to false when it was tested on the server.

SC_PROXY_AUTHENTICATION_REQUIRED = 407 (line 722)

Status code (407) indicating that the client MUST first authenticate itself with the proxy.

SC_REQUESTED_RANGE_NOT_SATISFIABLE = 416 (line 782)

Status code (416) indicating that the server cannot serve the requested byte range.

SC_REQUEST_ENTITY_TOO_LARGE = 413 (line 762)

Status code (413) indicating that the server is refusing to process the request because the request entity is larger than the server is willing or able to process.

SC_REQUEST_TIMEOUT = 408 (line 728)

Status code (408) indicating that the client did not produce a request within the time that the server was prepared to wait.

SC_REQUEST_URI_TOO_LONG = 414 (line 769)

Status code (414) indicating that the server is refusing to service the request because the Request-URI is longer than the server is willing to interpret.

SC_RESET_CONTENT = 205 (line 605)

Status code (205) indicating that the agent SHOULD reset the document view which caused the request to be sent.

SC_SEE_OTHER = 303 (line 651)

Status code (303) indicating that the response to the request can be found under a different URI.

SC_SERVICE_UNAVAILABLE = 503 (line 813)

Status code (503) indicating that the HTTP server is temporarily overloaded, and unable to handle the request.

SC_SWITCHING_PROTOCOLS = 101 (line 570)

Status code (101) indicating the server is switching protocols according to Upgrade header.

SC_TEMPORARY_REDIRECT = 307 (line 672)

Status code (307) indicating that the requested resource resides temporarily under a different URI.

The temporary URI SHOULD be given by the Location field in the response.

SC_UNAUTHORIZED = 401 (line 684)

Status code (401) indicating that the request requires HTTP authentication.

SC_UNSUPPORTED_MEDIA_TYPE = 415 (line 776)

Status code (415) indicating that the server is refusing to service the request because the entity of the request is in a format not supported by the requested resource for the requested method.

SC_USE_PROXY = 305 (line 663)

Status code (305) indicating that the requested resource MUST be accessed through the proxy given by the Location field.

Documentation generated on Sat, 31 May 2008 15:46:09 +0200 by phpDocumentor 1.4.1