Code Duplication    Length = 41-41 lines in 2 locations

src/ExceptionHandlers/WhoopsThrowableJsonHandler.php 1 location

@@ 32-72 (lines=41) @@
29
 *
30
 * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
31
 */
32
class WhoopsThrowableJsonHandler extends BaseThrowableHandler
33
{
34
    /**
35
     * @inheritdoc
36
     *
37
     * @SuppressWarnings(PHPMD.ElseExpression)
38
     */
39
    public function createResponse(Throwable $throwable, ContainerInterface $container): ThrowableResponseInterface
40
    {
41
        $message = '{"error":{"message":"Internal Server Error."}}';
42
43
        $this->logException($throwable, $container, $message);
44
45
        list($isDebug) = $this->getSettings($container);
46
47
        if ($isDebug === true) {
48
            $run = new Run();
49
50
            // If these two options are not used it would work fine with PHP Unit and XDebug,
51
            // however it produces output to console under PhpDbg. So we need a couple of
52
            // tweaks to make it work predictably in both environments.
53
            //
54
            // this one forbids Whoops spilling output to console
55
            $run->writeToOutput(false);
56
            // by default after sending error to output Whoops stops execution
57
            // as we want just generated output `string` we instruct not to halt
58
            $run->allowQuit(false);
59
60
            $handler = new JsonResponseHandler();
61
            $handler->setException($throwable);
62
            $run->appendHandler($handler);
63
64
            $message = $run->handleException($throwable);
65
        }
66
67
        $status   = $throwable->getCode() > 0 ? $throwable->getCode() : static::DEFAULT_HTTP_ERROR_CODE;
68
        $response = $this->createThrowableJsonResponse($throwable, $message, $status);
69
70
        return $response;
71
    }
72
}
73

src/ExceptionHandlers/WhoopsThrowableTextHandler.php 1 location

@@ 32-72 (lines=41) @@
29
 *
30
 * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
31
 */
32
class WhoopsThrowableTextHandler extends BaseThrowableHandler
33
{
34
    /**
35
     * @inheritdoc
36
     *
37
     * @SuppressWarnings(PHPMD.ElseExpression)
38
     */
39
    public function createResponse(Throwable $throwable, ContainerInterface $container): ThrowableResponseInterface
40
    {
41
        $message = 'Internal Server Error';
42
43
        $this->logException($throwable, $container, $message);
44
45
        list($isDebug) = $this->getSettings($container);
46
47
        if ($isDebug === true) {
48
            $run = new Run();
49
50
            // If these two options are not used it would work fine with PHP Unit and XDebug,
51
            // however it produces output to console under PhpDbg. So we need a couple of
52
            // tweaks to make it work predictably in both environments.
53
            //
54
            // this one forbids Whoops spilling output to console
55
            $run->writeToOutput(false);
56
            // by default after sending error to output Whoops stops execution
57
            // as we want just generated output `string` we instruct not to halt
58
            $run->allowQuit(false);
59
60
            $handler = new PlainTextHandler();
61
            $handler->setException($throwable);
62
            $run->appendHandler($handler);
63
64
            $message = $run->handleException($throwable);
65
        }
66
67
        $status   = $throwable->getCode() > 0 ? $throwable->getCode() : static::DEFAULT_HTTP_ERROR_CODE;
68
        $response = $this->createThrowableTextResponse($throwable, $message, $status);
69
70
        return $response;
71
    }
72
}
73