<?php /** * Throwable exceptions to return HTTP status code * * This list of Exception has be extracted from * here http://racksburg.com/choosing-an-http-status-code/ */ class HTTPException extends Exception { var $httpcode = 200; var $httpdesc = ""; public function __construct($message="", $code = 0, Exception $previous = null) { if ($this->httpdesc=="") { $this->httpdesc = preg_replace("|([a-z])([A-Z])|",'$1 $2', str_replace("Exception","",get_class($this))); } parent::__construct($message, $code, $previous); } } // 4xx class TooManyRequestsException extends HTTPException { var $httpcode = 429; } class UnauthorizedException extends HTTPException { var $httpcode = 401; } class ForbiddenException extends HTTPException { var $httpcode = 403; } class NotFoundException extends HTTPException { var $httpcode = 404; } class GoneException extends HTTPException { var $httpcode = 410; } class MethodNotAllowedException extends HTTPException { var $httpcode = 405; } class NonAcceptableException extends HTTPException { var $httpcode = 406; } class LenghtRequiredException extends HTTPException { var $httpcode = 411; } class PreconditionFailedException extends HTTPException { var $httpcode = 412; } class UnsupportedMediaTypeException extends HTTPException { var $httpcode = 415; } class ExpetationFailesException extends HTTPException { var $httpcode = 417; } class ConflictException extends HTTPException { var $httpcode = 409; } class UnprocessableEntityException extends HTTPException { var $httpcode = 422; } class ImATeapotException extends HTTPException { var $httpcode = 418; var $httpdesc = "I'm A Teapot"; } class BadRequestException extends HTTPException { var $httpcode = 400; } // 5xx class ServiceUnavaiableException extends HTTPException { var $httpcode = 503; } class BadGatewayException extends HTTPException { var $httpcode = 502; } class GatewayTimeoutException extends HTTPException { var $httpcode = 504; } class NotImplementedException extends HTTPException { var $httpcode = 501; } class InternalServerErrorException extends HTTPException { var $httpcode = 500; }