Introduction
Hunter
is a powerful utility for finding and processing Eloquent model records with a fluent, chainable API. It provides a clean way to search for records based on specific criteria and execute multiple actions on them with comprehensive error handling, logging, and advanced flow control.
Installation
To install Hunter
, you can use Composer. Run the following command in your terminal:
bash
composer require e2tmk/hunter
Usage
php
use Hunter\Hunter;
Hunter::for(Campaign::class)
->find('scheduled_at', now())
>modifyQueryUsing(fn($query) => $query->where('status', 'scheduled'))
->onBeforeThen(function (Campaign $campaign, Hunter $hunter) {
// Validation with graceful failure
if (!$campaign->hasContacts()) {
$hunter->skip($campaign, 'No contacts to send to');
return;
}
})
->then(function (Campaign $campaign) {
ProcessCampaignJob::dispatch($campaign);
})
->onAfterThen(function (Campaign $campaign) {
$campaign->update(['status' => 'processing']);
})
->hunt();
// Or using the helper function
hunter(Campaign::class)
->find(...)
->hunt();