Viewing file: LivewireCollector.php (2.95 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Barryvdh\Debugbar\DataCollector;
use DebugBar\DataCollector\DataCollector; use DebugBar\DataCollector\DataCollectorInterface; use DebugBar\DataCollector\Renderable; use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Contracts\View\View; use Illuminate\Http\Request; use Illuminate\Support\Arr; use Illuminate\Support\Fluent; use Illuminate\Support\Str; use Livewire\Livewire; use Livewire\Component;
/** * Collector for Models. */ class LivewireCollector extends DataCollector implements DataCollectorInterface, Renderable { public $data = [];
public function __construct(Request $request) { // Listen to Livewire views Livewire::listen('view:render', function (View $view) use ($request) { /** @var \Livewire\Component $component */ $component = $view->getData()['_instance'];
// Create a unique name for each component $key = $component->getName() . ' #' . $component->id;
$data = [ 'data' => $component->getPublicPropertiesDefinedBySubClass(), ];
if ($request->request->get('id') == $component->id) { $data['oldData'] = $request->request->get('data'); $data['actionQueue'] = $request->request->get('actionQueue'); }
$data['name'] = $component->getName(); $data['view'] = $view->name(); $data['component'] = get_class($component); $data['id'] = $component->id;
$this->data[$key] = $this->formatVar($data); });
Livewire::listen('render', function (Component $component) use ($request) { // Create an unique name for each compoent $key = $component->getName() . ' #' . $component->getId();
$data = [ 'data' => $component->all(), ];
if ($request->request->get('id') == $component->getId()) { $data['oldData'] = $request->request->get('data'); $data['actionQueue'] = $request->request->get('actionQueue'); }
$data['name'] = $component->getName(); $data['component'] = get_class($component); $data['id'] = $component->getId();
$this->data[$key] = $this->formatVar($data); }); }
public function collect() { return ['data' => $this->data, 'count' => count($this->data)]; }
/** * {@inheritDoc} */ public function getName() { return 'livewire'; }
/** * {@inheritDoc} */ public function getWidgets() { return [ "livewire" => [ "icon" => "bolt", "widget" => "PhpDebugBar.Widgets.VariableListWidget", "map" => "livewire.data", "default" => "{}" ], 'livewire:badge' => [ 'map' => 'livewire.count', 'default' => 0 ] ]; } }
|