- Is corleonis/formmetadata a Laravel package or a Symfony bundle?
- The package description presents it as a Laravel library, but the repository is FormMetadataBundle, a Symfony bundle built on the Symfony Form component and Doctrine entity metadata. There is no Laravel service provider, no Eloquent integration, and no Blade or Livewire surface. Confirm which framework you are actually targeting before evaluating it further.
- How do I install corleonis/formmetadata in a Laravel application?
- There is no documented Composer install path into a Laravel app and no auto-discovered service provider, so a require statement will not wire up routes, validation rules, or view rendering. The repository metadata also publishes no composer.json constraints, license, or last-commit date. Treat it as prior art rather than a drop-in dependency.
- Does the package support Laravel 10, 11, or 12?
- No supported Laravel version can be confirmed. The artifact is a Symfony bundle with no Laravel-facing code, and even its Symfony and PHP constraints are unpublished. Plan a hands-on compatibility spike before assuming anything runs on modern PHP 8.2 or later.
- What problem does declarative form metadata actually solve?
- It moves field definitions, labels, validation rules, and layout options out of controllers, FormRequests, and Blade templates and into dedicated PHP classes. That gives a single source of truth, so rendering, validation, and API output stay consistent as forms change. It also makes form configuration testable and version-controlled.
- Can I reuse the metadata definitions for Laravel validation rules and Blade output?
- Only by building the bridge yourself. A Laravel port needs metadata declared as PHP 8 attributes, a registry resolving class to field definitions, a builder translating definitions into validation rules and form or Blade output, and a generic controller that authorizes and persists against an explicit allowlist. That is a small internal library measured in days rather than weeks.
- Is corleonis/formmetadata maintained and safe for production?
- The signals point to no. The repository shows zero stars, zero dependents, no visible production usage, and no published test-coverage or maintenance data. Unreviewed reflection and metadata resolution sitting in the request path of admin CRUD is a high-privilege supply-chain exposure.
- Does it use PHP 8 attributes or docblock annotations?
- The original bundle is annotation-era, relying on docblock annotations that the wider ecosystem is retiring, and doctrine/annotations 2.x removed the reader entirely. Any Laravel reimplementation should declare metadata with PHP 8 attributes instead. Verify the mechanism before assuming modern PHP support.
- What are the best Laravel alternatives for declarative form building?
- Laravel has no native mechanism that reads class-level metadata to drive forms, so there is no direct equivalent. The nearest analogues are schema-driven form builders layered over Eloquent casts plus generated validation rule sets consumed by FormRequests. In practice you compose existing validation, casting, and Blade or Livewire components rather than adopting a metadata bundle.
- How much effort is it to replicate the pattern inside a Laravel codebase?
- It is bounded and predictable: metadata declaration, a class-to-definition registry, a builder that emits Laravel validation rules and form output, and a generic controller with per-field authorization. The repository is genuinely useful as design reference for the metadata contract and the annotation-to-form bridge. Staffing and long-term ownership, not difficulty, is the real constraint.
- How does it handle field-level authorization and mass assignment on generic controllers?
- This is unverified and is the highest-risk area of the design. A generic CRUD controller driven by metadata must enforce a per-field allowlist and an authorization policy before persisting, or it becomes a mass-assignment hole. Ask specifically whether an allowlist exists before letting anything like this touch admin surfaces.