| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | <?php namespace System\Exception;use System\File;class Examiner {	/**	 * The exception being examined.	 *	 * @var Exception	 */	public $exception;	/**	 * Human-readable error levels and descriptions.	 *	 * @var array	 */	private $levels = array(		0                  => 'Error',		E_ERROR            => 'Error',		E_WARNING          => 'Warning',		E_PARSE            => 'Parsing Error',		E_NOTICE           => 'Notice',		E_CORE_ERROR       => 'Core Error',		E_CORE_WARNING     => 'Core Warning',		E_COMPILE_ERROR    => 'Compile Error',		E_COMPILE_WARNING  => 'Compile Warning',		E_USER_ERROR       => 'User Error',		E_USER_WARNING     => 'User Warning',		E_USER_NOTICE      => 'User Notice',		E_STRICT           => 'Runtime Notice'	);	/**	 * Create a new exception examiner instance.	 *	 * @param  Exception  $e	 * @return void	 */	public function __construct($e)	{		$this->exception = $e;	}	/**	 * Get a human-readable version of the exception error code.	 *	 * @return string	 */	public function severity()	{		if (array_key_exists($this->exception->getCode(), $this->levels))		{			return $this->levels[$this->exception->getCode()];		}		return $this->exception->getCode();	}	/**	 * Get the exception error message formatted for use by Laravel.	 *	 * The exception file paths will be shortened, and the file name and line number	 * will be added to the exception message.	 *	 * @return string	 */	public function message()	{		$file = str_replace(array(APP_PATH, SYS_PATH), array('APP_PATH/', 'SYS_PATH/'), $this->exception->getFile());		return rtrim($this->exception->getMessage(), '.').' in '.$file.' on line '.$this->exception->getLine().'.';	}	/**	 * Get the code surrounding the line where the exception occurred.	 *	 * @return array 	 */	public function context()	{		return File::snapshot($this->exception->getFile(), $this->exception->getLine());	}	/**	 * Magic Method to pass function calls to the exception.	 */	public function __call($method, $parameters)	{		return call_user_func_array(array($this->exception, $method), $parameters);	}}
 |