diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 49033a2..0403887 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -14,7 +14,7 @@ jobs: strategy: fail-fast: true matrix: - php: [8.1, 8.2] + php: [8.2, 8.3] stability: [prefer-stable] name: PHP ${{ matrix.php }} - ${{ matrix.stability }} @@ -42,4 +42,4 @@ jobs: command: composer update --${{ matrix.stability }} --prefer-dist --no-interaction --no-progress - name: Execute tests - run: vendor/bin/phpunit --verbose + run: vendor/bin/phpunit diff --git a/.github/workflows/lock-closed-issues.yml b/.github/workflows/lock-closed-issues.yml new file mode 100644 index 0000000..6b89427 --- /dev/null +++ b/.github/workflows/lock-closed-issues.yml @@ -0,0 +1,21 @@ +name: Lock Closed Issues + +on: + schedule: + - cron: "0 0 * * *" + +permissions: + issues: write + +jobs: + action: + runs-on: ubuntu-latest + steps: + - uses: dessant/lock-threads@v3 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + issue-inactive-days: "14" + #issue-comment: | + # This issue has been locked since it has been closed for more than 14 days. + issue-lock-reason: "" + process-only: "issues" diff --git a/.github/workflows/pint.yml b/.github/workflows/pint.yml new file mode 100644 index 0000000..f078347 --- /dev/null +++ b/.github/workflows/pint.yml @@ -0,0 +1,20 @@ +name: PHP Linting +on: + pull_request: + push: + branches: + - master +jobs: + phplint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: "laravel-pint" + uses: aglipanci/laravel-pint-action@2.0.0 + with: + preset: laravel + verboseMode: true + - uses: stefanzweifel/git-auto-commit-action@v5 + with: + commit_message: "fix: pint" + diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml index 59f0a2c..97dd9ef 100644 --- a/.github/workflows/static-analysis.yml +++ b/.github/workflows/static-analysis.yml @@ -27,12 +27,11 @@ jobs: strategy: matrix: - php-version: - - "8.1" + php: [8.2, 8.3] steps: - name: "Checkout code" - uses: "actions/checkout@v2" + uses: "actions/checkout@v4" - name: "Install PHP" uses: "shivammathur/setup-php@v2" @@ -41,8 +40,12 @@ jobs: php-version: "${{ matrix.php-version }}" tools: "cs2pr" - - name: "Install dependencies with Composer" - uses: "ramsey/composer-install@v1" + - name: Install dependencies + uses: nick-fields/retry@v2 + with: + timeout_minutes: 5 + max_attempts: 5 + command: composer update --prefer-stable --prefer-dist --no-interaction --no-progress - - name: "Run a static analysis with phpstan/phpstan" - run: "vendor/bin/phpstan --error-format=checkstyle | cs2pr" + - name: Execute type checking + run: vendor/bin/phpstan --configuration="phpstan.neon.dist" diff --git a/.gitignore b/.gitignore index df0e1ea..384d40a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ /vendor /coverage +/.phpunit.cache composer.phar composer.lock diff --git a/composer.json b/composer.json index 9682abb..3ed7335 100644 --- a/composer.json +++ b/composer.json @@ -15,13 +15,13 @@ } ], "require": { - "php": "^8.1", - "yajra/laravel-datatables-oracle": "^10.0", + "php": "^8.2", + "yajra/laravel-datatables-oracle": "^11.0", "league/fractal": "^0.20.1" }, "require-dev": { - "nunomaduro/larastan": "^2.4", - "orchestra/testbench": "^7.21" + "nunomaduro/larastan": "^2.9.2", + "orchestra/testbench": "^9" }, "autoload": { "psr-4": { @@ -35,7 +35,7 @@ }, "extra": { "branch-alias": { - "dev-master": "10.0-dev" + "dev-master": "11.x-dev" }, "laravel": { "providers": [ diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 422eeac..2cb7512 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,17 +1,8 @@ - - - - ./tests/ - - + + + + ./tests/ + + diff --git a/src/Commands/TransformerMakeCommand.php b/src/Commands/TransformerMakeCommand.php index f23c085..a86a5ce 100644 --- a/src/Commands/TransformerMakeCommand.php +++ b/src/Commands/TransformerMakeCommand.php @@ -35,7 +35,6 @@ class TransformerMakeCommand extends GeneratorCommand * * @param string $stub Contents of the stub * @param string $name The class name - * @return string */ protected function replaceClass($stub, $name): string { @@ -53,8 +52,6 @@ protected function replaceClass($stub, $name): string /** * Get the stub file for the generator. - * - * @return string */ protected function getStub(): string { @@ -67,7 +64,6 @@ protected function getStub(): string * Get the default namespace for the class. * * @param string $rootNamespace The root namespace - * @return string */ protected function getDefaultNamespace($rootNamespace): string { @@ -78,7 +74,6 @@ protected function getDefaultNamespace($rootNamespace): string * Get the destination class path. * * @param string $name Name of the class with namespace - * @return string */ protected function getPath($name): string { diff --git a/src/FractalServiceProvider.php b/src/FractalServiceProvider.php index c456e6c..7e027c9 100644 --- a/src/FractalServiceProvider.php +++ b/src/FractalServiceProvider.php @@ -10,17 +10,8 @@ class FractalServiceProvider extends ServiceProvider { - /** - * Indicates if loading of the provider is deferred. - * - * @var bool - */ - protected bool $defer = false; - /** * Bootstrap the application events. - * - * @return void */ public function boot(): void { @@ -32,8 +23,6 @@ public function boot(): void /** * Publish datatables assets. - * - * @return void */ protected function publishAssets(): void { @@ -46,8 +35,6 @@ protected function publishAssets(): void /** * Register DataTables macro methods. - * - * @return void */ protected function registerMacro(): void { @@ -72,8 +59,6 @@ protected function registerMacro(): void /** * Register the service provider. - * - * @return void */ public function register(): void { @@ -104,8 +89,6 @@ public function register(): void /** * Get the services provided by the provider. - * - * @return array */ public function provides(): array { diff --git a/src/Transformers/FractalTransformer.php b/src/Transformers/FractalTransformer.php index 8e2cd28..ffda30e 100644 --- a/src/Transformers/FractalTransformer.php +++ b/src/Transformers/FractalTransformer.php @@ -11,15 +11,10 @@ class FractalTransformer { - /** - * @var \League\Fractal\Manager - */ protected Manager $fractal; /** * FractalTransformer constructor. - * - * @param \League\Fractal\Manager $fractal */ public function __construct(Manager $fractal) { @@ -28,16 +23,11 @@ public function __construct(Manager $fractal) /** * Transform output using the given transformer and serializer. - * - * @param array|\Illuminate\Support\Collection $output - * @param iterable $transformer - * @param SerializerAbstract|null $serializer - * @return array */ public function transform( array|LaravelCollection $output, iterable $transformer, - SerializerAbstract $serializer = null + ?SerializerAbstract $serializer = null ): array { if ($serializer !== null) { $this->fractal->setSerializer($this->createSerializer($serializer)); @@ -68,7 +58,6 @@ function ($item_collector, $item_transformed) { * Get or create transformer serializer instance. * * @param class-string|SerializerAbstract $serializer - * @return \League\Fractal\Serializer\SerializerAbstract */ protected function createSerializer(SerializerAbstract|string $serializer): SerializerAbstract { @@ -83,7 +72,6 @@ protected function createSerializer(SerializerAbstract|string $serializer): Seri * Get or create transformer instance. * * @param \Closure|class-string|TransformerAbstract $transformer - * @return \Closure|\League\Fractal\TransformerAbstract */ protected function createTransformer(Closure|string|TransformerAbstract $transformer): Closure|TransformerAbstract { diff --git a/tests/FractalTest.php b/tests/FractalTest.php index 183f432..cd75fa4 100644 --- a/tests/FractalTest.php +++ b/tests/FractalTest.php @@ -3,6 +3,8 @@ namespace Yajra\DataTables\Fractal\Tests; use Illuminate\Foundation\Testing\DatabaseTransactions; +use PHPUnit\Framework\Attributes\Test; +use Yajra\DataTables\Facades\DataTables; use Yajra\DataTables\Fractal\Tests\Models\User; use Yajra\DataTables\Fractal\Tests\Transformers\UserTransformer; @@ -10,7 +12,7 @@ class FractalTest extends TestCase { use DatabaseTransactions; - /** @test */ + #[Test] public function it_can_transform_response() { $json = $this->getAjax('/users'); @@ -25,7 +27,7 @@ public function it_can_transform_response() $this->assertIsString($json['data'][0]['name']); } - /** @test */ + #[Test] public function it_works_with_closure() { $json = $this->getAjax('/closure'); @@ -45,20 +47,20 @@ protected function setUp(): void parent::setUp(); $this->app['router']->get('/users', function () { - return datatables()->eloquent(User::query()) - ->setTransformer(UserTransformer::class) - ->toJson(); + return DataTables::eloquent(User::query()) + ->setTransformer(UserTransformer::class) + ->toJson(); }); $this->app['router']->get('/closure', function () { - return datatables()->eloquent(User::query()) - ->setTransformer(function (User $user) { - return [ - 'id' => (int) $user->id, - 'name' => $user->name, - ]; - }) - ->toJson(); + return DataTables::eloquent(User::query()) + ->setTransformer(function (User $user) { + return [ + 'id' => (int) $user->id, + 'name' => $user->name, + ]; + }) + ->toJson(); }); } } diff --git a/tests/Transformers/UserTransformer.php b/tests/Transformers/UserTransformer.php index cb47d92..806b5f2 100644 --- a/tests/Transformers/UserTransformer.php +++ b/tests/Transformers/UserTransformer.php @@ -7,10 +7,6 @@ class UserTransformer extends TransformerAbstract { - /** - * @param \Yajra\DataTables\Fractal\Tests\Models\User $user - * @return array - */ public function transform(User $user): array { return [