You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							109 lines
						
					
					
						
							3.0 KiB
						
					
					
				
			
		
		
	
	
							109 lines
						
					
					
						
							3.0 KiB
						
					
					
				<?php | 
						|
/** | 
						|
 * @link http://www.yiiframework.com/ | 
						|
 * @copyright Copyright (c) 2008 Yii Software LLC | 
						|
 * @license http://www.yiiframework.com/license/ | 
						|
 */ | 
						|
 | 
						|
namespace yii\base; | 
						|
 | 
						|
/** | 
						|
 * HttpException represents an exception caused by an improper request of the end-user. | 
						|
 * | 
						|
 * HttpException can be differentiated via its [[statusCode]] property value which | 
						|
 * keeps a standard HTTP status code (e.g. 404, 500). Error handlers may use this status code | 
						|
 * to decide how to format the error page. | 
						|
 * | 
						|
 * @author Qiang Xue <qiang.xue@gmail.com> | 
						|
 * @since 2.0 | 
						|
 */ | 
						|
class HttpException extends UserException | 
						|
{ | 
						|
	/** | 
						|
	 * @var integer HTTP status code, such as 403, 404, 500, etc. | 
						|
	 */ | 
						|
	public $statusCode; | 
						|
 | 
						|
	/** | 
						|
	 * Constructor. | 
						|
	 * @param integer $status HTTP status code, such as 404, 500, etc. | 
						|
	 * @param string $message error message | 
						|
	 * @param integer $code error code | 
						|
	 * @param \Exception $previous The previous exception used for the exception chaining. | 
						|
	 */ | 
						|
	public function __construct($status, $message = null, $code = 0, \Exception $previous = null) | 
						|
	{ | 
						|
		$this->statusCode = $status; | 
						|
		parent::__construct($message, $code, $previous); | 
						|
	} | 
						|
 | 
						|
	/** | 
						|
	 * @return string the user-friendly name of this exception | 
						|
	 */ | 
						|
	public function getName() | 
						|
	{ | 
						|
		static $httpCodes = array( | 
						|
			100 => 'Continue', | 
						|
			101 => 'Switching Protocols', | 
						|
			102 => 'Processing', | 
						|
			118 => 'Connection timed out', | 
						|
			200 => 'OK', | 
						|
			201 => 'Created', | 
						|
			202 => 'Accepted', | 
						|
			203 => 'Non-Authoritative', | 
						|
			204 => 'No Content', | 
						|
			205 => 'Reset Content', | 
						|
			206 => 'Partial Content', | 
						|
			207 => 'Multi-Status', | 
						|
			210 => 'Content Different', | 
						|
			300 => 'Multiple Choices', | 
						|
			301 => 'Moved Permanently', | 
						|
			302 => 'Found', | 
						|
			303 => 'See Other', | 
						|
			304 => 'Not Modified', | 
						|
			305 => 'Use Proxy', | 
						|
			307 => 'Temporary Redirect', | 
						|
			310 => 'Too many Redirect', | 
						|
			400 => 'Bad Request', | 
						|
			401 => 'Unauthorized', | 
						|
			402 => 'Payment Required', | 
						|
			403 => 'Forbidden', | 
						|
			404 => 'Not Found', | 
						|
			405 => 'Method Not Allowed', | 
						|
			406 => 'Not Acceptable', | 
						|
			407 => 'Proxy Authentication Required', | 
						|
			408 => 'Request Time-out', | 
						|
			409 => 'Conflict', | 
						|
			410 => 'Gone', | 
						|
			411 => 'Length Required', | 
						|
			412 => 'Precondition Failed', | 
						|
			413 => 'Request Entity Too Large', | 
						|
			414 => 'Request-URI Too Long', | 
						|
			415 => 'Unsupported Media Type', | 
						|
			416 => 'Requested range unsatisfiable', | 
						|
			417 => 'Expectation failed', | 
						|
			418 => 'I’m a teapot', | 
						|
			422 => 'Unprocessable entity', | 
						|
			423 => 'Locked', | 
						|
			424 => 'Method failure', | 
						|
			425 => 'Unordered Collection', | 
						|
			426 => 'Upgrade Required', | 
						|
			449 => 'Retry With', | 
						|
			450 => 'Blocked by Windows Parental Controls', | 
						|
			500 => 'Internal Server Error', | 
						|
			501 => 'Not Implemented', | 
						|
			502 => 'Bad Gateway ou Proxy Error', | 
						|
			503 => 'Service Unavailable', | 
						|
			504 => 'Gateway Time-out', | 
						|
			505 => 'HTTP Version not supported', | 
						|
			507 => 'Insufficient storage', | 
						|
			509 => 'Bandwidth Limit Exceeded', | 
						|
		); | 
						|
 | 
						|
		if (isset($httpCodes[$this->statusCode])) { | 
						|
			return $httpCodes[$this->statusCode]; | 
						|
		} else { | 
						|
			return \Yii::t('yii', 'Error'); | 
						|
		} | 
						|
	} | 
						|
}
 | 
						|
 |