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

Larahooks Laravel Package

realzone22/larahooks

Larahooks brings WordPress-style action and filter hooks to Laravel, letting you extend core behavior and wire in package or module logic without touching source files. Register callbacks, fire actions, and filter values through a simple, lightweight API that fits neatly into any Laravel app.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Signal-quality caveat up front: this assessment rests on release metadata only (a 1.0.0 tag containing an initial commit plus one Dependabot bump of stefanzweifel/git-auto-commit-action). No README, API surface, test coverage, or downstream usage was available. Treat every conclusion below as a hypothesis to validate in a time-boxed spike, not as a settled evaluation.
  • Build vs. buy for extensibility plumbing. LaraHooks appears positioned as a hook/extension-point layer for Laravel (WordPress-style actions and filters or lifecycle hooks layered over Laravel's event dispatcher). That is a thin convenience decision, not an architectural one: Laravel already ships events, listeners, model observers, and pipelines. The real question is "do we want an opinionated naming/registration convention on top of what we already have?" — and if the answer is yes, a candidate at 1.0.0 with near-zero adoption history is cheap to trial and cheap to remove.
  • Roadmap input for plugin/extension surfaces. Relevant if the roadmap includes customer-authored extensions, tenant-level customization, or a first-party add-on ecosystem. A hooks layer is the cheapest way to expose stable extension points without publishing internal class names. Low confidence that this package is the one to standardize on; high confidence that the capability belongs on the roadmap.
  • Internal package boundaries. Usable as a lightweight decoupling mechanism between first-party modules (billing, notifications, tenancy) so cross-module behavior is registered as hooks rather than hard-coded calls. Value here is organizational (fewer merge conflicts, clearer ownership) more than technical.
  • Risk-register entry, not a dependency decision. A repo whose entire history is one commit and a bot PR has an unmeasurable bus factor. The PM-relevant output of a 1.0.0 review is a watch-list entry with a re-review date, not an ADR approving adoption.
  • Does not support: any decision about pricing, headcount, or platform strategy. This is a tactical library at best; it should not consume roadmap capacity beyond a spike.

When to Consider This Package

Consider a spike only when all of the following hold:

  • You have an actual, named extension-point requirement (customer plugins, tenant customization, or a modular monolith boundary) that native Laravel events/observers are already straining to express — not a hypothetical.
  • The team would otherwise hand-roll a hooks convention, and the hand-rolled version would be under 200 lines. If your need is that small, the honest comparison is "this package vs. our own 200 lines," and the answer often favors the 200 lines.
  • You can absorb the dependency risk: MIT-style permissive licensing confirmed, no transitive dependency conflicts, and a documented removal path (hooks registered in a small number of service providers).
  • You are willing to pin the version and vendor-review at each bump, given the maintainer currently has no track record to evaluate.

Look elsewhere — or defer — when:

  • The requirement is really async/side-effect orchestration. Use Laravel events + queues; a hooks layer will not give you retries, idempotency, or observability.
  • You need performance guarantees on hot paths. Hook dispatch on every request is an easy accidental N+1 of listeners; without published benchmarks, assume risk.
  • Your org requires security review, LTS commitments, or a support SLA. Nothing in this release supports any of those.
  • You need documentation to onboard more than one engineer. There is none visible yet. Re-evaluate at 1.1+ once a README, tests, and at least one external adopter exist.
  • Stability is load-bearing. A 1.0.0 from a first-time publisher is a starting semver claim, not an earned one; expect breaking changes in 1.x.

Default posture: defer and monitor. Set a re-review trigger on (a) a README/API docs landing, (b) CI test coverage, (c) first non-maintainer issue or PR, or (d) 90 days of commits.

How to Pitch It (Stakeholders)

For executives (30 seconds): A new Laravel package called LaraHooks appeared at version 1.0.0. It looks like a small utility for adding extension points to a Laravel app — the kind of thing we would otherwise write ourselves in a day or two. It is not a strategic dependency, it does not change our roadmap, and it carries real but bounded risk because the project has a single commit and no users yet. Recommendation: no action, no spend. We watch it, and we only pilot it if a concrete extensibility requirement lands on the roadmap. Cost of being wrong in either direction is measured in days, not quarters.

For engineering leads: This is a candidate to replace ad-hoc hook conventions, not to replace Laravel's event system. It sits on top of the dispatcher and gives you a registration/naming convention. The upside is consistency and fewer hard-coded cross-module calls; the downside is an unproven dependency in a path that runs on every request. Proposed next step is a two-day time-boxed spike behind a feature flag: read the source (it is likely small enough to read end-to-end in an hour), confirm the license, verify dispatch overhead under a realistic listener count, and confirm we can delete it without touching domain code. If the source turns out to be a thin wrapper around Event::listen, the honest recommendation will be to copy the pattern rather than take the dependency.

Framing to avoid: Don't socialize this as "we found our plugin architecture." At 1.0.0 with no documentation and no adopters, the package is a reference implementation we can learn from and, if it earns it, depend on later.

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.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager