File tree Expand file tree Collapse file tree 3 files changed +70
-0
lines changed Expand file tree Collapse file tree 3 files changed +70
-0
lines changed Original file line number Diff line number Diff line change 183183 'models ' => true , // Display models
184184 'livewire ' => true , // Display Livewire (when available)
185185 'jobs ' => false , // Display dispatched jobs
186+ 'pennant ' => false , // Display Pennant feature flags
186187 ],
187188
188189 /*
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Barryvdh \Debugbar \DataCollector ;
4+
5+ use DebugBar \DataCollector \DataCollector ;
6+ use DebugBar \DataCollector \DataCollectorInterface ;
7+ use DebugBar \DataCollector \Renderable ;
8+ use Illuminate \Support \Facades \Config ;
9+
10+ class PennantCollector extends DataCollector implements DataCollectorInterface, Renderable
11+ {
12+ /** @var \Laravel\Pennant\FeatureManager */
13+ protected $ manager ;
14+
15+ /**
16+ * Create a new SessionCollector
17+ *
18+ * @param \Laravel\Pennant\FeatureManager $manager
19+ */
20+ public function __construct ($ manager )
21+ {
22+ $ this ->manager = $ manager ;
23+ }
24+
25+ /**
26+ * {@inheritdoc}
27+ */
28+ public function collect ()
29+ {
30+ $ store = $ this ->manager ->store (Config::get ('pennant.default ' ));
31+
32+ return $ store ->values ($ store ->stored ());
33+ }
34+
35+ /**
36+ * {@inheritDoc}
37+ */
38+ public function getName ()
39+ {
40+ return 'pennant ' ;
41+ }
42+
43+ /**
44+ * {@inheritDoc}
45+ */
46+ public function getWidgets ()
47+ {
48+ return [
49+ "pennant " => [
50+ "icon " => "flag " ,
51+ "widget " => "PhpDebugBar.Widgets.VariableListWidget " ,
52+ "map " => "pennant " ,
53+ "default " => "{} "
54+ ]
55+ ];
56+ }
57+ }
Original file line number Diff line number Diff line change 1010use Barryvdh \Debugbar \DataCollector \LivewireCollector ;
1111use Barryvdh \Debugbar \DataCollector \LogsCollector ;
1212use Barryvdh \Debugbar \DataCollector \MultiAuthCollector ;
13+ use Barryvdh \Debugbar \DataCollector \PennantCollector ;
1314use Barryvdh \Debugbar \DataCollector \QueryCollector ;
1415use Barryvdh \Debugbar \DataCollector \SessionCollector ;
1516use Barryvdh \Debugbar \DataCollector \RequestCollector ;
@@ -530,6 +531,17 @@ public function __toString(): string
530531 }
531532 }
532533
534+ if ($ this ->shouldCollect ('pennant ' , false )) {
535+ if (class_exists ('Laravel\Pennant\FeatureManager ' ) && $ app ->bound (\Laravel \Pennant \FeatureManager::class)) {
536+ $ featureManager = $ app ->make (\Laravel \Pennant \FeatureManager::class);
537+ try {
538+ $ this ->addCollector (new PennantCollector ($ featureManager ));
539+ } catch (Exception $ e ) {
540+ $ this ->addCollectorException ('Cannot add PennantCollector ' , $ e );
541+ }
542+ }
543+ }
544+
533545 $ renderer = $ this ->getJavascriptRenderer ();
534546 $ renderer ->setIncludeVendors ($ config ->get ('debugbar.include_vendors ' , true ));
535547 $ renderer ->setBindAjaxHandlerToFetch ($ config ->get ('debugbar.capture_ajax ' , true ));
You can’t perform that action at this time.
0 commit comments