Reputation: 2340
I need to use a custom status code for a response in CakePHP 2.x
, for instance 422
.
However the CakeResponse
class only allows those status codes that are already setup in the CakeResponse class.
Is there a way for me to use my custom status code with CakePHP
?
Note if the answer is to use a custom CakeResponse
class there is a related question regarding that.
Upvotes: 0
Views: 565
Reputation: 25698
It's cool that you lookup the API but just keep reading:
Queries & sets valid HTTP response codes & messages.
/**
* Queries & sets valid HTTP response codes & messages.
*
* @param int|array $code If $code is an integer, then the corresponding code/message is
* returned if it exists, null if it does not exist. If $code is an array, then the
* keys are used as codes and the values as messages to add to the default HTTP
* codes. The codes must be integers greater than 99 and less than 1000. Keep in
* mind that the HTTP specification outlines that status codes begin with a digit
* between 1 and 5, which defines the class of response the client is to expect.
* Example:
*
* httpCodes(404); // returns array(404 => 'Not Found')
*
* httpCodes(array(
* 381 => 'Unicorn Moved',
* 555 => 'Unexpected Minotaur'
* )); // sets these new values, and returns true
*
* httpCodes(array(
* 0 => 'Nothing Here',
* -1 => 'Reverse Infinity',
* 12345 => 'Universal Password',
* 'Hello' => 'World'
* )); // throws an exception due to invalid codes
*
* For more on HTTP status codes see: http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1
*
* @return mixed associative array of the HTTP codes as keys, and the message
* strings as values, or null of the given $code does not exist.
* @throws CakeException If an attempt is made to add an invalid status code
*/
If you plan to use none standard codes with an API I would return the code in a x-header instead or within the response like Jsend does it for example.
Upvotes: 1