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

Fireable Laravel Package

envant/fireable

Envant Fireable is a Laravel package that automatically fires events when chosen Eloquent model attributes change. Define fireable fields on a model and react to updates with dedicated events, avoiding manual observer boilerplate and keeping model change handling clean and explicit.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

Feature delivery on event-driven work. The package collapses a repetitive chunk of Laravel work — "when this field changes on this model, dispatch that event" — into a declarative mapping on the model. That shows up in a disproportionate number of roadmap items:

  • Outbound integrations / webhooks. Fire a partner-facing event when order.status, subscription.plan, or invoice.amount changes, without writing a bespoke observer per model.
  • Audit and compliance trails. Attribute-level change events are the natural feed for "who changed the price, and when" requirements — common in fintech, healthcare, and B2B SaaS procurement reviews.
  • Lifecycle notifications. Email change → re-verification flow; role change → permission cache invalidation and access-review notification; status change → customer-facing email.
  • Cache and search sync. Invalidate a cached aggregate or reindex a document only when a relevant field changes, not on every save(). This is the quiet win: it prevents event storms from no-op writes.
  • Build vs. buy. This is a ~40–80 line utility, not a platform. The correct framing is not "adopt a dependency" but "standardize on one trait instead of five engineers writing five slightly different observers." Adopting it is cheap; rejecting it costs you a sprint-day of internal code and a code-review debate. Treat it as a convention decision, not an architecture decision.

Signal from the scores: a narrow opportunity score (0.38) is consistent with what this is — a small, well-liked quality-of-life utility. It will not differentiate the product. It shortens the critical path on features you've already committed to.

When to Consider This Package

Reasonable fit when:

  • You have (or expect) three or more models that need attribute-specific change events. Below that, plain Laravel observers are simpler than a dependency plus a new convention.
  • Your team already lives in Laravel's native event system and you want the attribute→event mapping to be visible on the model rather than buried in EventServiceProvider or an observers directory.
  • The events are internal-facing (notifications, indexing, cache) — i.e., losing one is a bug, not an incident.
  • You're on a Laravel version the package supports. Verify this first. Last release was April 2022 and the package predates Laravel 10/11; assume you will need to fork or vendor it before assuming compatibility.

Look elsewhere — or write the trait yourself — when:

  • You need durable, replayable history. This dispatches events; it does not persist them. If the requirement is "reconstruct state" or "audit log we can query," you want an activity-log or event-sourcing package (spatie/laravel-activitylog, spatie/laravel-event-sourcing) instead. Do not let a listener-based design get mistaken for an audit trail — listeners are fire-and-forget and a failed queue job silently loses the record.
  • You need transactional guarantees or a queued outbox. Events fired inside saving can be dispatched before the transaction commits, which produces phantom events on rollback. You'll need afterCommit handling regardless of which tool you pick.
  • Bulk writes are in scope. Model::where(...)->update() bypasses Eloquent events entirely. If your data pipeline uses mass updates, this package — and every observer-based approach — will quietly not fire. That's a design constraint worth surfacing to stakeholders early.
  • Maintenance posture matters. Single maintainer, no release in ~3 years. For a commodity utility that's survivable if you vendor it into your repo; it's not survivable as a version constraint you can't patch. Decide this explicitly rather than discovering it during a framework upgrade.
  • You want relationship or nested-attribute events. The package is scoped to model attributes; those cases fall back to custom observers.

How to Pitch It (Stakeholders)

For executives (one paragraph): We're evaluating a small open-source Laravel utility that removes boilerplate when the application needs to react to data changes — the plumbing behind things like "notify the customer when their plan changes" or "tell our partner's system an order shipped." It's a micro-utility, not a platform bet: adopting it saves a modest amount of engineering time per event-driven feature and enforces one consistent pattern across the codebase. The cost is near-zero (MIT-licensed, ~440 GitHub stars); the risk is that it hasn't been released since 2022, so if we adopt it we'll copy it into our own codebase rather than depend on it from upstream. Recommendation: treat as a tactical accelerator with a contingency, not a strategic dependency.

For engineering (the actual decision): The value is that attribute→event mappings become declarative and colocated with the model, which kills the "did anyone remember to write an observer for this field?" class of bug. Two hard caveats before we commit:

  1. Version support is unverified. Last release predates Laravel 10. Spike one afternoon: install it, run the test suite, confirm dirty-check behavior and event dispatch order. If it doesn't hold, we're 60 lines from an internal equivalent — write it, own it, add tests.
  2. Understand what it is not. It is not an audit log, it is not transactional, and it does not fire on query-builder mass updates. Any requirement phrased as "we must be able to prove what changed" needs a persisted record, not an event listener.

If the spike passes, adopt it behind our existing event conventions; if it doesn't, vendor the pattern internally and move on. Either way, we should not spend more than a day deciding.

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.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource