Download the PHP package sfneal/datum without Composer
On this page you can find all versions of the php package sfneal/datum. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package datum
Datum
Construct reusable & cacheable Eloquent queries with custom filters.
Installation
You can install the package via composer:
Usage
Basic Query
The Query abstract class requires a builder()
& execute()
method must be implemented. The builder()
method retrieves a
Builder instance for constructing the query (useful for adding or removing scopes). The execute()
method is where the
remainder of the query params can be added. Expected return type is a Builder but this can be overwritten to be a
Collection, array, string, etc. In this case we're using the HasKeyParam to accept a $modelKey
param in the Query's
__construct method.
Advanced Query (with filters)
The FilterableQuery abstract class extends the previously mentioned Query abstract class while providing additional
functionality by using Filters. The execute
method that is required by the abstract Query is pre-defined but a
builder
method must still be implemented. Additionally, FilterableQuery requires a queryFilters()
method be
implemented that returns an array of Filter classes that can be used to add predefined filters to a query.
Before creating a FilterableQuery extension, the Filters that Query will use should be created.
Now that we've created our Filters, a FilterableQuery extension can be created that uses them.
With the FilterableQuery finally created, we can pass filter params to it and receive results.
Since we built the Filter implementations to mutate filter $values to arrays, we can pass an array of valid filters to retrieve more results.
Testing
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Credits
- Stephen Neal
- All Contributors
License
The MIT License (MIT). Please see License File for more information.
PHP Package Boilerplate
This package was generated using the PHP Package Boilerplate.
All versions of datum with dependencies
illuminate/database Version >=8.2
illuminate/http Version *
sfneal/caching Version ^3.0|^4.0
sfneal/models Version ^3.0 || ^4.0
sfneal/string-helpers Version ^1.0