%PDF- %PDF-
Direktori : /var/www/pjc/vendor/laravel/telescope/src/Watchers/ |
Current File : /var/www/pjc/vendor/laravel/telescope/src/Watchers/ModelWatcher.php |
<?php namespace Laravel\Telescope\Watchers; use Illuminate\Support\Str; use Laravel\Telescope\FormatModel; use Laravel\Telescope\IncomingEntry; use Laravel\Telescope\Telescope; class ModelWatcher extends Watcher { /** * Register the watcher. * * @param \Illuminate\Contracts\Foundation\Application $app * @return void */ public function register($app) { $app['events']->listen($this->options['events'] ?? 'eloquent.*', [$this, 'recordAction']); } /** * Record an action. * * @param string $event * @param array $data * @return void */ public function recordAction($event, $data) { if (! Telescope::isRecording() || ! $this->shouldRecord($event)) { return; } $model = FormatModel::given($data[0]); $changes = $data[0]->getChanges(); Telescope::recordModelEvent(IncomingEntry::make(array_filter([ 'action' => $this->action($event), 'model' => $model, 'changes' => empty($changes) ? null : $changes, ]))->tags([$model])); } /** * Extract the Eloquent action from the given event. * * @param string $event * @return mixed */ private function action($event) { preg_match('/\.(.*):/', $event, $matches); return $matches[1]; } /** * Determine if the Eloquent event should be recorded. * * @param string $eventName * @return bool */ private function shouldRecord($eventName) { return Str::is([ '*created*', '*updated*', '*restored*', '*deleted*', ], $eventName); } }