deen812 / model-change-recorder
Библиотека для отслеживания изменений в модели
dev-main
2025-04-02 09:59 UTC
Requires
- php: >=8.0
This package is auto-updated.
Last update: 2025-08-02 10:43:37 UTC
README
Установка
composer require deen812/model-change-recorder
Для копирования файла миграции в проект и запуска выполните:
php artisan vendor:publish --provider="Deen812\ModelChangeRecorder\ModelChangeRecorderServiceProvider" --tag="migrations" php artisan migrate
Использование
Добавление в метод модели
Для отслеживания редактирования модели достаточно добавить класс ModelChangeRecorderEvents
class Item extends Model { public static function boot() { parent::boot(); //Отслеживаем изменения модели self::observe(new ModelChangeRecorderEvents()); } }
Когда необходимо отслеживать изменения на уровне запросов, например:
//Событие модели update не будет вызвано Item::query()->update(['price' => rand(8,888)]);
Добавьте следующий код:
class Item extends Model { public static function boot() { parent::boot(); //Отслеживаем изменения модели self::observe(new ModelChangeRecorderEvents()); } //Теперь обновление через queryBuilder тоже будет отслеживаться public function newEloquentBuilder($query) { return new ModelChangeRecorderQueryBuilder($query); } }
Запуск воркера
php artisan queue:listen --queue=model_change_recorder