diff --git a/.github/workflows/analyse.yml b/.github/workflows/analyse.yml index a260cc5..005313d 100644 --- a/.github/workflows/analyse.yml +++ b/.github/workflows/analyse.yml @@ -17,7 +17,7 @@ jobs: dependencies: - "locked" laravel: - - "8.x" + - "9.x" experimental: - false diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 67b1e40..c46aa2c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -16,13 +16,102 @@ jobs: - "ubuntu-latest" - "windows-latest" php: - - "7.3" - - "7.4" - "8.0" dependencies: - "locked" - "highest" - "lowest" + laravel: + - "8.x" + - "9.x" + experimental: + - false + + name: Laravel ${{ matrix.laravel }} on PHP${{ matrix.php }}-${{ matrix.os }} (${{ matrix.dependencies }}) + + steps: + - name: Checkout code + uses: actions/checkout@v1 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + extensions: dom, curl, libxml, mbstring, zip, pcntl, sqlite3, pdo_sqlite, bcmath, fileinfo + coverage: none + + - name: Install Laravel Framework ${{ matrix.laravel }} + run: | + composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update + + - name: Install dependencies + uses: "ramsey/composer-install@v1" + with: + dependency-versions: "${{ matrix.dependencies }}" + composer-options: "--prefer-dist" + + - name: Execute tests + run: vendor/bin/phpunit + + tests-on-php-74: + runs-on: ${{ matrix.os }} + continue-on-error: ${{ matrix.experimental }} + strategy: + matrix: + os: + - "ubuntu-latest" + - "windows-latest" + php: + - "7.4" + dependencies: + - "locked" + - "highest" + - "lowest" + laravel: + - "8.x" + experimental: + - false + + name: Laravel ${{ matrix.laravel }} on PHP${{ matrix.php }}-${{ matrix.os }} (${{ matrix.dependencies }}) + + steps: + - name: Checkout code + uses: actions/checkout@v1 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + extensions: dom, curl, libxml, mbstring, zip, pcntl, sqlite3, pdo_sqlite, bcmath, fileinfo + coverage: none + + - name: Install Laravel Framework ${{ matrix.laravel }} + run: | + composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update + + - name: Install dependencies + uses: "ramsey/composer-install@v1" + with: + dependency-versions: "${{ matrix.dependencies }}" + composer-options: "--prefer-dist --no-cache" + + - name: Execute tests + run: vendor/bin/phpunit + + tests-on-php-73: + runs-on: ${{ matrix.os }} + continue-on-error: ${{ matrix.experimental }} + strategy: + matrix: + os: + - "ubuntu-latest" + - "windows-latest" + php: + - "7.3" + dependencies: + - "locked" + - "highest" + - "lowest" laravel: - "8.x" experimental: diff --git a/composer.json b/composer.json index fe616c4..e5a7612 100644 --- a/composer.json +++ b/composer.json @@ -24,13 +24,13 @@ }, "require": { "php": "^7.3 || ^8.0", - "illuminate/database": "^8.67", - "illuminate/support": "^8.67" + "illuminate/database": "^8.67 || ^9.0", + "illuminate/support": "^8.67 || ^9.0" }, "require-dev": { "nunomaduro/larastan": "^1.0.1", - "orchestra/canvas": "^6.7", - "orchestra/testbench": "^6.22" + "orchestra/canvas": "^6.7 || ^7.0", + "orchestra/testbench": "^6.22 || ^7.0" }, "config": { "sort-packages": true diff --git a/phpstan.neon.dist b/phpstan.neon.dist index c4015c1..975b47e 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -13,6 +13,7 @@ parameters: ignoreErrors: - '#Unsafe usage of new static#' - '#Call to an undefined method Illuminate\\Database\\ConnectionInterface::getDriverName\(\)#' + - '#Call to an undefined method Illuminate\\Contracts\\Database\\Query\\Builder::(unless|when)\(\)#' checkMissingIterableValueType: false noUnnecessaryCollectionCall: false diff --git a/src/Contracts/Filter/Filter.php b/src/Contracts/Filter/Filter.php index 0b0d1c6..f400076 100644 --- a/src/Contracts/Filter/Filter.php +++ b/src/Contracts/Filter/Filter.php @@ -10,9 +10,9 @@ interface Filter /** * Apply search queries. * - * @param \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query + * @param \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query * - * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder + * @return \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder */ public function apply($query, array $keywords, string $likeOperator, string $whereOperator); } diff --git a/src/Filters/FieldSearch.php b/src/Filters/FieldSearch.php index 40b927a..4eab02f 100644 --- a/src/Filters/FieldSearch.php +++ b/src/Filters/FieldSearch.php @@ -27,9 +27,9 @@ public function __construct($column) /** * Apply generic field search queries. * - * @param \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query + * @param \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query * - * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder + * @return \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder */ public function apply($query, array $keywords, string $likeOperator, string $whereOperator) { diff --git a/src/Filters/JsonFieldSearch.php b/src/Filters/JsonFieldSearch.php index 79da582..04fd738 100644 --- a/src/Filters/JsonFieldSearch.php +++ b/src/Filters/JsonFieldSearch.php @@ -27,9 +27,9 @@ public function __construct($path) /** * Apply JSON field search queries. * - * @param \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query + * @param \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query * - * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder + * @return \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder */ public function apply($query, array $keywords, string $likeOperator, string $whereOperator) { diff --git a/src/Orderable.php b/src/Orderable.php index 03cf1ff..f127f57 100644 --- a/src/Orderable.php +++ b/src/Orderable.php @@ -43,9 +43,9 @@ public function __construct(?string $column, string $direction = 'asc', array $c /** * Apply ordered to query. * - * @param \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query + * @param \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query * - * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder + * @return \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder */ public function apply($query) { diff --git a/src/Searchable.php b/src/Searchable.php index 5c8282e..492fce0 100644 --- a/src/Searchable.php +++ b/src/Searchable.php @@ -46,9 +46,9 @@ public function searchKeyword(): Keyword /** * Apply search to query. * - * @param \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query + * @param \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query * - * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder + * @return \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder */ public function apply($query) { @@ -91,9 +91,9 @@ public function apply($query) /** * Build wildcard query filter for field using where or orWhere. * - * @param \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query + * @param \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query * - * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder + * @return \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder */ protected function queryOnColumn( $query, @@ -113,9 +113,9 @@ protected function queryOnColumn( /** * Build wildcard query filter for column using where or orWhere. * - * @param \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query + * @param \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query * - * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder + * @return \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder */ protected function queryOnColumnUsing( $query, @@ -149,9 +149,9 @@ protected function queryOnColumnUsing( /** * Build wildcard query filter for JSON column using where or orWhere. * - * @param \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query + * @param \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query * - * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder + * @return \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder */ protected function queryOnJsonColumnUsing( $query, diff --git a/src/Taxonomy.php b/src/Taxonomy.php index 946d757..e1cb12d 100644 --- a/src/Taxonomy.php +++ b/src/Taxonomy.php @@ -45,9 +45,9 @@ public function __construct(?string $terms, array $rules = [], array $fields = [ /** * Apply search to query. * - * @param \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query + * @param \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query * - * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder + * @return \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder */ public function apply($query) { @@ -60,7 +60,7 @@ public function apply($query) /** * Match basic conditions. * - * @param \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query + * @param \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query */ protected function matchBasicConditions($query): void { @@ -80,7 +80,7 @@ protected function matchBasicConditions($query): void /** * Match tagged conditions. * - * @param \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query + * @param \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query */ protected function matchTaggedConditions($query): void { diff --git a/src/helpers.php b/src/helpers.php index c213140..6287c75 100644 --- a/src/helpers.php +++ b/src/helpers.php @@ -7,7 +7,7 @@ /** * Get connection type from Query Builder. * - * @param \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query + * @param \Illuminate\Contracts\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder $query */ function connection_type($query): string {