1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-31 22:10:45 +02:00

[ticket/13361] Improve the exception listener

PHPBB3-13361
This commit is contained in:
Tristan Darricau
2014-11-22 23:10:19 +01:00
parent 8b71103836
commit b00d02496e
5 changed files with 168 additions and 4 deletions

View File

@@ -0,0 +1,52 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\exception;
/**
* Class exception
*
* Define an exception which support a language var as message.
*/
class exception extends \RuntimeException implements exception_interface
{
/**
* Parameters to use with the language var.
*
* @var array
*/
private $parameters;
/**
* Constructor
*
* @param string $message The Exception message to throw (must be a language variable).
* @param array $parameters The parameters to use with the language var.
* @param \Exception $previous The previous exception used for the exception chaining.
* @param integer $code The Exception code.
*/
public function __construct($message = "", array $parameters = array(), \Exception $previous = null, $code = 0)
{
$this->parameters = $parameters;
parent::__construct($message, $code, $previous);
}
/**
* {@inheritdoc}
*/
public function get_parameters()
{
return $this->parameters;
}
}

View File

@@ -0,0 +1,29 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\exception;
/**
* Interface exception_interface
*
* Define an exception which support a language var as message.
*/
interface exception_interface
{
/**
* Return the arguments associated with the message if it's a language var.
*
* @return array
*/
public function get_parameters();
}

View File

@@ -0,0 +1,68 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\exception;
/**
* Class http_exception
*/
class http_exception extends exception implements exception_interface
{
/**
* Http status code.
*
* @var integer
*/
private $status_code;
/**
* Additional headers to set in the response.
*
* @var array
*/
private $headers;
/**
* Constructor
*
* @param integer $status_code The http status code.
* @param string $message The Exception message to throw (must be a language variable).
* @param array $parameters The parameters to use with the language var.
* @param \Exception $previous The previous exception used for the exception chaining.
* @param array $headers Additional headers to set in the response.
* @param integer $code The Exception code.
*/
public function __construct($status_code, $message = "", array $parameters = array(), \Exception $previous = null, array $headers = array(), $code = 0)
{
$this->status_code = $status_code;
$this->headers = $headers;
parent::__construct($message, $code, $previous);
}
/**
* {@inheritdoc}
*/
public function getStatusCode()
{
return $this->status_code;
}
/**
* {@inheritdoc}
*/
public function getHeaders()
{
return $this->headers;
}
}