Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Create ExceptionHandlerInterface to allow third party exception handl…

…ers' to handle fatal errors
  • Loading branch information...
commit 15d063b6f767a7b02ef0ca1f3c568ee120d2f1de 1 parent 7baeaa2
Andrew Moore authored
View
6 src/Symfony/Component/Debug/ErrorHandler.php
@@ -155,7 +155,7 @@ function ($row) {
$exceptionHandler = set_exception_handler('var_dump');
restore_exception_handler();
- if (is_array($exceptionHandler) && $exceptionHandler[0] instanceof ExceptionHandler) {
+ if (is_array($exceptionHandler) && $exceptionHandler[0] instanceof ExceptionHandlerInterface) {
if (self::$stackedErrorLevels) {
self::$stackedErrors[] = func_get_args();
@@ -263,7 +263,7 @@ public function handleFatal()
$exceptionHandler = set_exception_handler('var_dump');
restore_exception_handler();
- if (is_array($exceptionHandler) && $exceptionHandler[0] instanceof ExceptionHandler) {
+ if (is_array($exceptionHandler) && $exceptionHandler[0] instanceof ExceptionHandlerInterface) {
$this->handleFatalError($exceptionHandler[0], $error);
}
}
@@ -284,7 +284,7 @@ protected function getFatalErrorHandlers()
);
}
- private function handleFatalError(ExceptionHandler $exceptionHandler, array $error)
+ private function handleFatalError(ExceptionHandlerInterface $exceptionHandler, array $error)
{
$level = isset($this->levels[$error['type']]) ? $this->levels[$error['type']] : $error['type'];
$message = sprintf('%s: %s in %s line %d', $level, $error['message'], $error['file'], $error['line']);
View
6 src/Symfony/Component/Debug/ExceptionHandler.php
@@ -29,7 +29,7 @@
*
* @author Fabien Potencier <fabien@symfony.com>
*/
-class ExceptionHandler
+class ExceptionHandler implements ExceptionHandlerInterface
{
private $debug;
private $charset;
@@ -57,14 +57,14 @@ public static function register($debug = true)
}
/**
+ * {@inheritDoc}
+ *
* Sends a response for the given Exception.
*
* If you have the Symfony HttpFoundation component installed,
* this method will use it to create and send the response. If not,
* it will fallback to plain PHP functions.
*
- * @param \Exception $exception An \Exception instance
- *
* @see sendPhpResponse
* @see createResponse
*/
View
27 src/Symfony/Component/Debug/ExceptionHandlerInterface.php
@@ -0,0 +1,27 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Debug;
+
+/**
+ * An ExceptionHandler does something useful with an exception.
+ *
+ * @author Andrew Moore <me@andrewmoore.ca>
+ */
+interface ExceptionHandlerInterface
+{
+ /**
+ * Handles an exception.
+ *
+ * @param \Exception $exception An \Exception instance
+ */
+ public function handle(\Exception $exception);
+}
Please sign in to comment.
Something went wrong with that request. Please try again.