From b00d02496e9ec8281a6e0d6637772c55a7011c60 Mon Sep 17 00:00:00 2001 From: Tristan Darricau Date: Sat, 22 Nov 2014 23:10:19 +0100 Subject: [ticket/13361] Improve the exception listener PHPBB3-13361 --- phpBB/phpbb/exception/exception.php | 52 ++++++++++++++++++++ phpBB/phpbb/exception/exception_interface.php | 29 ++++++++++++ phpBB/phpbb/exception/http_exception.php | 68 +++++++++++++++++++++++++++ 3 files changed, 149 insertions(+) create mode 100644 phpBB/phpbb/exception/exception.php create mode 100644 phpBB/phpbb/exception/exception_interface.php create mode 100644 phpBB/phpbb/exception/http_exception.php (limited to 'phpBB/phpbb/exception') diff --git a/phpBB/phpbb/exception/exception.php b/phpBB/phpbb/exception/exception.php new file mode 100644 index 0000000000..077d0d258a --- /dev/null +++ b/phpBB/phpbb/exception/exception.php @@ -0,0 +1,52 @@ + +* @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; + } +} diff --git a/phpBB/phpbb/exception/exception_interface.php b/phpBB/phpbb/exception/exception_interface.php new file mode 100644 index 0000000000..e8526a35f5 --- /dev/null +++ b/phpBB/phpbb/exception/exception_interface.php @@ -0,0 +1,29 @@ + +* @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(); +} diff --git a/phpBB/phpbb/exception/http_exception.php b/phpBB/phpbb/exception/http_exception.php new file mode 100644 index 0000000000..57604d49d4 --- /dev/null +++ b/phpBB/phpbb/exception/http_exception.php @@ -0,0 +1,68 @@ + +* @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; + } +} -- cgit v1.2.1 From 1f4bb2c1495e8d2641abe9606f14281e810feee4 Mon Sep 17 00:00:00 2001 From: Tristan Darricau Date: Sat, 10 Jan 2015 18:15:19 +0100 Subject: [ticket/13361] Add tests PHPBB3-13361 --- phpBB/phpbb/exception/http_exception.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'phpBB/phpbb/exception') diff --git a/phpBB/phpbb/exception/http_exception.php b/phpBB/phpbb/exception/http_exception.php index 57604d49d4..f733462a05 100644 --- a/phpBB/phpbb/exception/http_exception.php +++ b/phpBB/phpbb/exception/http_exception.php @@ -13,10 +13,12 @@ namespace phpbb\exception; +use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface; + /** * Class http_exception */ -class http_exception extends exception implements exception_interface +class http_exception extends exception implements HttpExceptionInterface { /** * Http status code. @@ -47,7 +49,7 @@ class http_exception extends exception implements exception_interface $this->status_code = $status_code; $this->headers = $headers; - parent::__construct($message, $code, $previous); + parent::__construct($message, $parameters, $previous, $code); } /** -- cgit v1.2.1 From 7fef91afd28290ce268f671eb525dedf5ade944d Mon Sep 17 00:00:00 2001 From: Tristan Darricau Date: Tue, 20 Jan 2015 23:08:30 +0100 Subject: [ticket/13361] Rename exception to runtime_exception PHPBB3-13361 --- phpBB/phpbb/exception/exception.php | 52 ----------------------------- phpBB/phpbb/exception/http_exception.php | 2 +- phpBB/phpbb/exception/runtime_exception.php | 52 +++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+), 53 deletions(-) delete mode 100644 phpBB/phpbb/exception/exception.php create mode 100644 phpBB/phpbb/exception/runtime_exception.php (limited to 'phpBB/phpbb/exception') diff --git a/phpBB/phpbb/exception/exception.php b/phpBB/phpbb/exception/exception.php deleted file mode 100644 index 077d0d258a..0000000000 --- a/phpBB/phpbb/exception/exception.php +++ /dev/null @@ -1,52 +0,0 @@ - -* @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; - } -} diff --git a/phpBB/phpbb/exception/http_exception.php b/phpBB/phpbb/exception/http_exception.php index f733462a05..0e6ffe4f59 100644 --- a/phpBB/phpbb/exception/http_exception.php +++ b/phpBB/phpbb/exception/http_exception.php @@ -18,7 +18,7 @@ use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface; /** * Class http_exception */ -class http_exception extends exception implements HttpExceptionInterface +class http_exception extends runtime_exception implements HttpExceptionInterface { /** * Http status code. diff --git a/phpBB/phpbb/exception/runtime_exception.php b/phpBB/phpbb/exception/runtime_exception.php new file mode 100644 index 0000000000..6568bbf86f --- /dev/null +++ b/phpBB/phpbb/exception/runtime_exception.php @@ -0,0 +1,52 @@ + +* @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 runtime_exception + * + * Define an exception which support a language var as message. + */ +class runtime_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 runtime_exception used for the runtime_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; + } +} -- cgit v1.2.1