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

Reform Laravel Package

ruwork/reform

ruwork/reform is a Laravel/PHP package for defining forms as reusable objects, mapping request data, validating input, and transforming it into typed values. It helps keep form handling organized, consistent, and testable.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

What the package is. Ruwork Reform is a form abstraction published by Ruvents (a Russian Symfony shop) that layers typed form definitions over Symfony's Form/Validator components, letting you describe forms as PHP classes/objects and map submitted data back into them. The value proposition is closer to "typed form objects" than to anything Laravel-specific.

Architecture fit. Poor for a Laravel codebase, even though it's installable via Composer. There is no service provider, facade, config publish, or Blade integration — it targets the Symfony Form event/type system directly. Laravel's native form story (FormRequest + Validator + Blade/Eloquent casting) and the modern DTO ecosystem (spatie/laravel-data, Livewire forms, Folio) already cover the "typed form object" need without importing a foreign abstraction. Adopting Reform means running two validation mental models in one codebase.

Integration feasibility. Low as-is. Last release 2018-07-26 implies php ^7.x and symfony/form ^3.4|^4.0 constraints. Any current Laravel (9/10/11) resolves Symfony 6/7 components, so Composer will hard-conflict; the only paths are a replace hack, a platform-req bypass, or a fork. Zero dependents and zero stars mean there is no observed integration recipe, no issue history to mine, and no community to ask. The MIT license makes forking legal, which is realistically the only route.

Technical risk.

Dimension Assessment
Abandonment High — 6+ years without a release or visible activity
Security exposure Medium-high — drags in EOL Symfony 3.4/4.x components with no patch path
Bus factor Effectively 1 (single org, no visible external contributors)
Correctness guarantees Unknown — no CI badge, no coverage signal, no downstream users to validate behavior
Idea value Moderate — the DSL ergonomics are genuinely nice, the code is not

The reported opportunity score of 8.32 is inconsistent with every adoption signal (0 stars, 0 dependents, 0 releases since 2018). Treat it as noise and decide on evidence, not the score.

Key questions to answer before any commitment.

  1. What exactly does composer.json require — symfony/form, symfony/validator, both, at which constraints?
  2. Is the differentiated value in the form-definition DSL or in the DTO mapping? Could laravel-data + FormRequest reproduce 80% of it?
  3. Who inside the org would own a fork, and is there an internal champion with a real use case?
  4. Are there runtime prerequisites (intl, mbstring, specific PHP extensions) that constrain deployment?
  5. Any attribution or copyright carve-outs in the source files that affect copying code into our monorepo?

Integration Approach

Stack fit. Assume Laravel 10/11 on PHP 8.2. Reform as a dependency: poor fit — it's a Symfony-first library. Reform as a design reference or vendored fork: workable. If the team is still on Symfony 4.4 LTS, the fit is still poor, because that branch is EOL.

Migration path options, ranked.

  1. Idea-only (recommended). Read the source, extract the typed-form-object and data-mapping patterns, rebuild them on Laravel's Validator and a DTO layer. Cost: 1–2 engineer-weeks. Full control, no external ownership.
  2. Vendor fork. Copy into packages/reform, retarget constraints to Symfony 6/7 and PHP 8.2, add a service provider and facade, add a test suite. Cost: 2–4 engineer-weeks plus permanent ownership.
  3. Adopt as dependency. Not viable without --ignore-platform-reqs hacks and a pinned legacy runtime. Reject.
  4. Fork and abandon. Worst of both worlds — ownership cost with no maintained path. Reject.

Compatibility checks to run first. Read composer.json for PHP and Symfony constraints; grep for PHP 8 breakage (dynamic properties, removed each()/create_function, implicit nullable parameter order, reserved words); run Rector's PHP 8.x ruleset and PHPStan level 5 over the source. This two-day spike tells you whether the fork is a week or a quarter.

Sequencing if option 1 or 2 is chosen.

  1. Timeboxed spike (2–3 days): clone, install under an isolated PHP 7.4 container, run the test suite, measure coverage and LOC.
  2. Decision gate: does the DSL justify indefinite internal ownership? Default answer is no; require a specific, written justification to proceed.
  3. Fork to an internal namespace, upgrade constraints, Rector to PHP 8.2, add CI, add Laravel provider/facade, write ~10 integration tests against real form submissions.
  4. Pilot on one low-risk internal admin form for two sprints.
  5. Publish to the internal package registry with a named owner, support policy, and an exit plan.

Operational Impact

Maintenance. We become the upstream. Every Laravel or Symfony major bump requires patching a package we did not write and do not fully understand. Budget 1–2 engineer-days per quarter steady state, spiking to 1–2 weeks per major framework upgrade — indefinitely.

Support. No vendor, no community, no CVE feed, no issue tracker activity. The internal Slack channel is the support desk, and the on-call rotation is the escalation path. Expect to write our own documentation; the upstream README is thin and the originating team is Russian-language.

Scaling. The form layer itself is not a throughput concern — forms are not where the request budget goes. The real scaling cost is dependency-graph friction: one pinned legacy Symfony component can block Composer resolution for the entire monorepo, which turns a small internal library into an org-wide upgrade tax.

Failure modes, by likelihood × impact.

  • Composer resolution failure on the next framework upgrade (high likelihood, high impact).
  • PHP 8 fatal errors from deprecated language features (medium, high).
  • Transitive CVE in EOL symfony/form 3.4/4.x with no patch path (medium, high).
  • Silent data-mapping bug causing validation bypass or field leakage — the hardest to detect and the most damaging to data integrity (low, severe).
  • Upstream repo deletion or namespace takeover — mitigated entirely by the fork, which is the argument for forking only if we commit.

Ramp-up. A mid-level developer needs 3–5 days to become productive in the DSL and considerably longer for undocumented internals. No candidate will arrive knowing this package, so every hire is a net training cost. The bigger risk is knowledge concentration: if the original adopter leaves, the fork becomes an orphan inside the org as well.

Recommendation. Do not add ruwork/reform as a dependency. Harvest the design ideas — typed form definitions and clean DTO mapping are worth stealing — and implement them on Laravel primitives where the team already has expertise. If the spike surfaces a genuinely compelling capability, fork it with a named owner, a written support policy, and a documented exit plan before the first production form ships.

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.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings