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

Laravel Metable Laravel Package

mmanos/laravel-metable

Add metadata to Eloquent models with a simple key-value interface. Attach arbitrary attributes to any model without schema changes, query them efficiently, and keep your tables clean.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Feature scoping — flexible attributes vs. hard schema. The package implements the classic "meta" pattern: a polymorphic key/value table attached to Eloquent models so you can add per-record attributes without migrations. That decision — do we give customers configurable fields, or do we ship a fixed schema? — is a real roadmap fork, and this package is a compact reference for the "flexible" side.
  • Build vs. buy vs. borrow. Correct framing here is borrow, don't buy. The implementation is small (a trait + a migration); treat the repo as a design spec for an in-house trait rather than a dependency. That reframes the decision from "is this package good?" to "is this pattern worth ~1–2 sprints?"
  • Use cases where the pattern fits: sparse, optional, per-record metadata; long-tail customer-specific fields; CMS/page attributes; integration payloads and settings blobs that rarely change shape.
  • Use cases where it does not: anything you filter, sort, join, or aggregate on at volume. EAV tables push complexity into query planning and indexing, and the cost compounds as reporting requirements grow.
  • Not a viable input for a Laravel 5+ roadmap. Laravel 4 only, PHP 5.x era, last release July 2015. Any decision it informs must be at the pattern level, not the dependency level.

When to Consider This Package

  • Legitimate cases: you are maintaining an existing Laravel 4 application already inside this ecosystem, or you want a ~200-line worked example of a meta trait to adapt before writing your own.
  • Look elsewhere — which is almost always — if: you are on Laravel 5+, PHP 7/8, or need a dependency that receives security patches. No commits since 2015, 14 stars, no community, no maintainer, no CVE coverage. The 0.26 score reflects that accurately.
  • Assess the pattern, not the package. Modern alternatives are usually strictly better: spatie/laravel-schemaless-attributes, or plain JSON columns (MySQL 5.7+/Postgres) with generated columns for indexing. JSON keeps one row per entity, avoids N-way joins, and is far easier to reason about in reporting.
  • Additional disqualifiers: you need typed/validated meta, meta-level querying at scale, or hard multi-tenant isolation guarantees. A raw EAV table gives you none of these out of the box.
  • Effort check: adopting a dead package to save a day of work trades a small upfront saving for permanent ownership of an unsupported dependency. That trade is rarely correct.

How to Pitch It (Stakeholders)

Bottom line: this is not an adoption recommendation. mmanos/laravel-metable is a Laravel 4 package last released in July 2015 with 14 stars and no maintainer. It is end-of-life and carries unmanaged maintenance and security risk with zero vendor support. Do not add it to the dependency tree.

What is worth taking from it is the underlying pattern: attaching arbitrary key/value metadata to core entities to avoid schema churn for sparse, customer-specific attributes. That pattern maps directly to a recurring product question — do we let customers define their own fields? — and it is cheap to own.

Recommendation to engineering: implement a small internal trait plus a polymorphic meta table (or, preferably, a JSON column with generated indexes where query patterns are known), backed by tests. Use this repo as prior art for the trait API, and keep the design explicitly scoped to attributes we will never filter or aggregate on at scale. Roughly one to two sprints, fully owned, no third-party risk.

Recommendation to the business: we get the product capability without inheriting a decade-old dependency. The only cost is a small amount of internal build, which we would have to do anyway the moment we needed a bug fix.

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.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums