Skip to content

Commit 790c285

Browse files
committed
Use Debugbar instance to activate the tracking.
1 parent c0572f2 commit 790c285

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

src/ServiceProvider.php

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use DebugBar\DataFormatter\DataFormatter;
88
use DebugBar\DataFormatter\DataFormatterInterface;
99
use Illuminate\Contracts\Http\Kernel;
10+
use Illuminate\Foundation\Application;
1011
use Illuminate\Routing\Router;
1112
use Illuminate\Session\SessionManager;
1213
use Illuminate\Support\Collection;
@@ -62,28 +63,35 @@ function ($app) {
6263

6364
$this->app->extend(
6465
'view.engine.resolver',
65-
function (EngineResolver $resolver): EngineResolver {
66-
$debugbarConfig = $this->app['config']->get('debugbar', []);
67-
if (empty($debugbarConfig['enabled']) ||
68-
empty($debugbarConfig['collectors']['time']) ||
69-
empty($debugbarConfig['collectors']['views'])) {
66+
function (EngineResolver $resolver, Application $application): EngineResolver {
67+
$laravelDebugbar = $application->make(LaravelDebugbar::class);
68+
69+
$shouldTrackViewTime = $laravelDebugbar->isEnabled() &&
70+
$laravelDebugbar->shouldCollect('time', true) &&
71+
$laravelDebugbar->shouldCollect('views', true);
72+
73+
if (! $shouldTrackViewTime) {
7074
/* Do not swap the engine to save performance */
7175
return $resolver;
7276
}
73-
return new class($resolver) extends EngineResolver {
7477

75-
public function __construct(EngineResolver $resolver)
78+
return new class($resolver, $laravelDebugbar) extends EngineResolver {
79+
80+
private $laravelDebugbar;
81+
82+
public function __construct(EngineResolver $resolver, LaravelDebugbar $laravelDebugbar)
7683
{
7784
foreach ($resolver->resolvers as $engine => $resolver) {
7885
$this->register($engine, $resolver);
7986
}
87+
$this->laravelDebugbar = $laravelDebugbar;
8088
}
8189

8290
public function register($engine, \Closure $resolver)
8391
{
8492
parent::register($engine, function () use ($resolver) {
8593
/* Inject the root facade to avoid calling it on every view generation */
86-
return new DebugbarViewEngine($resolver(), DebugBar::getFacadeRoot());
94+
return new DebugbarViewEngine($resolver(), $this->laravelDebugbar);
8795
});
8896
}
8997
};

0 commit comments

Comments
 (0)