illusiard / auditlog
Audit log extension for Yii2
v1.2.0
2026-09-19 20:38 UTC
Requires
- php: ^8.5
- yiisoft/yii2: ^2.0.55
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is not auto-updated.
Last update: 2026-10-17 20:57:55 UTC
README
Модуль логирования и аудита для Yii2-приложений.
Позволяет логировать:
- создание, изменение и удаление ActiveRecord-моделей;
- diff изменённых полей;
- произвольный контекст (route, IP, user-agent и т.д.);
- бизнес-события (через прямой вызов логгера).
Поддерживает подключение через Behavior и не требует наследования моделей.
Возможности
- ✅ Логирование
create / update / delete - ✅ Diff только изменённых полей
- ✅ Контекст выполнения (route, IP, user agent и т.д.)
- ✅ Автоматическое создание
entity_typeиaction, если их нет - ✅ Кэширование справочников
- ✅ Bootstrap-автоподключение
- ✅ Не зависит от имени компонента в конфиге
- ✅ Готов к использованию как Composer-пакет
Требования
- PHP 8.5+
- Yii 2.0.55+
Установка
composer require illusiard/yii2-auditlog
После установки модуль автоматически подключается через Bootstrap.
Однако для проверки и подтягивания пользователей, нужно добавить в конфиг с User-классом:
use illusiard\auditlog\components\AuditLogger; [ 'components' => [ 'auditlog' => [ 'class' => AuditLogger::class, 'userClass' => app\models\User::class, ] ], ]
Миграции
php yii migrate --migrationPath=@illusiard/auditlog/migrations
Подключение AuditBehavior
use illusiard\auditlog\components\AuditBehavior; class Order extends ActiveRecord { public function behaviors(): array { return [ 'audit' => [ 'class' => AuditBehavior::class, 'entityTypeCode' => 'order', ], ]; } }
Контекст
'context' => function () { return [ 'route' => Yii::$app->requestedRoute, 'ip' => Yii::$app->request->userIP, 'userAgent' => Yii::$app->request->userAgent, ]; },
Ручное логирование
use illusiard\auditlog\components\AuditLogger; AuditLogger::getInstance()->log( entityTypeCode: 'order', entityId: 42, actionCode: 'publish', diff: null, context: ['reason' => 'manual publish'] );
Лицензия
MIT