From deb57e110916329b21fbd44b33d2f56948705569 Mon Sep 17 00:00:00 2001 From: Patrick Hoogkamer Date: Thu, 1 May 2025 18:17:14 +0200 Subject: [PATCH] feat: add Laravel 12 compatibility --- .github/workflows/phpstan.yml | 2 +- .github/workflows/pint.yml | 2 +- .github/workflows/test.yml | 2 +- composer.json | 14 +++++++------- phpstan.neon | 2 -- src/Resources/IncludesGathering.php | 2 +- tests/Filters/OperatorFilterTest.php | 3 +++ tests/Requests/QueryResolverTest.php | 7 +++++++ 8 files changed, 21 insertions(+), 13 deletions(-) diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml index db70155..3bf3c23 100644 --- a/.github/workflows/phpstan.yml +++ b/.github/workflows/phpstan.yml @@ -10,7 +10,7 @@ jobs: steps: - uses: shivammathur/setup-php@v2 with: - php-version: '8.2' + php-version: '8.4' - uses: actions/checkout@v4 - name: Install Dependencies run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist diff --git a/.github/workflows/pint.yml b/.github/workflows/pint.yml index 7e5a32d..428e3f7 100644 --- a/.github/workflows/pint.yml +++ b/.github/workflows/pint.yml @@ -10,7 +10,7 @@ jobs: steps: - uses: shivammathur/setup-php@v2 with: - php-version: '8.2' + php-version: '8.4' - uses: actions/checkout@v4 with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 216d42e..1def821 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,7 +10,7 @@ jobs: steps: - uses: shivammathur/setup-php@v2 with: - php-version: '8.2' + php-version: '8.4' - uses: actions/checkout@v4 - name: Install Dependencies run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist diff --git a/composer.json b/composer.json index c119e67..b03e7cb 100644 --- a/composer.json +++ b/composer.json @@ -12,16 +12,16 @@ "php": ">=8.2", "ext-json": "*", "intermax/laravel-open-api": "^2.0", - "laravel/framework": "^10.0 || ^11.0", + "laravel/framework": "^10.0 || ^11.0 || ^12.0", "spatie/laravel-json-api-paginate": "^1.12", - "spatie/laravel-query-builder": "^5.0" + "spatie/laravel-query-builder": "^6.0" }, "require-dev": { - "laravel/pint": "^1.1", - "nunomaduro/collision": "^8.0", - "phpunit/phpunit": "^11.0", - "larastan/larastan": "^2.2", - "orchestra/testbench": "^9.0" + "laravel/pint": "^1.22", + "nunomaduro/collision": "^8.8", + "phpunit/phpunit": "^11.5", + "larastan/larastan": "^3.4", + "orchestra/testbench": "^10.0" }, "autoload-dev": { "psr-4": { diff --git a/phpstan.neon b/phpstan.neon index a61055b..2f21fdb 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -11,5 +11,3 @@ parameters: excludePaths: - %currentWorkingDirectory%/tests/ - %currentWorkingDirectory%/vendor/ - - checkMissingIterableValueType: true diff --git a/src/Resources/IncludesGathering.php b/src/Resources/IncludesGathering.php index 78c160b..66e9e15 100644 --- a/src/Resources/IncludesGathering.php +++ b/src/Resources/IncludesGathering.php @@ -14,7 +14,7 @@ public function initializeIncludesBag(): void } /** - * @param IncludesBag $included + * @param ?mixed $included */ public function setIncludesBag($included = null): void { diff --git a/tests/Filters/OperatorFilterTest.php b/tests/Filters/OperatorFilterTest.php index 883db41..c968b34 100644 --- a/tests/Filters/OperatorFilterTest.php +++ b/tests/Filters/OperatorFilterTest.php @@ -10,6 +10,7 @@ use PHPUnit\Framework\Attributes\Test; use Spatie\QueryBuilder\AllowedFilter; use Spatie\QueryBuilder\QueryBuilder; +use Spatie\QueryBuilder\QueryBuilderRequest; class OperatorFilterTest extends TestCase { @@ -122,6 +123,8 @@ public function it_produces_an_in_query() protected function createQuery($field): QueryBuilder { + app()->instance(QueryBuilderRequest::class, QueryBuilderRequest::fromRequest(request())); + return QueryBuilder::for(User::class) ->allowedFilters([ AllowedFilter::custom($field, new OperatorFilter($field)), diff --git a/tests/Requests/QueryResolverTest.php b/tests/Requests/QueryResolverTest.php index 08b112c..a953429 100644 --- a/tests/Requests/QueryResolverTest.php +++ b/tests/Requests/QueryResolverTest.php @@ -13,6 +13,7 @@ use Intermax\LaravelJsonApi\Tests\Utilities\User; use Orchestra\Testbench\TestCase; use PHPUnit\Framework\Attributes\Test; +use Spatie\QueryBuilder\QueryBuilderRequest; class QueryResolverTest extends TestCase { @@ -36,6 +37,8 @@ public function includes(): array request()->replace(['include' => 'friends']); + app()->instance(QueryBuilderRequest::class, QueryBuilderRequest::fromRequest(request())); + /** @var QueryResolver $queryResolver */ $queryResolver = $this->app->make(QueryResolver::class); @@ -60,6 +63,8 @@ public function sorts(): array request()->replace(['sort' => 'name']); + app()->instance(QueryBuilderRequest::class, QueryBuilderRequest::fromRequest(request())); + /** @var QueryResolver $queryResolver */ $queryResolver = $this->app->make(QueryResolver::class); @@ -84,6 +89,8 @@ public function filters(): array request()->replace(['filter' => ['name' => 'Test']]); + app()->instance(QueryBuilderRequest::class, QueryBuilderRequest::fromRequest(request())); + /** @var QueryResolver $queryResolver */ $queryResolver = $this->app->make(QueryResolver::class);