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

L5 Repository Laravel Package

gigabooksite/l5-repository

A Laravel repository pattern package for gigabooksite/l5-repository, adding repositories, criteria, presenters, and transformers to keep database queries out of your controllers and models. Supports Eloquent, caching, and request-based filtering for cleaner, testable application code.

View on GitHub
Deep Wiki
Context7
Frequently asked questions about L5 Repository
What is gigabooksite/l5-repository used for?
It is a Laravel package that implements the repository pattern, keeping database queries out of controllers and models. It provides repositories, criteria, presenters, and transformers for cleaner, more testable application code. The package is a fork of andersao/l5-repository and supports Eloquent, caching, and request-based filtering.
How do I install and configure gigabooksite/l5-repository?
Install it with Composer using composer require gigabooksite/l5-repository. Register the package service provider if your Laravel version does not support package auto-discovery. Check the README for the provider class and any optional configuration publishing steps.
How do I create a repository with gigabooksite/l5-repository?
Create a repository class that extends the package base repository and implement the required model method. Bind the repository interface to your implementation in a service provider so it can be injected into controllers. You can then use built-in methods for common queries and add custom methods as needed.
What are criteria in l5-repository and when should I use them?
Criteria are reusable query filters that you apply to a repository without cluttering it with conditional logic. Use them for things like request-based filtering, status filters, or sorting rules that apply across multiple queries. You can push and pop criteria on a repository instance, making them composable and testable.
Does gigabooksite/l5-repository support caching?
Yes, the package includes caching support so repository query results can be cached. You can enable caching on a repository and configure cache lifetime and tags where your cache driver supports them. Be sure to clear or invalidate cache entries when the underlying data changes.
How does request-based filtering work in l5-repository?
The package can use request parameters to apply filters through criteria, so you can build flexible endpoints without writing repetitive query code. You define which filters are allowed and map them to criteria or query conditions. This keeps controllers thin and centralizes filtering logic in reusable classes.
Which Laravel versions are supported by gigabooksite/l5-repository?
Because this is a fork, supported Laravel versions depend on the fork composer.json and release notes. Check the package README and Packagist metadata for the exact Laravel and PHP version constraints. If you need a specific version, compare the fork against andersao/l5-repository or test it in your application first.
What are presenters and transformers in gigabooksite/l5-repository?
Presenters and transformers convert repository results into a consistent output format, such as arrays or API-ready responses. They help separate your data access layer from your response formatting so you can reuse the same repository with different outputs. This is useful when building APIs or when different parts of the app need different representations of the same model.
How do I test repositories built with l5-repository?
You can test repositories with Laravel testing tools by using an in-memory SQLite database or a dedicated test database connection. Because queries are isolated in repository classes and criteria, you can unit test criteria and repository methods independently. Mock repository interfaces when testing controllers so your tests do not depend on the database.
Is gigabooksite/l5-repository actively maintained, and what are the alternatives?
It is a fork of andersao/l5-repository, so check the GitHub repository for recent commits, releases, and issue activity to judge maintenance. Alternatives include the original andersao/l5-repository and newer repository-pattern packages, or writing your own abstraction. Evaluate them against your Laravel version and support needs before adopting one in production.
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.
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo
bernskioldmedia/laravel-harvest
bernskiold/laravel-data-scrubber
bernskiold/laravel-currency-converter
bernskiold/laravel-campaign-monitor
bernskioldmedia/laravel-autotranslate
siberfx/telegram-bot
roy-sandip/laravel-view-extended
gregsphotography/site-builder-core
roy-sandip/laravel-view
anodyne/blade-fluentui-icons
webx-ui/module-catalog-collections