illusiard / audit
Yii2 Audit UI module (views + search) for illusiard/yii2-auditlog
Requires
- php: ^8.5
- ext-ctype: *
- ext-mbstring: *
- illusiard/yii2-auditlog: ^1.2
- yiisoft/yii2: ^2.0.55
Requires (Dev)
- phpunit/phpunit: ^13.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is not auto-updated.
Last update: 2026-10-17 21:28:31 UTC
README
UI-модуль для просмотра и анализа логов в Yii2-приложениях.
Пакет предоставляет готовый веб-интерфейс (GridView + модальные окна) для просмотра логов, записываемых через пакет illusiard/yii2-auditlog.
Модуль не зависит от конкретной реализации пользователей в проекте и полностью конфигурируется через настройки.
Возможности
- Просмотр audit log через
/audit - Поиск и фильтрация:
- entity type
- entity id (включая UUID)
- action
- user id (включая UUID)
- период дат
- Детальный просмотр записи в модальном окне
- Удобное отображение diff:
- подсветка изменений
- сворачиваемые длинные значения
- pretty JSON для массивов и объектов
- Отображение контекста выполнения
- Гибкая интеграция с пользовательской моделью
- RBAC / IP фильтрация доступа
- Использует стандартные виджеты Yii2 (GridView, Pjax, хелперы)
Требования
- PHP 8.5+
- Yii2 2.0.55+
illusiard/yii2-auditlog^1.2
Установка
composer require illusiard/yii2-audit
Пакет автоматически регистрирует модуль audit через Bootstrap.
Миграции
Миграции находятся в core-пакете:
php yii migrate --migrationPath=@illusiard/auditlog/migrations
Подключение модуля
Минимальная конфигурация не требуется — модуль доступен сразу по адресу:
/audit
Полная конфигурация
'modules' => [ 'audit' => [ 'class' => illusiard\audit\AuditModule::class, // Layout (null = layout приложения) // 'layout' => '@app/views/layouts/admin', // Класс модели пользователя (если не указан — выводится ID) 'userClass' => \common\models\User::class, // Строка-атрибут, массив строк-атрибутов или callable(User $model): string // 'userLabel' => 'username', // 'userLabel' => fn(User $u) => $u->name, // URL профиля пользователя, строка, массив или callable(User $model): string|array // 'userUrl' => fn(User $u) => ['/user/view', 'id' => $u->id], // 'userUrl' => '/user/view', // 'userUrl' => ['/user/view', '#' => 'profile'], // Ограничение доступа по IP // 'allowedIPs' => ['127.0.0.1'], // Ограничение доступа по ролям (RBAC) // 'roles' => ['admin'], ], ],
Отображение пользователя
Модуль не требует наличия FK или relation к таблице пользователей.
Алгоритм:
- Если
userClassзадан — загружается модель пользователя - Формируется label:
- через
userLabel(callable или имя атрибута) - либо fallback на ID
- через
- Если задан
userUrl— отображается кнопка со ссылкой на профиль
Если пользователь не найден или не сконфигурирован — отображается user_id.
Архитектура
- UI вынесен в отдельный пакет
- Не содержит бизнес-логики логирования
- Использует модели из
illusiard/yii2-auditlog - Не навязывает структуру User-модели
Лицензия
MIT