Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Formlogger Bundle Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Stack-fit gate before any build/buy call. The first product decision is a rejection filter: 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.
  • Build vs. buy vs. borrow. The capability — capturing form validation failures and submitted payloads — is a genuine, recurring product need across checkout, registration, onboarding, and lead-capture flows. But the buy option is weak here (10 stars, 0 dependents, composite score 0.11, no releases, no security process, EOL framework). The defensible decision is build: a small owned Laravel listener on ValidationException plus a redacted structured log channel, estimated at 1–2 days including tests.
  • Roadmap prioritization from form-failure data. Logged validation errors quantify where users actually abandon flows, which converts anecdote ("support says the signup form is broken") into evidence for UX and validation-message work. This is a real input to quarterly prioritization — the value is in the telemetry, not the package.
  • Support and QA cost reduction. Structured form-failure records shorten reproduction cycles for customer-support tickets and reduce escalations to engineering on hard-to-reproduce validation bugs. PMs can frame this as a support-cost lever with a measurable baseline (tickets per form per month).
  • Compliance scoping decision. Logging submitted form data is a PII/secret-capture surface by definition — passwords, tokens, payment fields, health/financial data. Adopting any implementation of this capability requires an explicit decision on allowlist-based field capture, redaction, retention window, and access control before data starts flowing. This is a PM-owned decision, not an engineering detail.
  • Observability roadmap placement. Decide whether form-failure visibility belongs in the logging stack (Monolog channel), the error-tracking stack (Sentry), or a product analytics/audit table. Each maps to a different owning team and a different level of investment; picking one prevents three teams from building three variants.

When to Consider This Package

Consider it only if all of the following are true:

  • The target application is a legacy Symfony 2.x service still in maintenance mode — not Laravel, not Symfony 5/6/7.
  • The need is diagnostic logging, urgent, and short-lived — a quick form-error listener to unblock triage.
  • The team is willing to vendor or fork the code and own patching, including its Symfony 2 transitive dependencies, indefinitely.
  • A redaction policy already exists and the team can enforce field-level allowlisting on top of the bundle's capture behavior.

Look elsewhere — or build — when:

  • The stack is Laravel. There is no adapter path: Laravel has no persistent 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.
  • The stack is modern Symfony (5/6/7). Write a form-event subscriber and route it to your existing observability platform.
  • You need PII redaction, retention controls, structured logs, sampling, or vendor support. The bundle offers none of these as evidenced capabilities.
  • You require a maintained dependency with a security-response process. Zero dependents means no community fallback and no upstream fix path for a CVE in the Symfony 2 chain.
  • The real requirement is analytics or audit, not debugging. An audit trail needs an owned, structured, queryable store — not a log file.
  • The form lives on a conversion-critical path. A failure inside the bundle's form-event subscriber can surface as a 500 instead of a validation response. That is the worst possible failure mode for checkout or signup.

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.

How to Pitch It (Stakeholders)

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."

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle