pbweb/audit-bundle
Symfony bundle for auditing Doctrine entities: it automatically tracks create, update, and delete changes through Doctrine listeners, recording who changed what and when. Configurable storage and a simple API make it easy to review entity change history in your application.
Architecture fit. The core mismatch is the first thing to flag: pbweb/audit-bundle is a Symfony bundle, not a Laravel package. Symfony bundles rely on Bundle classes, DependencyInjection extensions, YAML/XML service configuration, and compiler passes — none of which exist in Laravel's service-provider lifecycle. The concept (an append-only audit trail capturing who changed what, when) is stack-agnostic and valuable; the delivery mechanism is not portable. Treat this as a reference implementation of an audit pattern, not a dependency. Secondary architectural concern: bundles of this vintage typically hook Doctrine via prePersist/onFlush event subscribers, which couples audit capture to ORM flush semantics — a coupling Laravel's Eloquent observers do not share.
Integration feasibility. Low, and not primarily because of the framework gap. The package has 1 star and 0 dependents, which means no production usage signal, no downstream issue reports, no community-vetted edge cases, and no evidence of version currency. There is no stated support matrix for PHP or Symfony versions in the metadata provided; an audit bundle that predates Symfony 5/6 or PHP 8.1 is unlikely to run at all on a modern runtime. The MIT license is the one clear positive — it permits forking, porting, and vendoring without legal friction.
Technical risk. High, concentrated in four areas: (1) abandonment — single-maintainer, near-zero-adoption packages have no bus-factor mitigation; (2) security surface — an audit log is a high-value target (it records actor identity and change history) and this package has no discoverable CVE/advisory process and no dependents to surface one; (3) data governance — audit tables frequently capture PII in before/after diffs, and there is no documented redaction or retention policy; (4) transactional coupling — if audit writes share the business transaction, a logging failure can roll back or block the business operation, and if they don't, you get silent gaps in a trail that is likely being relied on for compliance.
Key questions for the maintainer (or the source, if no maintainer responds).
Stack fit. Poor for a Laravel codebase. The realistic options, in order of preference:
owen-it/laravel-auditing or spatie/laravel-activitylog. Both have meaningful adoption, active maintenance, and documented Laravel version support. This is the default recommendation.Migration path. There is no migration from this package to Laravel because there is no integration to migrate. The path is: source review → pattern extraction → Laravel-native implementation → backfill only if historical audit data exists elsewhere. If audit data already lives in a Symfony service running this bundle, the integration becomes a read-side API contract rather than a code dependency.
Compatibility. Unknown and presumed stale. The bundle naming convention (*-bundle) is Symfony 2/3/4-era; Laravel 10/11 require PHP 8.1+ and current Symfony components only as transitive HTTP/mail dependencies. Assume incompatibility until the composer.json constraints are read directly.
Sequencing.
composer.json and the event subscriber — an hour, and it settles most open questions.Maintenance. Effectively you own it on day one. With one star and zero dependents, upstream is not a support channel — it is a source file. Budget for tracking PHP and framework upgrades yourself, and for a fork if upstream goes dark (which, given the adoption numbers, is the base case rather than the risk case).
Support. None. No SLA, no triage, no documented escalation. If audit logging is tied to a compliance obligation, an unsupported dependency in that path is a finding in any external audit or vendor review. This is the single strongest argument against adoption.
Scaling. Audit tables are among the fastest-growing in most systems — one row per change, forever. Two concerns: write volume (synchronous capture in the request path adds latency to every mutation and becomes a bottleneck under load; a queued writer is usually required) and unbounded growth (partitioning, archival, and retention policy must be designed in, not bolted on). Neither is likely addressed by a package of this size.
Failure modes.
Ramp-up. Reading the code is cheap; a competent PHP engineer understands it in a day. The expensive ramp is organizational: getting the team to reason about Symfony bundle conventions, and getting legal/security comfortable with an unaudited dependency in a compliance-adjacent path. For a team already fluent in Laravel, porting the pattern is faster than learning the bundle.
Bottom line. Do not integrate this package into a Laravel codebase. Its value here is as a free (MIT) architectural reference for audit-trail design, not as a dependency. Recommend a maintained Laravel-native alternative or a small in-house build, and require a source review plus a compliance sign-off before any audit-trail decision is finalized.
How can I help you explore Laravel packages today?