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 Manageable Laravel Package

signifly/laravel-manageable

Laravel Manageable lets you make any Eloquent model manageable with a single trait, adding admin-friendly CRUD, publish states, and sorting. It keeps management logic reusable and controllers lean, so building back-office screens takes minutes instead of hours.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package solves one narrow cross-cutting concern: attributing created / updated / deleted events on Eloquent models to the acting user, exposed back through a polymorphic relationship. That is an audit-attribution requirement, not an architectural one — and in most Laravel codebases it is already satisfied by created_by / updated_by columns, Laravel's native model events, or a mature audit package (spatie/laravel-activitylog, owen-it/laravel-auditing). The package's only real differentiator is keeping attribution in a side table so domain schemas stay clean. That is a modest ergonomic gain weighed against a dead dependency. Fit is "narrow but genuine"; it is not load-bearing architecture.

Integration feasibility. Mechanically trivial: composer require, publish the migration, add the trait. Realistic effort is a few hours for a spike. Feasibility is not the issue — acceptability is, given the archived status.

Technical risk.

  • Abandonment: archived, last release 2023-11-21. No Laravel 11/12 or PHP 8.3/8.4 guarantee, no security response path, no issue triage. Treat as unmaintained source, not a dependency.
  • Event-lifecycle coupling: attribution is written from model event listeners, i.e. synchronously inside the same request and likely the same transaction as the domain write. A tracking-table failure can surface as a failed save, or vice versa.
  • Write amplification and retention: one extra row per managed write, with no indication of pruning. On high-write tables this grows unbounded.
  • Privacy: persisting an indefinite user-to-record attribution index is personal data under GDPR; erasure and retention obligations attach to it.
  • Adoption signal: 40 stars is thin. Real-world validation is limited; you will be reading source, not docs.

Key questions for the code review spike.

  1. Do the listeners run inside the model's save transaction, and what is the failure semantics if the tracking insert fails?
  2. What happens in console, queue, and unauthenticated contexts — null attribution, skipped write, or exception?
  3. Are soft deletes and force deletes both captured? Are bulk operations (query()->update(), DB::table()) captured at all?
  4. What index strategy exists on the polymorphic table, and is there any retention hook?
  5. What exactly is recorded — actor and action only, or also old/new values, IP, user agent? If the requirement is compliance-grade audit, actor-and-action alone is insufficient.
  6. Does the trait apply per-model, or is there global opt-in?

Integration Approach

Stack fit. Workable on Laravel 8–10 / PHP 8.0–8.2. Do not assume Laravel 11/12 compatibility without verifying the version constraint and running the suite.

Migration path. Two viable routes, in preference order:

  1. Replace with an actively maintained equivalent. spatie/laravel-activitylog covers the same ground with richer configuration, active maintenance, and a wider support corpus. Requires a small adapter if existing code references the package's API surface.
  2. Fork in-tree. Lift the trait and migration into app/Support/ (likely ~150 lines), drop the Composer dependency, and own it. Preferred if the API shape is already referenced in production code — it preserves existing call sites and the existing table without a data migration.

A third route — adopting the package as-is and pinning it — is not recommended. A pinned dead package accrues upgrade debt silently and surfaces only at the next Laravel major.

Compatibility. If the trait is already live, keep the existing table and its schema; freezing the code in-tree avoids both a backfill and a dual-write window.

Sequencing.

  1. Branch spike: install, publish, verify version matrix against your target Laravel/PHP pair.
  2. Read the listeners; answer the transaction and context questions above.
  3. Decide fork-in-tree vs. replace.
  4. Add the polymorphic index and a retention/pruning job before enabling on any high-volume model.
  5. Enable on one low-risk module as a canary; compare attribution completeness against expectations for a full release cycle.
  6. Roll out model-by-model, not globally — write amplification is per-model and should be justified per-model.

Operational Impact

Maintenance. Archived means you own it outright. Budget roughly 0.5–2 engineer-days per Laravel major upgrade cycle, plus reactive fixes for PHP deprecations and Eloquent event changes — none of which upstream will absorb.

Support. No upstream maintainer, no CVE channel, small issue corpus. Expect source-reading as the primary support mechanism. That is acceptable for a 150-line internal utility; it is not acceptable for something a compliance stakeholder depends on.

Scaling. One additional insert per managed write. Fine for typical CRUD; material for bulk imports, queue workers processing in loops, or any table with sustained high write volume. Two non-negotiables before broad use: a composite index on (manageable_type, manageable_id) and a retention/pruning policy. Without the second, the tracking table will eventually outgrow the tables it audits.

Failure modes.

  • Tracking-insert failure propagating as a domain save failure (or the inverse: a save succeeding with attribution silently dropped).
  • Missing auth context in jobs and console commands producing null or absent attribution — the audit trail looks complete and isn't.
  • Mass updates and raw query-builder writes bypassing model events entirely, leaving gaps.
  • Unbounded table growth degrading the very queries the package adds.

The last three are the real product risk: an audit trail that is trusted but incomplete is worse than no audit trail, because decisions get made on it. This is a stakeholder-communication problem, not just an engineering one, and it should be stated explicitly to whoever is asking for auditability.

Ramp-up. Low for engineers — hours. The meaningful ramp cost is organizational: product, security, and compliance stakeholders must be told precisely what the attribution does and does not capture before anyone relies on it. If the underlying requirement is compliance-grade audit (who changed what field, from what value, to what value, from where), this package does not meet it at any maintenance status, and the correct move is a maintained auditing library with value-diff support.

Recommendation. Do not adopt signifly/laravel-manageable as a new dependency. Use a maintained alternative for new work, or fork the trait in-tree if the API is already in use. The 0.175 score is consistent with the archived status and thin adoption — the technical capability is real but small, and the maintenance obligation it transfers to you exceeds it.

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