Compare commits

..

9 Commits

Author SHA1 Message Date
Fabien Potencier
e67e1552dd Merge branch '2.8' into 3.0
* 2.8:
  [BrowserKit] Bump dom-crawler minimum version requirement
  Make one call to "OutputInterface::write" method per table row
  [HttpKernel] Fix context dependent test
  [Debug] Fix context dependent test
2016-06-06 17:08:35 +02:00
Fabien Potencier
c7d6d8a599 Merge branch '2.7' into 2.8
* 2.7:
  [BrowserKit] Bump dom-crawler minimum version requirement
  Make one call to "OutputInterface::write" method per table row
  [HttpKernel] Fix context dependent test
  [Debug] Fix context dependent test
2016-06-06 17:06:25 +02:00
Nicolas Grekas
00f654c530 [Debug] Fix context dependent test 2016-06-06 13:49:15 +02:00
Fabien Potencier
d8e542d39b Merge branch '2.8' into 3.0
* 2.8:
  [Yaml] fix exception contexts
  People - person singularization
  [Yaml] properly handle unindented collections
  [Serializer] Add test for ignored attributes during denormalization
  chomp newlines only at the end of YAML documents
  Fixed server status command when port has been omitted
  Update UPGRADE FROM 2.x to 3.0
  fix removed commands wording in upgrade file
  Catch \Throwable
  Catch \Throwable
  Use levenshtein level for better Bundle matching
  [WebProfilerBundle] Fix CORS ajax security issues
  [DX][DI] Make Autowiring exceptions more future friendly
2016-05-24 12:03:10 +02:00
Fabien Potencier
2a1b327f5f Merge branch '2.7' into 2.8
* 2.7:
  [Yaml] fix exception contexts
  People - person singularization
  [Yaml] properly handle unindented collections
  [Serializer] Add test for ignored attributes during denormalization
  chomp newlines only at the end of YAML documents
  Fixed server status command when port has been omitted
  Update UPGRADE FROM 2.x to 3.0
  Catch \Throwable
  Use levenshtein level for better Bundle matching
  [WebProfilerBundle] Fix CORS ajax security issues
2016-05-24 12:00:02 +02:00
Filip Procházka
dfaa39d719 Catch \Throwable 2016-05-19 15:58:47 +02:00
Nicolas Grekas
a5f488faf1 Merge branch '2.8' into 3.0
* 2.8:
  Drop hirak/prestissimo
  bumped Symfony version to 2.8.7
  updated VERSION for 2.8.6
  updated CHANGELOG for 2.8.6
  bumped Symfony version to 2.7.14
  updated VERSION for 2.7.13
  updated CHANGELOG for 2.7.13
  bumped Symfony version to 2.3.42
  [Debug] Fix fatal error handlers on PHP 7
  updated VERSION for 2.3.41
  update CONTRIBUTORS for 2.3.41
  updated CHANGELOG for 2.3.41

Conflicts:
	CHANGELOG-2.3.md
	CHANGELOG-2.7.md
	CHANGELOG-3.0.md
	appveyor.yml
	src/Symfony/Component/HttpKernel/Kernel.php
2016-05-12 10:22:55 -05:00
Nicolas Grekas
d8009e5ad7 Merge branch '2.7' into 2.8
* 2.7:
  Drop hirak/prestissimo
  bumped Symfony version to 2.7.14
  updated VERSION for 2.7.13
  updated CHANGELOG for 2.7.13
  bumped Symfony version to 2.3.42
  [Debug] Fix fatal error handlers on PHP 7
  updated VERSION for 2.3.41
  update CONTRIBUTORS for 2.3.41
  updated CHANGELOG for 2.3.41

Conflicts:
	src/Symfony/Component/HttpKernel/Kernel.php
2016-05-12 10:20:14 -05:00
Nicolas Grekas
5fe2066e79 [Debug] Fix fatal error handlers on PHP 7 2016-05-09 15:05:29 -05:00
3 changed files with 25 additions and 5 deletions

View File

@@ -494,7 +494,7 @@ class ErrorHandler
}
$type = $exception instanceof FatalErrorException ? $exception->getSeverity() : E_ERROR;
if ($this->loggedErrors & $type) {
if (($this->loggedErrors & $type) || $exception instanceof FatalThrowableError) {
$e = array(
'type' => $type,
'file' => $exception->getFile(),
@@ -521,9 +521,9 @@ class ErrorHandler
} else {
$message = 'Uncaught Exception: '.$exception->getMessage();
}
if ($this->loggedErrors & $e['type']) {
$this->loggers[$e['type']][0]->log($this->loggers[$e['type']][1], $message, $e);
}
}
if ($this->loggedErrors & $type) {
$this->loggers[$type][0]->log($this->loggers[$type][1], $message, $e);
}
if ($exception instanceof FatalErrorException && !$exception instanceof OutOfMemoryException && $error) {
foreach ($this->getFatalErrorHandlers() as $handler) {
@@ -580,6 +580,8 @@ class ErrorHandler
}
} catch (\Exception $exception) {
// Handled below
} catch (\Throwable $exception) {
// Handled below
}
if ($error && $error['type'] &= E_PARSE | E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR) {

View File

@@ -27,7 +27,7 @@ class FatalThrowableError extends FatalErrorException
$message = 'Type error: '.$e->getMessage();
$severity = E_RECOVERABLE_ERROR;
} else {
$message = 'Fatal error: '.$e->getMessage();
$message = $e->getMessage();
$severity = E_ERROR;
}

View File

@@ -448,6 +448,24 @@ class ErrorHandlerTest extends \PHPUnit_Framework_TestCase
}
}
/**
* @requires PHP 7
*/
public function testHandleErrorException()
{
$exception = new \Error("Class 'Foo' not found");
$handler = new ErrorHandler();
$handler->setExceptionHandler(function () use (&$args) {
$args = func_get_args();
});
$handler->handleException($exception);
$this->assertInstanceOf('Symfony\Component\Debug\Exception\ClassNotFoundException', $args[0]);
$this->assertStringStartsWith("Attempted to load class \"Foo\" from the global namespace.\nDid you forget a \"use\" statement", $args[0]->getMessage());
}
public function testHandleFatalErrorOnHHVM()
{
try {