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

Technical Evaluation

Architecture fit. Unchanged in substance: this remains a Symfony bundle bridging Symfony Messenger and the Symfony Form component, not a Laravel package. v1.5.0 narrows that scope further by dropping SimpleBus, leaving Messenger as the sole supported bus. Architecturally that is a mild positive — one bridge to maintain instead of two, and one fewer abstraction whose semantics can drift — but it also removes the only migration path the bundle offered to legacy Symfony applications still dispatching through SimpleBus. For the presumed Laravel stack the verdict is unchanged: no native Form component, no Messenger bus, so adoption means importing symfony/form and hand-bridging the bus. Still a poor architectural fit and best treated as not applicable.

Integration feasibility. No functional changes in this release — no new form-generation capabilities, no new type support, no override mechanism. Integration effort in a Symfony app is exactly as before: install, register, rely on autoconfiguration, inject the generated type, dispatch. The same degradation curve applies the moment commands contain nested DTOs, collections, enums, uploads, or custom validation. The one feasibility change is a hard floor raise to PHP 8.3, which is trivial for greenfield services and a real blocker for anything lagging.

Technical risk. Re-rated slightly downward on maturity, upward on release discipline.

  • Positive: the release shows genuine CI investment — improved CI, a PHPUnit 13 test target, README hygiene. That is the first concrete evidence of test infrastructure rather than a nominal "release date implies alive" signal, and it partially answers the earlier open question about what is actually CI-tested versus merely declared.
  • Negative: v1.5.0 ships two breaking changes under a minor version number. Dropping PHP 8.2 and removing SimpleBus support are both consumer-breaking, yet neither warrants a major bump under semver. That is a material signal for anyone relying on automated dependency tooling to distinguish safe from unsafe upgrades.
  • Negative: PHP 8.2 remains in security support until the end of 2026, so the floor raise is ahead of the ecosystem, not behind it. PHPUnit 13 additionally implies a PHP 8.4 development environment, which suggests the maintainer's tested matrix has moved further forward than the declared support floor — worth confirming rather than assuming.
  • Unchanged: 3 stars, 0 dependents, single-maintainer bus factor, LGPL-3.0 copyleft review gate.

Key questions.

  • What is the declared and CI-tested Symfony version matrix? The release notes are silent, and dropping PHP 8.2 makes the Symfony 6.4 LTS pairing ambiguous.
  • Is the PHP floor genuinely 8.3, or 8.4 given the PHPUnit 13 dev dependency? Does the runtime constraint match the CI matrix?
  • Is there a semver policy? Two breaking changes in a minor release is the single most operationally consequential fact in this changelog.
  • What is the recommended path for SimpleBus users — pin 1.4.x indefinitely, or is a shim planned?
  • Unchanged from prior review: enum/nullable/collection/nested-object handling, #[Assert\*] and validation-group propagation, per-message override without forking, convention-versus-explicit mapping, and test coverage/support window.

Integration Approach

Stack fit. Green for Symfony 6.x/7.x apps on Messenger + Forms with PHP ≥ 8.3 and a meaningful volume of simple command DTOs. Amber for Symfony apps on Messenger without Forms. Amber-to-red for any application still on SimpleBus — those must remain pinned to 1.4.x, and the bundle's roadmap now diverges from them permanently. Red for PHP 8.2 estates until they upgrade, and red for Laravel and for copyleft-prohibited organizations. The headline TPM read is unchanged: for a Laravel-primary portfolio this is not applicable unless a Symfony service is explicitly in scope.

Migration path. Still additive relative to hand-written form types, but the upgrade to 1.5.0 is no longer a drop-in. Required pre-work: confirm PHP ≥ 8.3 across runtime and build images, and grep for SimpleBus references (SimpleBus, CommandBus, message-bus service wiring) before bumping. If either check fails, pin 1.4.x explicitly rather than floating the constraint. Once on 1.5.0, adoption remains incremental per command, with hand-written types as the fallback.

Compatibility. Four axes now, not three: (1) Symfony major/minor against your LTS target, (2) PHP floor of 8.3 plus whatever the PHPUnit 13 dev toolchain implies, (3) absence of SimpleBus in your dispatch layer, (4) conflicts with your own FormTypeGuesser implementations, form.type_extension registrations, and named-bus/default-validation-group assumptions. Only axis (3) is documented by this release; the rest still require verification.

Sequencing. (1) Inventory: PHP versions in runtime and CI, and any SimpleBus usage — this gates everything. (2) Determine whether you are upgrading an existing 1.4.x install or evaluating fresh; if upgrading, treat it as a breaking change and read the diff, not the version number. (3) Sandbox spike with three representative commands (simple, nested DTO, enum) to re-expose reflection limits. (4) License review sign-off. (5) Pilot in one bounded context with low-blast-radius commands. (6) Measure boilerplate actually saved per command — if it is a few lines, stop. Do not sequence this ahead of a Messenger/Forms standardization effort.

Operational Impact

Maintenance. Still the dominant cost, and this release sharpens it. The CI improvements are welcome and reduce the odds of silent breakage, but a 3-star, 0-dependent, single-maintainer package remains your team's problem. The new operational rule is pin exactly and read every changelog: minor-version bumps in this project can carry breaking changes, so ^1.4 constraints and auto-merge bots are unsafe. Treat as an internal fork candidate from day one, with the fork decision now easier because the surface area shrank to Messenger-only.

Support. Unchanged: no vendor, no SLA, GitHub issues at maintainer discretion. The removal of SimpleBus narrows the user base further, which if anything reduces the pool of people who will hit and report the same bugs you do.

Scaling. Unchanged. Runtime cost is negligible — reflection and form-type construction are per-request and cacheable. The real constraint is combinatorial: distinct command shapes and their edge cases grow with the domain, while the generator's coverage does not. What works for 10 commands may not work for 200.

Failure modes. (a) Silent mis-mapping — an unresolvable property degrades to TextType and fails later in the handler. (b) Convention drift — namespace moves break auto-discovery with no compile-time signal. (c) Validation gap — constraints not propagated to the form. (d) Symfony upgrade breakage via changed type-guesser signatures. (e) Form-type name collisions at scale. (f) New: upgrade-time breakage from this release — an app on PHP 8.2 fails at install/resolve, and a SimpleBus app fails at container compile or with class-not-found errors after a successful composer update. (g) New: automated dependency bots merging a semver-minor bump into an unprepared application, since neither the version number nor the changelog framing signals a breaking change.

Ramp-up. Low for Symfony developers on the API surface — it is a thin convenience over Forms and Messenger, both already familiar. The cost is learning its limits, and that now includes tracking its release semantics: which versions your PHP and bus choice pin you to, and why a minor bump deserves a major-bump review. Capture both in an ADR — the CI-tested Symfony/PHP matrix, the SimpleBus exclusion, the exact-pin policy, and the hand-written-form fallback — before any wider rollout.

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.
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk