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

millat/laravel-hooks

A lightweight Laravel package for adding hooks and filters to your application, letting you modify behavior at runtime without editing core code. Simple to install and use.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy on extensibility primitives. Decides whether to introduce a lightweight hook system for customer/partner customization or invest in a full plugin SDK. This package is a cheap way to validate demand for an extension surface before committing engineering headcount.
  • Plugin/extension architecture roadmap. Informs whether the product ships a first-party add-on ecosystem, a theme layer, or a customer-authored customization model. Filters (value-transforming middleware) are the missing primitive in Laravel's native event system, which is fire-and-forget.
  • White-label and enterprise customization strategy. Enables per-tenant behavior (feature flags, pricing rules, notification templates, checkout logic) hooked in without forking core or sprinkling if ($tenant) branches — a direct answer to "we need this configurable for one customer."
  • Modular monolith decisions. Lets internal modules communicate and let external code intervene at lifecycle points (actions) and data-shaping points (filters) without hard coupling, supporting a phased move toward services.
  • Feature-level use cases worth evaluating: customer-defined business rules, themable/white-label output, integration webhooks, per-account workflows, and a marketplace/partner-extension play.
  • Risk posture. 57 stars, 0 dependents, effectively single-maintainer (1.4.0 brought a second, one-time contributor). Treated as a sourcing decision: adopt only where the abstraction is thin enough to vendor in a day if the project stalls.

When to Consider This Package

Adopt when:

  • You need filters — a value passed through a chain where each handler can mutate it and return it (pricing, templates, payload transformation). Laravel's native events and pipelines don't model this cleanly without ceremony.
  • You want third parties or customers to hook into your app without touching core code and without a compiled plugin runtime.
  • Your team has WordPress mental-model familiarity (add_action, do_action, add_filter, apply_filters) — near-zero onboarding cost.
  • You're prototyping an extension surface and want to learn what customers actually hook before designing a real plugin API.
  • You need an MIT-licensed, low-ceremony dependency in a modular monolith or multi-tenant SaaS.
  • You are on Laravel 12 — now explicitly supported as of 1.4.0. Confirm the composer constraint resolves cleanly in your app before committing.

Look elsewhere when:

  • Standard Laravel events/listeners, queued listeners, broadcasting, or pipelines already cover your needs — do not adopt a second eventing model without a clear filter use case.
  • You need event discovery, queueing, broadcasting, or Horizon integration — native Laravel wins.
  • You require enterprise support, SLAs, or a maintained ecosystem. With a small star count, no dependents, and a maintainer team that grew by one drive-by PR, treat this as open-source code you may own, not a vendor.
  • You need framework-version currency as a hard requirement. Laravel 12 support arrived as a community PR in 1.4.0 rather than in the maintainer's own release cadence — assume you may need to self-patch for the next major.
  • You need performance-critical hook dispatch at scale — profile hook registration and resolution before betting on any third-party hook registry.
  • The "extension surface" is really configuration — prefer settings, feature flags, or policy objects over an untyped hook contract.

Adoption gate: confirm you actually need filter semantics, verify 1.4.0 resolves against your Laravel/PHP constraint, vendor the package into your repo (or wrap it behind an internal interface), and write acceptance tests around hook ordering and return-value chaining.

How to Pitch It (Stakeholders)

To executives (business framing): This is a small, MIT-licensed, zero-cost package that lets us build a plugin/extension layer into the product rather than customizing it per customer. It directly supports three revenue-relevant moves: (1) selling customization/white-label capability, (2) launching a partner or add-on ecosystem, (3) reducing engineering cost of one-off enterprise requests by letting customers hook in instead of us forking the codebase. Cost of trying is low; cost of not trying is discovering, late, that every enterprise deal requires a bespoke branch. Latest release (1.4.0) is a maintenance-only update that adds Laravel 12 support — it keeps us on our current framework version but is not a feature investment. Main caveat remains: it's a young open-source project with no formal vendor behind it, so we should wrap it behind an internal interface and budget a day to vendor it if maintenance lapses.

To engineering (technical framing): Laravel's event system is fire-and-forget; it doesn't give us a first-class way to pass a value through a chain and get a transformed result back. This package gives us WordPress-style actions and filters — registration, priority ordering, and apply_filters-style value transformation — in idiomatic PHP. It complements, not replaces, Laravel's events, queues, and pipelines. 1.4.0 is a composer.json-only change adding Laravel 12 support (no API changes, no breaking changes, no deprecations), contributed by an outside developer — worth noting because framework compatibility is arriving via community PRs, not maintainer roadmap. Integration is thin and contained. Recommended approach: pin ^1.4, adopt behind a small internal facade, enforce typed hook names/contracts, add tests for ordering and chaining, and treat the vendor source as forkable.

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.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin