Source of file ConfigCollector.php
Size: 2,102 Bytes - Last Modified: 2021-12-23T10:00:22+00:00
/var/www/docs.ssmods.com/process/src/code/Collector/ConfigCollector.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | <?php namespace LeKoala\DebugBar\Collector; use SilverStripe\Core\Kernel; use LeKoala\DebugBar\DebugBar; use SilverStripe\Control\Director; use DebugBar\DataCollector\Renderable; use SilverStripe\Core\Injector\Injector; use DebugBar\DataCollector\AssetProvider; use DebugBar\DataCollector\DataCollector; use LeKoala\DebugBar\Proxy\ProxyConfigCollectionInterface; use SilverStripe\Config\Collections\ConfigCollectionInterface; /** * Collects data about the config usage during a SilverStripe request */ class ConfigCollector extends DataCollector implements Renderable, AssetProvider { public function getName() { return 'config'; } /** * @return ConfigCollectionInterface|ProxyConfigCollectionInterface */ public function getConfigManifest() { $configLoader = Injector::inst()->get(Kernel::class)->getConfigLoader(); $manifest = $configLoader->getManifest(); return $manifest; } public function collect() { $manifest = $this->getConfigManifest(); $result = []; if (method_exists($manifest, 'getConfigCalls')) { $result = $manifest->getConfigCalls(); } return [ 'count' => count($result), 'calls' => $result ]; } public function getWidgets() { $widgets = [ 'config' => [ 'icon' => 'gear', 'widget' => 'PhpDebugBar.Widgets.ConfigWidget', 'map' => 'config.calls', 'default' => '{}' ] ]; $widgets['config:badge'] = [ 'map' => 'config.count', 'default' => 0 ]; return $widgets; } public function getAssets() { $name = $this->getName(); return [ 'base_path' => '/' . DebugBar::moduleResource('javascript')->getRelativePath(), 'base_url' => Director::makeRelative(DebugBar::moduleResource('javascript')->getURL()), 'css' => $name . '/widget.css', 'js' => $name . '/widget.js' ]; } } |