Laravel Querybuilder

PHP MIT

API-ready Eloquent query builder for Laravel with filtering, sorting, relation includes, sparse fieldsets, strict mode, custom filters, and secure schema-driven query contracts.

Stars
18
Forks
0
Downloads
2,276
Open Issues
0
Files main

Repository Files

Loading file structure...
src/Query.php
<?php

namespace GhostCompiler\LaravelQueryBuilder;

use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Traits\Macroable;

class Query
{
    use Macroable;

    /**
     * @var array<string, list<mixed>>
     */
    protected static array $extensions = [];

    public static function for(string|Builder $subject): QueryBuilder
    {
        return new QueryBuilder($subject);
    }

    public static function extend(string $contract, mixed $extension = null): mixed
    {
        if ($extension === null) {
            return static::$extensions[$contract] ?? [];
        }

        static::$extensions[$contract] ??= [];
        static::$extensions[$contract][] = $extension;

        return null;
    }
}