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

Bus Form Bundle Laravel Package

pugx/bus-form-bundle

PugxBusFormBundle integrates Symfony Forms with a command/message bus, letting form submissions be dispatched as commands and handled by dedicated bus handlers. It keeps controllers thin, separates form handling from business logic, and enables a cleaner, more testable workflow for Symfony applicati...

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Command-bus feature velocity. If the product runs on Symfony Messenger with a command/query model, this bundle auto-derives a Symfony Form from the message class, binds submission and validation, and dispatches the message. That removes the repetitive “FormType + controller + validate + dispatch” scaffolding for every new action — directly affecting how fast we can ship command-driven features (admin actions, workflow triggers, back-office operations). v1.5.0 narrows this to Symfony Messenger only: the SimpleBus adapter has been removed, so the velocity story now applies to exactly one bus implementation rather than “whatever message bus you already have.”
  • Build vs. borrow for internal tooling. For a roadmap item like “admin CRUD over commands” or “internal ops console,” this is a borrow-candidate. The realistic alternative is an in-house AbstractMessageFormController (~1–3 days to write and test, plus ongoing ownership). The decision is whether the bundle’s convention is close enough to ours to adopt, or whether the idea is worth copying. v1.5.0 slightly strengthens the copy-the-pattern option: the maintainer has now demonstrated willingness to delete integrations outright, which means the smallest stable surface we can depend on is narrower than before.
  • Architecture direction. It nudges toward message-driven UI surfaces (one form per command) versus bespoke controllers per screen. That’s a product-architecture bet worth making explicitly, because it shapes how we model new actions later.
  • Use cases that fit: internal admin panels where each row action is a command, rapid prototyping of command endpoints, teams already comfortable with the “DTO as form data” pattern — and now, specifically, teams on Symfony Messenger and PHP 8.3+.

When to Consider This Package

  • Stack check first (two gates, both refreshed by v1.5.0). Despite being filed under “Laravel/PHP package,” this is a Symfony bundle (PUGXBusFormBundle) with no Laravel integration — on a Laravel codebase this is a no-go; replicate the pattern with Laravel’s bus/action conventions instead. Second gate: it now targets Symfony Messenger only. If we are on SimpleBus, or on any other bus implementation, v1.5.0 removes our path — we would be stranded on 1.4.x or forced to fork the adapter.
  • Platform baseline is now PHP 8.3+. The release drops PHP 8.2. If our runtime or any service we plan to touch is still on 8.2, a PHP upgrade becomes a prerequisite cost that must be booked separately from any evaluation spike — do not fold it into the 1–2 day estimate.
  • Adopt when: many small command endpoints share nearly identical form handling, the team accepts Symfony Form’s coupling to DTOs, we are already committed to Symfony Messenger, and we want server-rendered forms rather than a JSON API.
  • Look elsewhere when: the UX needs to be hand-tuned (auto-generated forms are a default, not a design system), the product is API-first, the org has a policy against LGPL-3.0 dependencies (a real procurement/legal gate in some enterprises), or we need bus-agnostic integration.
  • Vendor-risk caution — now with a concrete data point. Still a small, single-maintainer project with negligible ecosystem validation, and v1.5.0 shipped breaking changes (PHP floor raised, SimpleBus dropped) on a minor version bump. Whatever the maintainer’s reasoning, that is a semver signal: do not use caret/range constraints, pin exact versions, and read changelogs before any upgrade. Plan the exit as before: fork (LGPL permits it, provided we keep it as a separate, compliant library) or absorb the pattern into our own code. Treat it as “borrow an idea, optionally the code,” never as a platform standard.
  • Mitigating signal: the same release modernizes CI and moves tests to phpUnit 13, and the README/badges were refreshed. That is real, if modest, evidence of active maintenance — the project is being kept healthy, just not grown.

How to Pitch It (Stakeholders)

  • Executives: a zero-license-cost accelerator for our command/query layer, still narrowly scoped. The exposure remains maintenance risk rather than money or lock-in, and the latest release did not add features — it tightened the platform requirements (PHP 8.3+, Symfony Messenger only) and cleaned up the build. The ask is unchanged: a short, timeboxed spike, not a commitment. Low downside, modest upside.
  • Engineering: it collapses form creation, validation, and dispatch into a convention — exactly the boilerplate that makes command endpoints tedious. The 1.5.0 changes are hygiene plus one removal: Messenger is now the only supported bus, and PHP 8.2 is no longer supported. Propose a 1–2 day spike on one existing Messenger command, on a PHP 8.3 service, pinned to an exact version; if it holds, adopt it behind a thin internal abstraction so it can be swapped or forked later.
  • State the caveats plainly: Symfony-only (not Laravel), Messenger-only as of 1.5.0, PHP 8.3+, LGPL-3.0, negligible community adoption, and a maintainer willing to make breaking changes in a minor release. That combination makes it a tactical productivity tool for a Symfony team, not a strategic dependency — and we should say so before anyone assumes otherwise.
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.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums