Skip to content

Commit b2c5fd6

Browse files
committed
use ErrorException to throw on display_errors = 1
1 parent 4a8e37b commit b2c5fd6

4 files changed

Lines changed: 11 additions & 12 deletions

File tree

spec/Fixture/view/error.phtml

Whitespace-only changes.

spec/Listener/MvcSpec.php

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace ErrorHeroModule\Spec\Listener;
44

5+
use ErrorException;
56
use ErrorHeroModule\Handler\Logging;
67
use ErrorHeroModule\Listener\Mvc;
78
use Kahlan\Plugin\Double;
@@ -283,15 +284,12 @@
283284

284285
it('call error_get_last() and return error', function () {
285286

286-
Quit::disable();
287-
288287
allow('error_get_last')->toBeCalled()->andReturn([
289288
'type' => 8,
290289
'message' => 'Undefined variable: a',
291290
'file' => '/var/www/zf/module/Application/Module.php',
292291
'line' => 2
293292
]);
294-
expect('error_get_last')->toBeCalled();
295293

296294
$dbAdapter = new Adapter([
297295
'username' => 'root',
@@ -353,6 +351,7 @@
353351
$resolver = new Resolver\AggregateResolver();
354352

355353
$map = new Resolver\TemplateMapResolver([
354+
'error' => __DIR__ . '/../Fixture/view/error.phtml',
356355
'layout/layout' => __DIR__ . '/../Fixture/view/layout/layout.phtml',
357356
'error-hero-module/error-default' => __DIR__ . '/../Fixture/view/error-hero-module/error-default.phtml',
358357
]);
@@ -407,14 +406,11 @@
407406
$this->renderer
408407
);
409408

410-
ob_start();
411409
$closure = function () use ($listener) {
412410
$listener->execOnShutdown();
413411
};
414-
expect($closure)->toThrow(new QuitException('Exit statement occurred', -1));
415-
$content = ob_get_clean();
416-
417-
expect($content)->toContain('We have encountered a problem');
412+
expect($closure)->toThrow(new ErrorException('Undefined variable: a', 500, 1));
413+
418414

419415
});
420416

src/Controller/ErrorPreviewController.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,5 @@ public function errorAction()
1515
{
1616
$array = [];
1717
$array[1]; // E_NOTICE
18-
19-
return $this->getResponse();
2018
}
2119
}

src/HeroTrait.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace ErrorHeroModule;
44

5+
use ErrorException;
56
use ErrorHeroModule\Handler\Logging;
67
use Zend\Diactoros\ServerRequest;
78
use Zend\Expressive\Template\TemplateRendererInterface;
@@ -66,13 +67,17 @@ public function phpErrorHandler($errorType, $errorMessage, $errorFile, $errorLin
6667
}
6768
}
6869

69-
if ($this->errorHeroModuleConfig['display-settings']['display_errors'] === 0 || $errorExcluded) {
70+
if (! $this->errorHeroModuleConfig['display-settings']['display_errors'] || $errorExcluded) {
7071
error_reporting(E_ALL | E_STRICT);
7172
ini_set('display_errors', 0);
7273
}
7374

74-
if (! $errorExcluded) {
75+
if (! $this->errorHeroModuleConfig['display-settings']['display_errors'] && ! $errorExcluded) {
7576
$this->showDefaultViewWhenDisplayErrorSetttingIsDisabled();
7677
}
78+
79+
if ($this->errorHeroModuleConfig['display-settings']['display_errors']) {
80+
throw new ErrorException($errorMessage, 500, $errorType);
81+
}
7782
}
7883
}

0 commit comments

Comments
 (0)