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

Form Laravel Package

adamwathan/form

A standalone PHP form builder with optional Laravel integration. Build forms through an expressive, fluent API with automatic data binding, validation error display, and customizable markup, keeping views clean and testable.

Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • A thin, view-layer HTML form builder — object wrappers that emit form markup (inputs, selects, labels, model binding). It is a convenience utility, not infrastructure, and sits at the outermost edge of the architecture.
  • It competes directly with capabilities now native to the framework: Blade components (Laravel 7+), old()/@error helpers, and Form Request validation. For any app on a modern Laravel version, this package is functionally redundant.
  • Primary real-world exposure is transitive, not deliberate: this is the rendering dependency behind adamwathan/bootforms (also abandoned). Most teams will discover it in the dependency tree rather than choose it.

Integration feasibility

  • Technically trivial to install: MIT-licensed, near-zero dependency footprint, small public surface. The license poses no legal or attribution risk.
  • The gate is version compatibility, not effort. Last release July 2017 places its constraints in the PHP 5.x/7.0 and Illuminate 5.x era. On PHP 8.1+/Laravel 10+, expect Composer resolution failure before any runtime question arises.
  • Archived status means no upstream response to either a CVE or a PHP minor-version break.

Technical risk

  • Security (highest): the core function of a form builder is emitting user-influenced HTML. Without a maintained escaper, any escaping gap or raw-HTML passthrough is an unpatched XSS vector. This must be audited, not assumed.
  • Supply chain: unmaintained packages are flagged by SCA/SCA-gated CI and by most customer security questionnaires. Expect to defend the exception or remediate it.
  • Upgrade blocking: because it constrains PHP/Illuminate versions, it can pin an entire application to an unsupported runtime — a compounding risk, not a one-time one.
  • Absence of a deprecation path: adoption creates an API surface we cannot retire on the vendor's schedule.

Key questions

  1. Is this a direct dependency or transitive (and is bootforms also present)? What constraint pulled it in?
  2. Does it actually resolve and run on our target PHP and Laravel versions? Verify empirically — do not infer from the description.
  3. What is our real usage surface: how many forms, how many field types, how many call sites?
  4. Does it escape output by default, and is there any raw-HTML bypass we rely on?
  5. Who owns the fork if we keep it, and what is the review date?
  6. What is the cost of replacement versus the cost of carrying an unmaintained dependency through the next major upgrade?

Integration Approach

Stack fit

  • Fits PHP 5.4–7.x applications and legacy Laravel (≤5.x) codebases using Bootstrap 3-era markup conventions.
  • Poor fit for PHP 8+, Laravel 9+, or any codebase already standardized on Blade components. Adopting it greenfield would be a step backward.

Migration path

  • New build: do not adopt. Use anonymous Blade components with @props, or a maintained form package if validation-aware binding is required.
  • Existing usage: (1) inventory every call site; (2) vendor the source under our own namespace at a pinned version; (3) wrap it behind a single adapter/facade so call sites depend on ours, not theirs; (4) rewrite call sites to Blade components form-by-form; (5) remove the dependency and the adapter together.

Compatibility

  • Expect illuminate/* constraints in the ~5.0 range. Options in order of preference: replace the dependency; otherwise fork and relax constraints; use Composer replace/provide only as a stopgap — it hides the problem from future maintainers.
  • The fork must be pinned to an exact version with a documented patch log, not a branch reference.

Sequencing

  1. Dependency audit and SBOM entry; confirm direct vs. transitive and identify the parent package.
  2. Runtime smoke test on the target PHP/Laravel pair in a throwaway branch.
  3. Decide fork-and-pin vs. replace; record the decision and owner.
  4. Freeze new usage — add a CI/lint rule blocking new imports of the namespace.
  5. Migrate highest-traffic, highest-visibility forms first; delete the dependency last, not first.

Operational Impact

Maintenance

  • Effectively zero upstream maintenance; every fix becomes ours. The codebase is small enough that this stays cheap, but it is not free and it is permanent until replaced.
  • Requires an explicit owner and a dated review entry in the dependency register. An unowned abandoned dependency is the failure case, not the dependency itself.

Support

  • No issue tracker activity, no releases since 2017, no security advisories will ever be issued. There is no escalation path — support is entirely internal.

Scaling

  • Negligible runtime cost: pure string assembly, no I/O, no caching layer, no per-request state. Not a performance concern at any realistic form volume.
  • The scaling risk is organizational: the number of applications and teams that accumulate a dependency on it. Cost grows with breadth, not traffic.

Failure modes

  • Most likely: Composer resolution failure during a framework upgrade — blocks CI and cascades into the whole release.
  • Runtime: fatal errors or TypeError on PHP 8 due to loosely-typed 2017-era signatures.
  • Security: silent XSS via escaping gaps or raw passthrough; no advisory will ever notify us.
  • Silent degradation: bugs surface as malformed markup or missing attributes, not exceptions — no telemetry will catch them.
  • Parent-package churn: an unrelated bootforms upgrade or removal can change behavior underneath us.

Ramp-up

  • Very low. Small, readable source with a shallow API; a mid-level engineer can own it in a day.
  • The investment is governance and migration effort, not learning curve — which is precisely why it gets deferred and should not be.
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.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core