. * * @package LibreNMS * @link http://librenms.org * @copyright 2018 Tony Murray * @author Tony Murray */ namespace LibreNMS\Util; use Illuminate\Database\Eloquent\Model as Eloquent; use Illuminate\Support\Str; class ModuleModelObserver { /** * Install observers to output +, -, U for models being created, deleted, and updated * * @param string $model The model name including namespace */ public static function observe($model) { $model = Str::start($model, '\\'); // discovery output (but don't install it twice (testing can can do this) if (! $model::getEventDispatcher()->hasListeners('eloquent.created: ' . ltrim('\\', $model))) { $model::observe(new ModuleModelObserver()); } } public function saving(Eloquent $model) { if (! $model->isDirty()) { echo '.'; } } public function updated(Eloquent $model) { d_echo("Updated data:", 'U'); d_echo($model->getDirty()); } public function created(Eloquent $model) { echo '+'; } public function deleted(Eloquent $model) { echo '-'; } }