diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index cd2932966..bd841f8bb 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -1,4 +1,5 @@ -name: "Validate" +name: Validate + on: pull_request: push: @@ -17,108 +18,119 @@ env: jobs: static-analysis: name: PHPStan on PHP ${{ matrix.php-version }} with Laravel ${{ matrix.laravel-version }} and ${{ matrix.composer.name }} dependencies + + runs-on: ubuntu-latest + + + strategy: fail-fast: false matrix: - php-version: - - "8.0" - - "8.1" - - "8.2" - - "8.3" - - "8.4" - laravel-version: - - "^9" - - "^10" - - "^11" - - "^12" - composer: - - name: lowest - arg: "--prefer-lowest --prefer-stable" - - name: highest - arg: "" # No args added as highest is default + php-version: ['8.0', '8.1', '8.2', '8.3', '8.4'] + laravel-version: [^9, ^10, ^11, ^12, ^13] + composer: [{ name: lowest, arg: '--prefer-lowest --prefer-stable' }, { name: highest, arg: '' }] exclude: - - php-version: "8.0" - laravel-version: "^10" - - php-version: "8.0" - laravel-version: "^11" - - php-version: "8.1" - laravel-version: "^11" - - php-version: "8.0" - laravel-version: "^12" - - php-version: "8.1" - laravel-version: "^12" + - php-version: '8.0' + laravel-version: ^10 + - php-version: '8.0' + laravel-version: ^11 + - php-version: '8.1' + laravel-version: ^11 + - php-version: '8.0' + laravel-version: ^12 + - php-version: '8.1' + laravel-version: ^12 + - laravel-version: ^13 + php-version: '8.0' + - laravel-version: ^13 + php-version: '8.1' + - laravel-version: ^13 + php-version: '8.2' + + + steps: - uses: actions/checkout@v4 + + + - uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} coverage: none extensions: ${{ env.REQUIRED_PHP_EXTENSIONS }} - - name: "Cache composer dependencies" + + + + - name: Cache composer dependencies uses: actions/cache@v3 with: path: ~/.composer/cache key: php-${{ matrix.php-version }}-composer-${{ matrix.laravel-version }}-os-${{ matrix.os }}-composer-${{ matrix.composer.name }} - - name: "Remove conflicting dependencies that are not needed here" + + + + - name: Remove conflicting dependencies that are not needed here run: composer remove --dev --no-update phpbench/phpbench rector/rector - - name: "Remove Pennant for Laravel 9 because it is not compatible" - if: matrix.laravel-version == '^9' + + + + - name: Remove Pennant for Laravel 9 because it is not compatible + if: "matrix.laravel-version == '^9'" run: composer remove --dev --no-update laravel/pennant - - run: > - composer require - illuminate/contracts:${{ matrix.laravel-version }} - --no-interaction - --prefer-dist - --no-progress - --update-with-all-dependencies - ${{ matrix.composer.arg }} + + + + - run: | + composer require illuminate/contracts:${{ matrix.laravel-version }} --no-interaction --prefer-dist --no-progress --update-with-all-dependencies ${{ matrix.composer.arg }} + + + - run: vendor/bin/phpstan --verbose tests: name: PHPUnit on PHP ${{ matrix.php-version }} with Laravel ${{ matrix.laravel-version }} and ${{ matrix.composer.name }} dependencies + + runs-on: ${{ matrix.os }} + + + strategy: fail-fast: false matrix: - php-version: - - "8.0" - - "8.1" - - "8.2" - - "8.3" - - "8.4" - laravel-version: - - "^9" - - "^10" - - "^11" - - "^12" - os: - - ubuntu-latest - composer: - - name: lowest - arg: "--prefer-lowest --prefer-stable" - - name: highest - arg: "" # No args added as highest is default + php-version: ['8.0', '8.1', '8.2', '8.3', '8.4'] + laravel-version: [^9, ^10, ^11, ^12, ^13] + os: [ubuntu-latest] + composer: [{ name: lowest, arg: '--prefer-lowest --prefer-stable' }, { name: highest, arg: '' }] exclude: - - php-version: "8.0" - laravel-version: "^10" - - php-version: "8.0" - laravel-version: "^11" - - php-version: "8.1" - laravel-version: "^11" - - php-version: "8.0" - laravel-version: "^12" - - php-version: "8.1" - laravel-version: "^12" + - php-version: '8.0' + laravel-version: ^10 + - php-version: '8.0' + laravel-version: ^11 + - php-version: '8.1' + laravel-version: ^11 + - php-version: '8.0' + laravel-version: ^12 + - php-version: '8.1' + laravel-version: ^12 + - laravel-version: ^13 + php-version: '8.0' + - laravel-version: ^13 + php-version: '8.1' + - laravel-version: ^13 + php-version: '8.2' + services: mysql: @@ -135,9 +147,15 @@ jobs: - 63790:6379 options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3 + + + steps: - uses: actions/checkout@v4 + + + - uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} @@ -145,37 +163,52 @@ jobs: extensions: ${{ env.REQUIRED_PHP_EXTENSIONS }} ini-values: zend.assertions=1 - - name: "Cache composer dependencies" + + + + - name: Cache composer dependencies uses: actions/cache@v3 with: path: ~/.composer/cache key: php-${{ matrix.php-version }}-composer-${{ matrix.laravel-version }}-os-${{ matrix.os }}-composer-${{ matrix.composer.name }} - - name: "Remove conflicting dependencies that are not needed here" + + + + - name: Remove conflicting dependencies that are not needed here run: composer remove --dev --no-update larastan/larastan phpstan/phpstan-mockery phpbench/phpbench rector/rector - - name: "Remove Pennant for Laravel 9 because it is not compatible" - if: matrix.laravel-version == '^9' + + + + - name: Remove Pennant for Laravel 9 because it is not compatible + if: "matrix.laravel-version == '^9'" run: composer remove --dev --no-update laravel/pennant - - run: > - composer require - illuminate/contracts:${{ matrix.laravel-version }} - --no-interaction - --prefer-dist - --no-progress - --update-with-all-dependencies - ${{ matrix.composer.arg }} + + + + - run: | + composer require illuminate/contracts:${{ matrix.laravel-version }} --no-interaction --prefer-dist --no-progress --update-with-all-dependencies ${{ matrix.composer.arg }} + + + - run: vendor/bin/phpunit coverage: + + runs-on: ubuntu-latest + + + strategy: matrix: - php-version: ["8.4"] - laravel-version: ["^12"] + php-version: ['8.3', '8.4', '8.4', '8.5'] + laravel-version: [^12, ^13] + services: mysql: @@ -192,9 +225,15 @@ jobs: - 63790:6379 options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3 + + + steps: - uses: actions/checkout@v4 + + + - uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} @@ -202,44 +241,79 @@ jobs: extensions: ${{ env.REQUIRED_PHP_EXTENSIONS }} ini-values: zend.assertions=1 - - name: "Cache composer dependencies" + + + + - name: Cache composer dependencies uses: actions/cache@v3 with: path: ~/.composer/cache key: php-${{ matrix.php-version }}-composer-${{ matrix.laravel-version }} + + + - run: composer remove --dev phpbench/phpbench rector/rector --no-update + + + - run: composer require illuminate/contracts:${{ matrix.laravel-version }} --no-interaction --prefer-dist --no-progress + + + - run: vendor/bin/phpunit --coverage-clover=coverage.xml - - name: "Upload to Codecov" + + + + - name: Upload to Codecov uses: codecov/codecov-action@v2 benchmarks: + + runs-on: ubuntu-latest + + + strategy: matrix: - php-version: ["8.4"] - laravel-version: ["^12"] + php-version: ['8.3', '8.4', '8.4', '8.5'] + laravel-version: [^12, ^13] + + + steps: - uses: actions/checkout@v4 + + + - uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} coverage: none extensions: ${{ env.REQUIRED_PHP_EXTENSIONS }} - - name: "Cache composer dependencies" + + + + - name: Cache composer dependencies uses: actions/cache@v3 with: path: ~/.composer/cache key: php-${{ matrix.php-version }}-composer-${{ matrix.laravel-version }} + + + - run: composer require illuminate/contracts:${{ matrix.laravel-version }} --no-interaction --prefer-dist --no-progress + + + - run: vendor/bin/phpbench run --progress=none --report=aggregate diff --git a/composer.json b/composer.json index 85b6ca3f4..5ee0109f1 100644 --- a/composer.json +++ b/composer.json @@ -29,15 +29,15 @@ "php": "^8", "ext-json": "*", "haydenpierce/class-finder": "^0.4 || ^0.5", - "illuminate/auth": "^9 || ^10 || ^11 || ^12", - "illuminate/bus": "^9 || ^10 || ^11 || ^12", - "illuminate/contracts": "^9 || ^10 || ^11 || ^12", - "illuminate/http": "^9 || ^10 || ^11 || ^12", - "illuminate/pagination": "^9 || ^10 || ^11 || ^12", - "illuminate/queue": "^9 || ^10 || ^11 || ^12", - "illuminate/routing": "^9 || ^10 || ^11 || ^12", - "illuminate/support": "^9 || ^10 || ^11 || ^12", - "illuminate/validation": "^9 || ^10 || ^11 || ^12", + "illuminate/auth": "^9 || ^10 || ^11 || ^12 || ^13.0", + "illuminate/bus": "^9 || ^10 || ^11 || ^12 || ^13.0", + "illuminate/contracts": "^9 || ^10 || ^11 || ^12 || ^13.0", + "illuminate/http": "^9 || ^10 || ^11 || ^12 || ^13.0", + "illuminate/pagination": "^9 || ^10 || ^11 || ^12 || ^13.0", + "illuminate/queue": "^9 || ^10 || ^11 || ^12 || ^13.0", + "illuminate/routing": "^9 || ^10 || ^11 || ^12 || ^13.0", + "illuminate/support": "^9 || ^10 || ^11 || ^12 || ^13.0", + "illuminate/validation": "^9 || ^10 || ^11 || ^12 || ^13.0", "laragraph/utils": "^1.5 || ^2", "thecodingmachine/safe": "^1 || ^2 || ^3", "webonyx/graphql-php": "^15" @@ -49,7 +49,7 @@ "fakerphp/faker": "^1.21", "google/protobuf": "^3.21", "larastan/larastan": "^2.9.14 || ^3.0.4", - "laravel/framework": "^9 || ^10 || ^11 || ^12", + "laravel/framework": "^9 || ^10 || ^11 || ^12 || ^13.0", "laravel/legacy-factories": "^1.1.1", "laravel/pennant": "^1", "laravel/scout": "^8 || ^9 || ^10", @@ -58,7 +58,7 @@ "mll-lab/php-cs-fixer-config": "^5", "mockery/mockery": "^1.5", "nesbot/carbon": "^2.62.1 || ^3.8.4", - "orchestra/testbench": "^7.50 || ^8.32 || ^9.10 || ^10.1", + "orchestra/testbench": "^7.50 || ^8.32 || ^9.10 || ^10.1 || ^11.0", "phpbench/phpbench": "^1.2.6", "phpstan/extension-installer": "^1", "phpstan/phpstan": "^1.12.18 || ^2", diff --git a/src/Execution/Arguments/Argument.php b/src/Execution/Arguments/Argument.php index 6fa6f3651..850cd6260 100644 --- a/src/Execution/Arguments/Argument.php +++ b/src/Execution/Arguments/Argument.php @@ -14,9 +14,7 @@ class Argument */ public mixed $value; - /** - * The type of the argument. - */ + /** The type of the argument. */ public ListType|NamedType|null $type = null; /** diff --git a/src/Scout/ScoutEnhancer.php b/src/Scout/ScoutEnhancer.php index 24b99c8c8..f7920a089 100644 --- a/src/Scout/ScoutEnhancer.php +++ b/src/Scout/ScoutEnhancer.php @@ -40,9 +40,7 @@ class ScoutEnhancer public function __construct( protected ArgumentSet $argumentSet, - /** - * @var \Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation|\Laravel\Scout\Builder $builder - */ + /** @var \Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation|\Laravel\Scout\Builder $builder */ protected QueryBuilder|EloquentBuilder|Relation|ScoutBuilder $builder, ) { $this->gather($this->argumentSet);