Skip to content

Commit eaa42a5

Browse files
committed
Bring back try/catch for 5.1
1 parent 9e2d4a1 commit eaa42a5

File tree

1 file changed

+48
-6
lines changed

1 file changed

+48
-6
lines changed

src/Middleware/Debugbar.php

Lines changed: 48 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,23 @@
11
<?php namespace Barryvdh\Debugbar\Middleware;
22

33
use Closure;
4+
use Exception;
5+
use Illuminate\Http\Request;
46
use Barryvdh\Debugbar\LaravelDebugbar;
7+
use Illuminate\Contracts\Container\Container;
8+
use Illuminate\Contracts\Debug\ExceptionHandler;
59

6-
class Debugbar {
10+
class Debugbar
11+
{
12+
/**
13+
* The App container
14+
*
15+
* @var Container
16+
*/
17+
protected $container;
718

819
/**
9-
* The Exception Handler
20+
* The DebugBar instance
1021
*
1122
* @var LaravelDebugbar
1223
*/
@@ -15,27 +26,58 @@ class Debugbar {
1526
/**
1627
* Create a new middleware instance.
1728
*
29+
* @param Container $container
1830
* @param LaravelDebugbar $debugbar
1931
*/
20-
public function __construct(LaravelDebugbar $debugbar)
32+
public function __construct(Container $container, LaravelDebugbar $debugbar)
2133
{
34+
$this->container = $container;
2235
$this->debugbar = $debugbar;
2336
}
2437

2538
/**
2639
* Handle an incoming request.
2740
*
28-
* @param \Illuminate\Http\Request $request
29-
* @param \Closure $next
41+
* @param Request $request
42+
* @param Closure $next
3043
* @return mixed
3144
*/
3245
public function handle($request, Closure $next)
3346
{
34-
$response = $next($request);
47+
try {
48+
/** @var \Illuminate\Http\Response $response */
49+
$response = $next($request);
50+
} catch (Exception $e) {
51+
$response = $this->handleException($request, $e);
52+
}
3553

54+
// Modify the response to add the Debugbar
3655
$this->debugbar->modifyResponse($request, $response);
3756

3857
return $response;
3958

4059
}
60+
61+
/**
62+
* Handle the given exception.
63+
*
64+
* (Copy from Illuminate\Routing\Pipeline by Taylor Otwell)
65+
*
66+
* @param $passable
67+
* @param Exception $e
68+
* @return mixed
69+
* @throws Exception
70+
*/
71+
protected function handleException($passable, Exception $e)
72+
{
73+
if (! $this->container->bound(ExceptionHandler::class) || ! $passable instanceof Request) {
74+
throw $e;
75+
}
76+
77+
$handler = $this->container->make(ExceptionHandler::class);
78+
79+
$handler->report($e);
80+
81+
return $handler->render($passable, $e);
82+
}
4183
}

0 commit comments

Comments
 (0)