Download the PHP package ensi/laravel-auditing without Composer
On this page you can find all versions of the php package ensi/laravel-auditing. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package laravel-auditing
Laravel Auditing
Opiniated fork of owen-it/laravel-auditing
Установка
composer require ensi/laravel-auditing
php artisan vendor:publish --provider="Ensi\LaravelAuditing\LaravelAuditingServiceProvider"
- Добавьте в
config/app
класс провайдераEnsi\LaravelAuditing\LaravelAuditingServiceProvider::class
Использование
По-умолчанию никакая история изменения для моделей не сохраняется.
Чтобы включить логирование для конкретной модели надо добавить ей трейт SupportsAudit
и интерфейс Auditable
В случае, если мы меняем данные дочерних с логической точки зрения моделей и хотим чтобы в истории это изменение проходило под родительской моделью, необходимо в транзакции до изменения данных задать корневую сущность (т.е модель).
Делается это через фасад Transaction
или менеджер \\Ensi\\LaravelAuditing\\Transactions\\ExtendedTransactionManager
Для добавления в историю данных о том кто произвел изменения (конкретный пользователь, или, например, консольная команда) опять же нужно это сделать до изменения данных, но уже через фасад Subject
или инъекцию \\Ensi\\LaravelAuditing\\Resolvers\\SubjectManager
Субъект не отвязывается после завершения транзакции.
Его можно отвязать вручную вызовом метода Subject::detach()
.
При обработке http запросов, можно задавать субъекта в middleware. В консольных командах и обработчиках очереди событий переназначать в процессе выполнения.
Субъектом может являться любая сущность, поддерживающая интерфейс \Ensi\LaravelAuditing\Contracts\Principal
.
Если субъектом является выполняемое задание, например, импорт из файла, то оно может возвращать идентификатор
пользователя, создавшего задание в методе getUserIdentifier()
, а в качестве наименования возвращать имя
импортируемого файла.
В модели пользователя методы getAuthIdentifier()
и getUserIdentifier()
возвращают один и тот же идентификатор.
Также в отличии от исходного пакета в истории сохраняются не только измененные поля, но и полное состояние объекта модели на момент изменения.
Contributing
Testing
- composer install
- npm i
- composer test
Лицензия
The MIT License (MIT).
All versions of laravel-auditing with dependencies
illuminate/console Version ^8.0|^9.0|^10.0
illuminate/database Version ^8.0|^9.0|^10.0
illuminate/filesystem Version ^8.0|^9.0|^10.0
illuminate/support Version ^8.0|^9.0|^10.0
ramsey/uuid Version ^4.0