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

Symfony Metadata Loader Laravel Package

sprintf/symfony-metadata-loader

Brings Symfony's metadata loading components to Laravel, letting you define and resolve class metadata such as validation, serialization, and ORM mappings using familiar Symfony conventions. Includes service provider wiring and configuration for seamless integration.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

This package is an infrastructure primitive, not a product capability — so the decisions it informs are narrow and mostly about build vs. buy vs. skip for a metadata-reading layer inside a larger system.

  • Extensibility architecture (build vs. buy). If your roadmap includes a plugin/module system, attribute-driven registries, or config-as-code domain behavior (e.g., marking a class with #[Exportable], #[Synced], #[FeatureFlag] and having the framework discover it), this package represents the "buy" column. The real comparison is against ~150–300 lines of native ReflectionAttribute code, not against a mature library.
  • Framework consolidation. It surfaces a decision point: are we standardizing on Symfony components inside a Laravel codebase? Laravel already leans on Symfony (console, http-foundation, finder, error-handler), so pulling in one more Symfony-side utility is not automatically wrong — but it should be a conscious, recorded choice rather than an incidental dependency.
  • Roadmap gating on ecosystem risk. With 0 stars, 0 dependents, and no visible adoption, adopting this is effectively a vendor commitment to an unmaintained component. That's a decision to own, scope, and budget for (fork-and-own), not a decision to make passively in a composer require.
  • Use cases where the underlying pattern is genuinely valuable: workflow/state-machine definitions, custom serialization contracts, permission/authorization metadata, API schema annotations, and CMS-style content type registration. If two or more of these are on the roadmap, the metadata layer is worth designing deliberately — whether or not this package is the vehicle.

When to Consider This Package

Consider it only if most of the following are true:

  • You are already a Symfony shop (the package is Symfony-scoped; the Laravel framing here is a mismatch worth calling out explicitly).
  • You need attribute-driven metadata loading and have confirmed the package's API surface actually matches your model — not just its name.
  • You have completed supply-chain due diligence: commit history, tagged releases, CI status, issue responsiveness, and whether the vendor namespace (sprintf) is the legitimate maintainer or a lookalike/typosquat risk. A near-zero-adoption package with an ambiguous vendor name is a red flag that must be cleared before anything else.
  • Legal has signed off on LGPL-2.1. In PHP, source is distributed, so the LGPL's "linking" boundary is famously fuzzy — LGPL-2.1 predates the explicit combinational-work language in LGPL-3.0. For any proprietary or SaaS-with-source-escrow product, this warrants a real legal review; it is not a formality.
  • You are prepared to vendor, fork, or pin hard — treating it as internal code you now maintain.

Look elsewhere if:

  • You're on Laravel and want idiomatic tooling — prefer native ReflectionAttribute/ReflectionClass, or established packages like symfony/property-info, nikic/php-parser, or spatie/laravel-data depending on whether you need property-level or class-level metadata.
  • You need production SLAs, security advisories, or LTS branches. Zero dependents means zero downstream scrutiny — no one else has found the bugs yet.
  • The metadata need is single-purpose. If you're reading one or two attributes, in-house reflection code is cheaper than the maintenance tax of an orphaned dependency.
  • Your stack is not Symfony and you have no appetite for a second framework's conventions leaking into your domain layer.

How to Pitch It (Stakeholders)

To executives: This is a small, unproven open-source utility that reads class metadata — the mechanism behind "tag a class, get behavior automatically." It's not a product feature and shouldn't appear on a roadmap. Our recommendation is do not adopt as a dependency: it has no community validation, no visible maintainer track record, and an LGPL-2.1 license that introduces legal review overhead disproportionate to the ~200 lines of code it replaces. The pattern is worth adopting; this package is not. Net cost of the decision is near zero either way, so treat it as a reference implementation and move on.

To engineering: Prototype the metadata layer in-house first — you'll likely find native reflection covers 90% of the need behind a thin interface. If you do pull this in, isolate it behind your own abstraction so swapping it out is a one-file change, pin the exact version, run a Composer audit, and assign a named owner. Do not let it enter the dependency tree as a transitive or convenience dependency.

Decision requested: no adoption now; revisit only if (a) upstream shows sustained releases and real dependents, or (b) legal clears LGPL-2.1 for our distribution model — whichever comes first.

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.
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment