Compare commits

..

7 Commits

Author SHA1 Message Date
Fabien Potencier
4486d2be5e Merge branch '2.7' into 2.8
* 2.7:
  Add PHPDbg support to HTTP components
  bumped Symfony version to 2.7.45
  updated VERSION for 2.7.44
  update CONTRIBUTORS for 2.7.44
  updated CHANGELOG for 2.7.44
  Fix check of color support on Windows
2018-04-03 07:20:27 +02:00
Haralan Dobrev
e191af723b Add PHPDbg support to HTTP components 2018-04-03 07:05:54 +02:00
Fabien Potencier
ce92aa6388 Merge branch '2.7' into 2.8
* 2.7:
  [Intl] Update ICU data to 61.1
  [Validator] Add Japanese translation
  Support phpdbg SAPI in Debug::enable()
  [Validator] sync validator translation id
  no type errors with invalid submitted data types
  [FrameworkBundle] Partially revert HttpCache is not longer abstract (4d075da)
  [Finder] Fixed leading/trailing / in filename
  allow html5 compatible rendering of forms with null names
  Change datetime input to datetime-local
2018-03-28 20:22:50 +02:00
Haralan Dobrev
7e7619ce57 Support phpdbg SAPI in Debug::enable() 2018-03-27 09:04:21 +02:00
Nicolas Grekas
b74e4e0899 Merge branch '2.7' into 2.8
* 2.7:
  [Config] Handle nullable node name + fix inheritdocs
  [Security] added userChecker to SimpleAuthenticationProvider
  [Debug] fix test
  Fix typo in test method name
  Fixes #26563 (open_basedir restriction in effect)
  [Debug] Reset previous exception handler ealier to prevent infinite loop
  add hint in Github pull request template
  [Validator] Fix docblock of ClassMetadata#members
  [BrowserKit] Fix cookie path handling when $domain is null
  [DoctrineBridge] Don't rely on ClassMetadataInfo->hasField in DoctrineOrmTypeGuesser anymore
  [BrowserKit] Improves CookieJar::get
  [BrowserKit] Fix Cookie's PHPDoc
  [DomCrawler] Change bad wording in ChoiceFormField::untick
  [DomCrawler] Fix the PHPDoc of ChoiceFormField::setValue
  [DomCrawler] Avoid a useless call to strtolower
  [FrameworkBundle] HttpCache is not longer abstract
  [DomCrawler] extract(): fix a bug when the attribute list is empty
  [Config] Backport string|null api for node names
2018-03-19 22:11:56 +01:00
Nicolas Grekas
5555d0c0c4 [Debug] fix test 2018-03-19 19:37:04 +01:00
Nicolas Grekas
0a614d393b [Debug] Reset previous exception handler ealier to prevent infinite loop 2018-03-19 11:28:44 +01:00
3 changed files with 19 additions and 4 deletions

View File

@@ -45,7 +45,7 @@ class Debug
error_reporting(-1);
}
if ('cli' !== PHP_SAPI) {
if (!\in_array(PHP_SAPI, array('cli', 'phpdbg'), true)) {
ini_set('display_errors', 0);
ExceptionHandler::register();
} elseif ($displayErrors && (!ini_get('log_errors') || ini_get('error_log'))) {

View File

@@ -614,15 +614,16 @@ class ErrorHandler
}
}
}
$exceptionHandler = $this->exceptionHandler;
$this->exceptionHandler = null;
try {
if (null !== $this->exceptionHandler) {
return \call_user_func($this->exceptionHandler, $exception);
if (null !== $exceptionHandler) {
return \call_user_func($exceptionHandler, $exception);
}
$handlerException = $handlerException ?: $exception;
} catch (\Exception $handlerException) {
} catch (\Throwable $handlerException) {
}
$this->exceptionHandler = null;
if ($exception === $handlerException) {
self::$reservedMemory = null; // Disable the fatal error handler
throw $exception; // Give back $exception to the native handler

View File

@@ -601,4 +601,18 @@ class ErrorHandlerTest extends TestCase
throw $e;
}
}
/**
* @expectedException \Exception
* @group no-hhvm
*/
public function testCustomExceptionHandler()
{
$handler = new ErrorHandler();
$handler->setExceptionHandler(function ($e) use ($handler) {
$handler->handleException($e);
});
$handler->handleException(new \Exception());
}
}