nowo-tech/audit-kit-bundle

Symfony + Doctrine bundle for automatic created/updated timestamps and blame fields on opt-in entities.

Maintainers

Package info

github.com/nowo-tech/AuditKitBundle

Type:symfony-bundle

pkg:composer/nowo-tech/audit-kit-bundle

Transparency log

Fund package maintenance!

HecFranco

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.1.0 2026-07-14 13:53 UTC

This package is auto-updated.

Last update: 2026-07-14 14:01:01 UTC


README

CI Packagist Version Packagist Downloads License PHP Symfony GitHub stars Coverage

Found this useful? Install from Packagist and give the repo a star on GitHub.

Symfony + Doctrine bundle for automatic auditing fields on any opt-in entity:

Field Set on
createdAt / updatedAt prePersist + preUpdate (timestamps only on update)
createdBy / updatedBy When an authenticated user is present (nullable in CLI)

Complements nowo-tech/user-kit-bundle (account state / presence) and nowo-tech/auth-kit-bundle (auth flows).

Features

  • Optional traits: TimestampableTrait, BlameableTrait, AuditableTrait
  • Doctrine entity listener (prePersist / preUpdate)
  • Named profiles — separate field mapping and flags per user entity (User, Admin, …) with O(1) class resolution
  • Configurable property names and user_class
  • Per-entity opt-out via #[Auditable(enabled: false)]
  • Guest / CLI safe — blame fields stay null without errors

Requirements

  • PHP 8.2+
  • Symfony 7.4 | 8.x
  • Doctrine ORM 2.15+ | 3.x

Quick start

composer require nowo-tech/audit-kit-bundle
# config/packages/nowo_audit_kit.yaml
nowo_audit_kit:
    default_profile: default
    profiles:
        default:
            user_class: App\Entity\User

The legacy flat layout (user_class at root) remains supported. See Configuration.

use Nowo\AuditKitBundle\Model\AuditableTrait;

class Article
{
    use AuditableTrait;
}

Development

make up
make test-coverage
make release-check

Demo

make -C demo/symfony8 up   # http://localhost:8013 (default PORT)

Each demo persists entities with automatic audit columns (see demo/symfony8/src/Entity/Article.php and LegacyRecord.php for audited vs opt-out). See demo/symfony8/README.md and docs/DEMO-FRANKENPHP.md for FrankenPHP setup (including worker mode for production).

Tests and coverage

  • Tests: PHPUnit (unit + integration)
  • PHP: 100%
  • TS/JS: N/A
  • Python: N/A

Compatibility: PHP 8.2+ · Symfony 7.4 / 8.0 / 8.1 (CI matrix).

License

MIT — see LICENSE.

Documentation

Additional documentation

Package

  • Composer: nowo-tech/audit-kit-bundle
  • Config root: nowo_audit_kit