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

L5 Repository Laravel Package

hocvt/l5-repository

Laravel repository package that abstracts the database layer behind reusable repositories. Add criteria, presenters, validators, Fractal transformers and caching without repeating query code, keeping controllers and models clean and testable.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Architecture: repository layer or not. The central decision this informs is whether to insert an abstraction between application/domain code and Eloquent. Adopting the package is effectively buying the "yes" answer pre-built rather than debating it from scratch.
  • Build vs. buy for boilerplate. Teams that say yes to a repository layer almost always end up writing their own BaseRepository, criteria pipeline, caching decorator, and presenters. This package is the "buy" option for that slice of work.
  • Feature: consistent list/filter/sort/paginate endpoints. RequestCriteria converts query-string filtering into a convention. That is a product decision about API contract consistency across endpoints and teams, not just a code choice.
  • Feature: response shaping. Presenters/transformers let you commit to a stable public API surface independent of schema changes — a product promise to consumers, not an implementation detail.
  • Feature: caching as a decorator. A cacheable repository lets you decide "we cache read paths" without rewriting every query site; relevant when scale or latency targets land on the roadmap.
  • Roadmap: onboarding and standardization. A shared base repository plus a criteria vocabulary reduces per-team invention — useful when headcount grows faster than architecture review capacity.
  • Use cases it fits: internal admin/back-office CRUD, B2B APIs with many near-identical resource endpoints, products with a small data-access team and several API consumers, and codebases that need a mockable persistence seam for tests.
  • Risk/exit decision. MIT license and a pattern-based (not framework-forking) design mean exit cost is "refactor our repository classes," not "replatform." That lowers the stakes enough to justify a bounded trial.

When to Consider This Package

Consider it when most of these hold:

  • You've already decided (or are strongly leaning) on a repository/abstraction layer. This package does not make that architectural argument for you.
  • You have a high count of similar resource endpoints — value scales with number of models, not complexity of any single one.
  • You want declarative, reusable query composition (filters, eager loads, scopes) shared across HTTP handlers, jobs, and console commands.
  • You want caching and presenter plumbing available without bespoke implementation.
  • Your Laravel version is one the package demonstrably supports — verify against your target version before committing, not after.
  • Your team is disciplined about keeping business logic out of repositories and letting criteria do the query shaping.

Look elsewhere when:

  • The app is small (a handful of models). The repository layer is pure ceremony and will be the first thing deleted.
  • Your team's idiom is Eloquent/ActiveRecord and there's no appetite for the abstraction. A package won't resolve a genuine disagreement about architecture.
  • You need true domain/persistence separation. This abstracts the query, not the model — repositories still return Eloquent models and collections, which leaks persistence into callers.
  • You're moving toward event sourcing, CQRS with separated read models, or DB-level read/write split; criteria-based repositories pull you back toward a single-model shape.
  • You require vendor SLAs or demonstrated maintainer responsiveness. The signals here are thin relative to the star count — treat maintenance as something to verify directly (release cadence, issue triage, age of open PRs, bus factor).
  • Your platform roadmap includes moving off Laravel or onto a different persistence store.

How to Pitch It (Stakeholders)

For executives: This is a small, reversible cost-avoidance decision, not a platform bet. It substitutes an MIT-licensed library for roughly 2–4 weeks of internal boilerplate — base repository, filtering/sorting conventions, cache decorator, response presenters. Upside is faster delivery of CRUD-heavy surfaces and more uniformity across teams. Downside is bounded because the pattern is generic: exit cost is a refactor of our repository classes, not a migration. The one item to check before approval is maintainer health, since the package's ecosystem signals are weaker than its 4k stars imply.

For engineering: It's a prettus/l5-repository-lineage package — BaseRepository with a criteria pipeline, RequestCriteria for query-string-driven filtering/sorting/eager loading, a cacheable repository decorator, presenters/transformers, and validators. It is a convention layer over Eloquent, not a replacement: you still write model-specific repositories, and the abstraction stops at the query surface. Adopt it if we've already agreed on a repository layer; skip it if we haven't, because it adds indirection without removing a real decision.

Recommended path: trial on one bounded module or service, capture the conventions in a short ADR (what belongs in criteria vs. repository vs. service layer), and set a checkpoint to measure whether it actually reduced code volume and review friction. Do not ratify it org-wide on star count alone.

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.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast