shark/formlogger-bundle
A Symfony bundle for logging form submissions. The Shark FormLogger Bundle helps developers capture and store submitted form data for auditing, debugging, and analysis, with straightforward integration into existing Symfony applications and configurable logging behavior.
shark/formlogger-bundle is a Symfony 2 bundle, not a Laravel package. Any roadmap item that cites it as a Laravel dependency should be re-scoped or closed. PMs should treat this as a mis-scoped scanner suggestion rather than an engineering input.ValidationException plus a redacted structured log channel, estimated at 1–2 days including tests.Consider it only if all of the following are true:
Look elsewhere — or build — when:
FormInterface object graph and no post-submit form event, so the bundle's core mechanism has no meaning in an Illuminate request lifecycle. Installing it pulls symfony/form, symfony/http-kernel, symfony/dependency-injection, and symfony/event-dispatcher in alongside Illuminate — duplicate abstractions and version conflicts for what is a few dozen lines of native code.Escape hatch worth naming explicitly: if inspection of DependencyInjection/Configuration.php and the event listener shows the bundle is a thin wrapper that calls $logger->info(...) with $form->getErrors(), the entire dependency can be reproduced in roughly thirty lines. In that case, the correct PM decision is to skip adoption and close the request.
For executives: A dependency request came in for shark/formlogger-bundle, a small Symfony 2 utility that logs form errors and submitted data. It addresses a real operational need — faster debugging of broken forms and better visibility into where customers abandon flows — but it is not usable in our Laravel stack, targets a framework that reached end of life in 2019, and has no meaningful adoption (10 stars, 0 dependents, no releases, no maintainer, no security process). Recommendation: do not adopt. Approve a small native alternative instead, scoped at 1–2 engineering days, and record the underlying requirement as satisfied. The product value lives in the capability — form-failure observability — not in this package.
For engineering: Treat this as greenfield, not a migration — there are no dependents and no existing adoption to unwind. The native implementation is a ValidationException handler or global middleware, a FormRequest trait that emits a structured event on validation failure, and a dedicated JSON log channel with an explicit field allowlist. Add try/catch so logging can never influence the response, plus volume caps or sampling, since full payload capture on high-traffic forms can materially inflate log storage and latency. If a team has already prototyped with the bundle, replacement is a straight swap of logging call sites; the only open question is whether to retain historical log records.
For security and compliance: The bundle's entire purpose is persisting raw form data plus error messages — a default-on PII and secret-exposure surface with no evidence of redaction. Any implementation we ship must capture on an allowlist basis, never a denylist, and must have a defined retention window and access-control model before the first record is written. Log-injection and unbounded-record-size risks also need mitigation through structured formatting and size caps.
For the requesting team: Confirm which requirement is actually being solved — error-rate visibility, a debugging aid, or an audit trail. These map to three different solutions (log channel plus validation listener, Sentry or Telescope, or an owned audit table), and none of them is this bundle. If a genuine Symfony 2 service exists in the estate, revisit with that specific service named; otherwise close the dependency request as "not applicable to our stack."
How can I help you explore Laravel packages today?