From 7e6682a68a073bca2fe12755bbf1530a0f7d6db3 Mon Sep 17 00:00:00 2001 From: Tiago Padilha Date: Wed, 5 Feb 2025 21:56:47 -0300 Subject: [PATCH] [Enhancement] Fix code style (#1837) * fix code style --- src/Button.php | 5 +- src/Column.php | 7 +-- .../Actions/AskComponentDatasource.php | 6 +-- src/Commands/Actions/AskComponentName.php | 4 +- src/Commands/Actions/AskDatabaseTableName.php | 1 + src/Commands/Actions/AskModelName.php | 18 +++---- .../Actions/CheckIfDatabaseHasTables.php | 5 +- .../Actions/GetStubVarsFromDbTable.php | 4 +- .../Actions/GetStubVarsFromFromModel.php | 7 +-- src/Commands/Actions/ListDatabaseTables.php | 5 +- src/Commands/Actions/ListModels.php | 13 +++-- src/Commands/Actions/ParseFqnClassInCode.php | 6 ++- .../Actions/SanitizeComponentName.php | 6 +-- src/Commands/CreateCommand.php | 21 ++++---- src/Commands/Enums/Datasource.php | 8 +-- src/Commands/InteractsWithVersions.php | 4 +- .../Support/PowerGridComponentMaker.php | 36 +++++++------ src/Commands/Support/PowerGridStub.php | 18 +++---- src/Commands/UpdateCommand.php | 3 +- src/Components/Exports/Export.php | 10 ++-- src/Components/Filters/Builders/Boolean.php | 5 +- .../Filters/Builders/DatePicker.php | 5 +- .../Filters/Builders/DateTimePicker.php | 5 +- src/Components/Filters/Builders/InputText.php | 15 ++++-- src/Components/Filters/Builders/Number.php | 5 +- src/Components/Filters/Builders/Select.php | 5 +- .../Builders/WithMultiSelectBuilder.php | 7 ++- src/Components/Filters/FilterBase.php | 9 ++-- src/Components/Filters/FilterSelect.php | 7 +-- src/Components/Rules/BaseRule.php | 3 +- src/Components/Rules/Support/DispatchRule.php | 6 ++- .../Rules/Support/DispatchToRule.php | 6 ++- .../Rules/Support/SetAttributeRule.php | 4 ++ src/Concerns/Checkbox.php | 3 +- src/Concerns/Filter.php | 52 ++++++++++++++----- src/Concerns/HasActions.php | 4 +- src/Concerns/Listeners.php | 4 ++ src/Concerns/ManageRow.php | 5 +- src/Concerns/Persist.php | 7 +-- src/Concerns/SoftDeletes.php | 4 +- src/Concerns/Sorting.php | 7 ++- src/Concerns/Summarize.php | 3 +- src/Concerns/ToggleDetail.php | 9 ++-- src/DataSource/Builder.php | 12 +++-- src/DataSource/Collection.php | 11 +++- src/DataSource/ProcessDataSource.php | 7 ++- .../Processors/CollectionProcessor.php | 12 +++-- src/DataSource/Processors/DataSourceBase.php | 34 +++++++----- src/DataSource/Processors/ModelProcessor.php | 6 ++- src/DataSource/Support/Sql.php | 7 ++- src/Livewire/LazyChild.php | 5 +- src/Livewire/PerformanceCard.php | 6 ++- src/PowerGridComponent.php | 19 +++++-- src/Providers/Macros.php | 4 +- src/Providers/PowerGridServiceProvider.php | 5 +- src/Testing/TestActions.php | 2 +- src/Traits/WithExport.php | 2 +- src/functions.php | 2 +- 58 files changed, 314 insertions(+), 187 deletions(-) diff --git a/src/Button.php b/src/Button.php index 3c0d0f01d..4220b9ebf 100644 --- a/src/Button.php +++ b/src/Button.php @@ -2,6 +2,7 @@ namespace PowerComponents\LivewirePowerGrid; +use Closure; use Illuminate\Support\Traits\Macroable; use Livewire\Wireable; @@ -17,7 +18,7 @@ * @method static route(string $route, array $params, string $target) * @method static method(string $method) * @method static target(string $target) _blank, _self, _top, _parent, null - * @method static can(bool|\Closure $allowed = true) + * @method static can(bool|Closure $allowed = true) * @method static id(string $id = null) * @method static confirm(string $message = 'Are you sure you want to perform this action?') * @method static confirmPrompt(string $message = 'Are you sure you want to perform this action?', string $confirmValue = 'Confirm') @@ -38,7 +39,7 @@ final class Button implements Wireable public array $iconAttributes = []; - public bool | \Closure $can = true; + public bool|Closure $can = true; public function __construct(public string $action) { diff --git a/src/Column.php b/src/Column.php index 7e390e3f2..8a7b25b6d 100644 --- a/src/Column.php +++ b/src/Column.php @@ -3,6 +3,7 @@ namespace PowerComponents\LivewirePowerGrid; use Illuminate\Support\Traits\Macroable; +use Livewire\Wireable; /** * Macros @@ -10,7 +11,7 @@ * @method static searchableRaw(string $sql) * @method static searchableJson(string $tableName) // sqlite, mysql */ -final class Column implements \Livewire\Wireable +final class Column implements Wireable { use Macroable; @@ -81,7 +82,7 @@ public static function add(): self */ public static function make(string $title, string $field, string $dataField = ''): self { - return (new static()) + return (new Column()) ->title($title) ->field($field, $dataField); } @@ -91,7 +92,7 @@ public static function make(string $title, string $field, string $dataField = '' */ public static function action(string $title): self { - return (new static()) + return (new Column()) ->title($title) ->isAction() ->visibleInExport(false); diff --git a/src/Commands/Actions/AskComponentDatasource.php b/src/Commands/Actions/AskComponentDatasource.php index bd355626b..f87a8f207 100644 --- a/src/Commands/Actions/AskComponentDatasource.php +++ b/src/Commands/Actions/AskComponentDatasource.php @@ -12,16 +12,16 @@ public static function handle(): string { // Must pass options as array to // improve users experience when Laravel prompt falls back. - $datasources = Datasource::asOptions(); + $datasource = Datasource::asOptions(); $choice = strval(select( label: 'Select your preferred Data source:', - options: $datasources->values()->toArray(), // @phpstan-ignore-line + options: $datasource->values()->toArray(), // @phpstan-ignore-line default: 0 )); // Find and return they key based on user's choice. - return (string) $datasources->filter(function ($item) use ($choice) { + return (string) $datasource->filter(function ($item) use ($choice) { return $item === $choice; })->keys()[0]; } diff --git a/src/Commands/Actions/AskComponentName.php b/src/Commands/Actions/AskComponentName.php index 152a05d7a..4b9a07d7d 100644 --- a/src/Commands/Actions/AskComponentName.php +++ b/src/Commands/Actions/AskComponentName.php @@ -31,8 +31,8 @@ public static function handle(): string private static function checkIfComponentAlreadyExists(): void { if (File::exists(powergrid_components_path(self::$componentName . '.php'))) { - $confirmation = (bool) confirm( - "Component [" . self::$componentName . "] already exists. Overwrite it?", + $confirmation = confirm( + 'Component [' . self::$componentName . '] already exists. Overwrite it?', default: false, hint: '❗ WARNING ❗' ); diff --git a/src/Commands/Actions/AskDatabaseTableName.php b/src/Commands/Actions/AskDatabaseTableName.php index 41b7e4360..4bd5ea16e 100644 --- a/src/Commands/Actions/AskDatabaseTableName.php +++ b/src/Commands/Actions/AskDatabaseTableName.php @@ -11,6 +11,7 @@ final class AskDatabaseTableName public static function handle(): string { $tableExists = false; + $tableName = ''; while (!$tableExists) { $tableName = suggest( diff --git a/src/Commands/Actions/AskModelName.php b/src/Commands/Actions/AskModelName.php index 01631d8c0..d39794026 100644 --- a/src/Commands/Actions/AskModelName.php +++ b/src/Commands/Actions/AskModelName.php @@ -15,17 +15,15 @@ final class AskModelName */ public static function handle(): array { - { - while (self::$model === '') { - self::setModel(suggest( - label: 'Select a Model or enter its Fully qualified name.', - options: ListModels::handle(), - required: true, - )); - } - - return ['model' => self::$model, 'fqn' => self::$fqn]; + while (self::$model === '') { + self::setModel(suggest( + label: 'Select a Model or enter its Fully qualified name.', + options: ListModels::handle(), + required: true, + )); } + + return ['model' => self::$model, 'fqn' => self::$fqn]; } private static function setModel(string $model): void diff --git a/src/Commands/Actions/CheckIfDatabaseHasTables.php b/src/Commands/Actions/CheckIfDatabaseHasTables.php index c75ad5ec7..860f3a813 100644 --- a/src/Commands/Actions/CheckIfDatabaseHasTables.php +++ b/src/Commands/Actions/CheckIfDatabaseHasTables.php @@ -2,6 +2,7 @@ namespace PowerComponents\LivewirePowerGrid\Commands\Actions; +use Exception; use Illuminate\Support\Facades\Schema; final class CheckIfDatabaseHasTables @@ -9,8 +10,8 @@ final class CheckIfDatabaseHasTables public static function handle(): bool { try { - return count(Schema::getTables()) > 0 ? true : false; - } catch (\Exception $e) { + return count(Schema::getTables()) > 0; + } catch (Exception) { return false; } } diff --git a/src/Commands/Actions/GetStubVarsFromDbTable.php b/src/Commands/Actions/GetStubVarsFromDbTable.php index a82d8523f..e623efd57 100644 --- a/src/Commands/Actions/GetStubVarsFromDbTable.php +++ b/src/Commands/Actions/GetStubVarsFromDbTable.php @@ -83,8 +83,8 @@ public static function handle(PowerGridComponentMaker $component): array $columns .= ' Column::make(\'' . $title . '\', \'' . $field . '\')' . "\n" . ' ->sortable()' . "\n" . ' ->searchable(),' . "\n\n"; } - $columns .= " ];"; - $filters .= " ];"; + $columns .= ' ];'; + $filters .= ' ];'; return [ 'PowerGridFields' => $datasource, diff --git a/src/Commands/Actions/GetStubVarsFromFromModel.php b/src/Commands/Actions/GetStubVarsFromFromModel.php index df6feb5e5..ffaf4daed 100644 --- a/src/Commands/Actions/GetStubVarsFromFromModel.php +++ b/src/Commands/Actions/GetStubVarsFromFromModel.php @@ -2,6 +2,7 @@ namespace PowerComponents\LivewirePowerGrid\Commands\Actions; +use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Schema; use Illuminate\Support\Str; use PowerComponents\LivewirePowerGrid\Commands\Support\PowerGridComponentMaker; @@ -15,7 +16,7 @@ class GetStubVarsFromFromModel */ public static function handle(PowerGridComponentMaker $component): array { - /** @var \Illuminate\Database\Eloquent\Model $model*/ + /** @var Model $model */ $model = new $component->modelFqn(); $getFillable = $model->getFillable(); @@ -106,8 +107,8 @@ public static function handle(PowerGridComponentMaker $component): array $columns .= ' Column::action(\'Action\')' . "\n"; - $columns .= " ];"; - $filters .= " ];"; + $columns .= ' ];'; + $filters .= ' ];'; return [ 'PowerGridFields' => $datasource, diff --git a/src/Commands/Actions/ListDatabaseTables.php b/src/Commands/Actions/ListDatabaseTables.php index e15d3ff69..008682df7 100644 --- a/src/Commands/Actions/ListDatabaseTables.php +++ b/src/Commands/Actions/ListDatabaseTables.php @@ -2,6 +2,7 @@ namespace PowerComponents\LivewirePowerGrid\Commands\Actions; +use Exception; use Illuminate\Support\Facades\Schema; final class ListDatabaseTables @@ -18,8 +19,8 @@ public static function handle(): array return array_values(collect(Schema::getTables()) ->pluck('name') ->diff(self::HIDDEN_TABLES) - ->toArray()); - } catch (\Exception $e) { + ->all()); + } catch (Exception) { return []; } } diff --git a/src/Commands/Actions/ListModels.php b/src/Commands/Actions/ListModels.php index eba995919..1c3683f40 100644 --- a/src/Commands/Actions/ListModels.php +++ b/src/Commands/Actions/ListModels.php @@ -3,19 +3,20 @@ namespace PowerComponents\LivewirePowerGrid\Commands\Actions; use Illuminate\Support\Facades\File; +use ReflectionClass; +use ReflectionException; use Symfony\Component\Finder\SplFileInfo; final class ListModels { /** * List files in Models - * */ public static function handle(): array { $directories = config('livewire-powergrid.auto_discover_models_paths', [app_path('Models')]); - /** @var Array $directories */ + /** @var array $directories */ return collect($directories) ->filter(fn (string $directory) => File::exists($directory)) ->map(fn (string $directory) => File::allFiles($directory)) @@ -33,8 +34,10 @@ public static function handle(): array ->filter() // Remove classes that do not extend an Eloquent Model - /** @phpstan-ignore-next-line */ - ->reject(fn (string $fqnClass) => rescue(fn () => (new \ReflectionClass($fqnClass))->isSubclassOf(\Illuminate\Database\Eloquent\Model::class), false) === false) - ->toArray(); + /** @phpstan-ignore-next-line + * @throws ReflectionException + */ + ->reject(fn (string $fqnClass) => rescue(fn () => (new ReflectionClass($fqnClass))->isSubclassOf(\Illuminate\Database\Eloquent\Model::class), false) === false) + ->all(); } } diff --git a/src/Commands/Actions/ParseFqnClassInCode.php b/src/Commands/Actions/ParseFqnClassInCode.php index db1255c6f..9b0c96037 100644 --- a/src/Commands/Actions/ParseFqnClassInCode.php +++ b/src/Commands/Actions/ParseFqnClassInCode.php @@ -2,12 +2,14 @@ namespace PowerComponents\LivewirePowerGrid\Commands\Actions; +use Exception; + final class ParseFqnClassInCode { /** * Parse namespace from PHP source code * Inspired by: https://gist.github.com/ludofleury/1886076 - * @throws \Exception + * @throws Exception */ public static function handle(string $sourceCode): string { @@ -15,6 +17,6 @@ public static function handle(string $sourceCode): string return $matches[1] . '\\' . $matches[2]; } - throw new \Exception('could not find a FQN Class is source-code'); + throw new Exception('could not find a FQN Class is source-code'); } } diff --git a/src/Commands/Actions/SanitizeComponentName.php b/src/Commands/Actions/SanitizeComponentName.php index 26dbb31ba..6aa9d4970 100644 --- a/src/Commands/Actions/SanitizeComponentName.php +++ b/src/Commands/Actions/SanitizeComponentName.php @@ -15,11 +15,11 @@ public static function handle(string $componentName): string //Convert multiple spaces into forward slashes ->replaceMatches('/\s+/', '//') //multiple back slashes into forward slashes - ->replaceMatches('/\\\{2,}/', "\\") + ->replaceMatches('/\\\{2,}/', '\\') //Multiple forward slashes - ->replaceMatches('/\/{2,}/', "\\") + ->replaceMatches('/\/{2,}/', '\\') //Multile dots - ->replaceMatches('/\.{2,}/', ".") + ->replaceMatches('/\.{2,}/', '.') ->replace('.', '\\') //Left over backslahes into forward slashes ->replace('/', '\\') diff --git a/src/Commands/CreateCommand.php b/src/Commands/CreateCommand.php index e0d6f00f0..ba2ed4ddc 100644 --- a/src/Commands/CreateCommand.php +++ b/src/Commands/CreateCommand.php @@ -2,6 +2,7 @@ namespace PowerComponents\LivewirePowerGrid\Commands; +use Exception; use Illuminate\Console\Command; use function Laravel\Prompts\{error, info, note}; @@ -34,17 +35,17 @@ public function handle(): int try { $this - ->step1() - ->step2() - ->step3() - ->step4() - ->step5() - ->step6() - ->save() - ->feedback(); + ->step1() + ->step2() + ->step3() + ->step4() + ->step5() + ->step6() + ->save() + ->feedback(); return self::SUCCESS; - } catch (\Exception $e) { + } catch (Exception $e) { error($e->getMessage()); return self::FAILURE; @@ -130,7 +131,7 @@ public function feedback(): void note("💡 include the {$this->component?->name} component using the tag: {$this->component?->htmlTag}"); - info("👍 Please consider ⭐ starring ⭐ our repository. Visit: https://github.com/Power-Components/livewire-powergrid" . PHP_EOL); + info('👍 Please consider ⭐ starring ⭐ our repository. Visit: https://github.com/Power-Components/livewire-powergrid' . PHP_EOL); } private function AutoImportLabel(): string diff --git a/src/Commands/Enums/Datasource.php b/src/Commands/Enums/Datasource.php index 0ce83fcee..5588f9de3 100644 --- a/src/Commands/Enums/Datasource.php +++ b/src/Commands/Enums/Datasource.php @@ -20,9 +20,9 @@ public static function from(string $datasource): mixed public function label(): string { return match ($this) { - Datasource::ELOQUENT_BUILDER => "Eloquent Builder", - Datasource::QUERY_BUILDER => "Query Builder", - Datasource::COLLECTION => "Collection" + Datasource::ELOQUENT_BUILDER => 'Eloquent Builder', + Datasource::QUERY_BUILDER => 'Query Builder', + Datasource::COLLECTION => 'Collection' }; } @@ -70,7 +70,7 @@ public function stubTemplate(): string } /** - * Datasource with labels for dropdown select + * Datasource with labels for dropdown select * * @return Collection */ diff --git a/src/Commands/InteractsWithVersions.php b/src/Commands/InteractsWithVersions.php index 80cf11d29..20dc693c5 100644 --- a/src/Commands/InteractsWithVersions.php +++ b/src/Commands/InteractsWithVersions.php @@ -25,7 +25,7 @@ class InteractsWithVersions */ public function ensureLatestVersion(): array { - $composer = Factory::create(new NullIo(), null, false); + $composer = Factory::create(new NullIo()); $localRepo = $composer->getRepositoryManager()->getLocalRepository(); return $this->searchPackage($localRepo); @@ -73,7 +73,7 @@ public function getLatestVersion(): string /** @phpstan-ignore-next-line */ $version = collect($package['packages']['power-components/livewire-powergrid']) - ->first()['version']; + ->first()['version']; if (!is_string($version)) { throw new Exception('Error: could find PowerGrid version.'); diff --git a/src/Commands/Support/PowerGridComponentMaker.php b/src/Commands/Support/PowerGridComponentMaker.php index 99c164408..88a53ab9e 100644 --- a/src/Commands/Support/PowerGridComponentMaker.php +++ b/src/Commands/Support/PowerGridComponentMaker.php @@ -2,6 +2,7 @@ namespace PowerComponents\LivewirePowerGrid\Commands\Support; +use Exception; use Illuminate\Support\Facades\File; use Illuminate\Support\Str; use PowerComponents\LivewirePowerGrid\Commands\Actions\{GetStubVarsFromDbTable, GetStubVarsFromFromModel}; @@ -9,20 +10,20 @@ use PowerComponents\LivewirePowerGrid\Commands\Enums\Datasource; /** - * @property-read PowerGridStub $stub; - * @property-read Datasource $datasource; - * @property-read string $name; - * @property-read string $namespace - * @property-read string $folder - * @property-read string $filename - * @property-read string $htmlTag - * @property-read string $fqn - * @property-read string $databaseTable - * @property-read string $model - * @property-read string $modelFqn - * @property-read bool $autoCreateColumns - * @property-read bool $usesCustomStub - * @property-read bool $isProcessed + * @property-read PowerGridStub $stub; + * @property-read Datasource $datasource; + * @property-read string $name; + * @property-read string $namespace + * @property-read string $folder + * @property-read string $filename + * @property-read string $htmlTag + * @property-read string $fqn + * @property-read string $databaseTable + * @property-read string $model + * @property-read string $modelFqn + * @property-read bool $autoCreateColumns + * @property-read bool $usesCustomStub + * @property-read bool $isProcessed */ final class PowerGridComponentMaker { @@ -67,7 +68,7 @@ public function __construct(string $name) public static function make(string $name): self { - return (new self($name)); + return new self($name); } public function requiresDatabaseTableName(): bool @@ -281,12 +282,15 @@ private function livewireNamespace(): string return strval(config('livewire.class_namespace')); } + /** + * @throws Exception + */ public function __get(string $name): mixed { if (property_exists($this, $name)) { return $this->$name; } - throw new \Exception("Attribute [{$name}] does not exist."); + throw new Exception("Attribute [{$name}] does not exist."); } } diff --git a/src/Commands/Support/PowerGridStub.php b/src/Commands/Support/PowerGridStub.php index 41c835252..f9c3a7143 100644 --- a/src/Commands/Support/PowerGridStub.php +++ b/src/Commands/Support/PowerGridStub.php @@ -30,14 +30,14 @@ private function ensureContentCompatibility(): void // Ensure legacy variables are properly replaced. // The order variables are replaced interfere in the result $this->content = str($this->content) - ->replace('{{ livewireClassNamespace }}', '{{ namespace }}') - ->replace('{{ subFolder }}', '') - ->replace('\{{ modelName }}', '{{ model }}') - ->replace('{{ modelName }}', '{{ modelFqn }}') - ->replace('{{ modelLastName }}', '{{ model }}') - ->replace('{{ datasource }}', '{{ PowerGridFields }}') - ->replace('{{ dataBaseTableName }}', '{{ databaseTableName }}') - ->toString(); + ->replace('{{ livewireClassNamespace }}', '{{ namespace }}') + ->replace('{{ subFolder }}', '') + ->replace('\{{ modelName }}', '{{ model }}') + ->replace('{{ modelName }}', '{{ modelFqn }}') + ->replace('{{ modelLastName }}', '{{ model }}') + ->replace('{{ datasource }}', '{{ PowerGridFields }}') + ->replace('{{ dataBaseTableName }}', '{{ databaseTableName }}') + ->toString(); } public function render(): string @@ -50,7 +50,6 @@ public function render(): string } /** - * * @return Collection */ public function listStubVars(): Collection @@ -59,7 +58,6 @@ public function listStubVars(): Collection } /** - * * @return Collection */ public function listVars(): Collection diff --git a/src/Commands/UpdateCommand.php b/src/Commands/UpdateCommand.php index c1ce241a6..0278a0270 100644 --- a/src/Commands/UpdateCommand.php +++ b/src/Commands/UpdateCommand.php @@ -2,6 +2,7 @@ namespace PowerComponents\LivewirePowerGrid\Commands; +use Composer\Factory; use Exception; use Illuminate\Console\Command; use Illuminate\Support\Facades\Log; @@ -18,7 +19,7 @@ class UpdateCommand extends Command public function handle(): int { - if (!class_exists(\Composer\Factory::class)) { + if (!class_exists(Factory::class)) { warning('UpdateCommand: You need to install composer: composer require composer/composer --dev'); return self::SUCCESS; diff --git a/src/Components/Exports/Export.php b/src/Components/Exports/Export.php index 1cc916300..13c41d576 100644 --- a/src/Components/Exports/Export.php +++ b/src/Components/Exports/Export.php @@ -37,10 +37,10 @@ public function setData(array $columns, Collection $data): Export public function prepare(Collection $data, array $columns, bool $stripTags): array { - $header = collect([]); + $header = collect(); $data = $data->transform(function ($row) use ($columns, $header, $stripTags) { - $item = collect([]); + $item = collect(); collect($columns)->each(function ($column) use ($row, $header, $item, $stripTags) { /** @var Model|stdClass $row */ @@ -86,12 +86,12 @@ public function prepare(Collection $data, array $columns, bool $stripTags): arra } }); - return $item->toArray(); + return $item->all(); }); return [ - 'headers' => $header->toArray(), - 'rows' => $data->toArray(), + 'headers' => $header->all(), + 'rows' => $data->all(), ]; } } diff --git a/src/Components/Filters/Builders/Boolean.php b/src/Components/Filters/Builders/Boolean.php index 2ba234b37..0d06056c7 100644 --- a/src/Components/Filters/Builders/Boolean.php +++ b/src/Components/Filters/Builders/Boolean.php @@ -2,6 +2,7 @@ namespace PowerComponents\LivewirePowerGrid\Components\Filters\Builders; +use Closure; use Illuminate\Database\Eloquent\Builder as EloquentBuilder; use Illuminate\Database\Query\Builder as QueryBuilder; use Illuminate\Support\Collection; @@ -11,7 +12,7 @@ class Boolean extends BuilderBase public function builder(EloquentBuilder|QueryBuilder $builder, string $field, int|array|string|null $values): void { if (data_get($this->filterBase, 'builder')) { - /** @var \Closure $closure */ + /** @var Closure $closure */ $closure = data_get($this->filterBase, 'builder'); $closure($builder, $values); @@ -37,7 +38,7 @@ public function builder(EloquentBuilder|QueryBuilder $builder, string $field, in public function collection(Collection $collection, string $field, int|array|string|null $values): Collection { if (data_get($this->filterBase, 'collection')) { - /** @var \Closure $closure */ + /** @var Closure $closure */ $closure = data_get($this->filterBase, 'collection'); return $closure($collection, $values); diff --git a/src/Components/Filters/Builders/DatePicker.php b/src/Components/Filters/Builders/DatePicker.php index e0130f4ec..c4bef3137 100644 --- a/src/Components/Filters/Builders/DatePicker.php +++ b/src/Components/Filters/Builders/DatePicker.php @@ -2,6 +2,7 @@ namespace PowerComponents\LivewirePowerGrid\Components\Filters\Builders; +use Closure; use Illuminate\Database\Eloquent\Builder as EloquentBuilder; use Illuminate\Database\Query\Builder as QueryBuilder; use Illuminate\Support\{Carbon, Collection}; @@ -25,7 +26,7 @@ public function builder(EloquentBuilder|QueryBuilder $builder, string $field, in ]; if (data_get($this->filterBase, 'builder')) { - /** @var \Closure $closure */ + /** @var Closure $closure */ $closure = data_get($this->filterBase, 'builder'); $closure($builder, $values); @@ -49,7 +50,7 @@ public function collection(Collection $collection, string $field, int|array|stri ]; if (data_get($this->filterBase, 'collection')) { - /** @var \Closure $closure */ + /** @var Closure $closure */ $closure = data_get($this->filterBase, 'collection'); return $closure($collection, $values); diff --git a/src/Components/Filters/Builders/DateTimePicker.php b/src/Components/Filters/Builders/DateTimePicker.php index 34f82f38a..617ccbb4b 100644 --- a/src/Components/Filters/Builders/DateTimePicker.php +++ b/src/Components/Filters/Builders/DateTimePicker.php @@ -2,6 +2,7 @@ namespace PowerComponents\LivewirePowerGrid\Components\Filters\Builders; +use Closure; use Illuminate\Database\Eloquent\Builder as EloquentBuilder; use Illuminate\Database\Query\Builder as QueryBuilder; use Illuminate\Support\{Carbon, Collection}; @@ -25,7 +26,7 @@ public function builder(EloquentBuilder|QueryBuilder $builder, string $field, in ]; if (data_get($this->filterBase, 'builder')) { - /** @var \Closure $closure */ + /** @var Closure $closure */ $closure = data_get($this->filterBase, 'builder'); $closure($builder, $values); @@ -49,7 +50,7 @@ public function collection(Collection $collection, string $field, int|array|stri ]; if (data_get($this->filterBase, 'collection')) { - /** @var \Closure $closure */ + /** @var Closure $closure */ $closure = data_get($this->filterBase, 'collection'); return $closure($collection, $values); diff --git a/src/Components/Filters/Builders/InputText.php b/src/Components/Filters/Builders/InputText.php index 9cce80cb9..a077cd569 100644 --- a/src/Components/Filters/Builders/InputText.php +++ b/src/Components/Filters/Builders/InputText.php @@ -2,6 +2,8 @@ namespace PowerComponents\LivewirePowerGrid\Components\Filters\Builders; +use Closure; +use Exception; use Illuminate\Database\Eloquent\{Builder, Builder as EloquentBuilder}; use Illuminate\Database\Query\Builder as QueryBuilder; use Illuminate\Support\{Collection, Str}; @@ -23,7 +25,7 @@ public function builder(EloquentBuilder|QueryBuilder $builder, string $field, in } if (data_get($this->filterBase, 'builder')) { - /** @var \Closure $closure */ + /** @var Closure $closure */ $closure = data_get($this->filterBase, 'builder'); $closure($builder, $values); @@ -41,6 +43,9 @@ public function builder(EloquentBuilder|QueryBuilder $builder, string $field, in $value = $value[key($value)]; } + /** + * @throws Exception + */ $matchOperatorQuery = function (string $selected, EloquentBuilder|QueryBuilder $query, string $field, mixed $value) { match ($selected) { 'is' => $query->where($field, '=', $value), @@ -86,7 +91,7 @@ public function builder(EloquentBuilder|QueryBuilder $builder, string $field, in public function collection(Collection $collection, string $field, int|array|string|null $values): Collection { if (data_get($this->filterBase, 'collection')) { - /** @var \Closure $closure */ + /** @var Closure $closure */ $closure = data_get($this->filterBase, 'collection'); return $closure($collection, $values); @@ -117,7 +122,7 @@ public function collection(Collection $collection, string $field, int|array|stri 'is_empty' => $collection->filter(function ($row) use ($field) { $row = (object) $row; - return $row->{$field} == '' || is_null($row->{$field}); // @phpstan-ignore-line + return blank($row->{$field}); }), 'is_not_empty' => $collection->filter(function ($row) use ($field) { $row = (object) $row; @@ -139,12 +144,12 @@ public function collection(Collection $collection, string $field, int|array|stri default => $collection->filter(function ($row) use ($field, $value) { $row = (object) $row; - return false !== stristr($row->{$field}, strtolower($value)); + return stristr($row->{$field}, strtolower($value)) !== false; }), }; } - private function builderRelation(string $relation, string $field): \Closure + private function builderRelation(string $relation, string $field): Closure { return function (Builder $query, array $params) use ($relation, $field) { $value = $params['value']; diff --git a/src/Components/Filters/Builders/Number.php b/src/Components/Filters/Builders/Number.php index 4da53cb17..a77ffb898 100644 --- a/src/Components/Filters/Builders/Number.php +++ b/src/Components/Filters/Builders/Number.php @@ -2,6 +2,7 @@ namespace PowerComponents\LivewirePowerGrid\Components\Filters\Builders; +use Closure; use Illuminate\Database\Eloquent\{Builder}; use Illuminate\Database\Query\Builder as QueryBuilder; use Illuminate\Support\Collection; @@ -14,7 +15,7 @@ public function builder(Builder|QueryBuilder $builder, string $field, int|array| $decimal = data_get($this->filterBase, 'decimal'); if (data_get($this->filterBase, 'builder')) { - /** @var \Closure $closure */ + /** @var Closure $closure */ $closure = data_get($this->filterBase, 'builder'); $closure($builder, $values); @@ -75,7 +76,7 @@ public function collection(Collection $collection, string $field, int|array|stri $decimal = data_get($this->filterBase, 'decimal'); if (data_get($this->filterBase, 'collection')) { - /** @var \Closure $closure */ + /** @var Closure $closure */ $closure = data_get($this->filterBase, 'collection'); return $closure($collection, $values); diff --git a/src/Components/Filters/Builders/Select.php b/src/Components/Filters/Builders/Select.php index ba23a9869..67cec5bfc 100644 --- a/src/Components/Filters/Builders/Select.php +++ b/src/Components/Filters/Builders/Select.php @@ -2,6 +2,7 @@ namespace PowerComponents\LivewirePowerGrid\Components\Filters\Builders; +use Closure; use Illuminate\Database\Eloquent\{Builder}; use Illuminate\Database\Query\Builder as QueryBuilder; use Illuminate\Support\Collection; @@ -11,7 +12,7 @@ class Select extends BuilderBase public function builder(Builder|QueryBuilder $builder, string $field, int|array|string|null $values): void { if (data_get($this->filterBase, 'builder')) { - /** @var \Closure $closure */ + /** @var Closure $closure */ $closure = data_get($this->filterBase, 'builder'); $closure($builder, $values); @@ -32,7 +33,7 @@ public function builder(Builder|QueryBuilder $builder, string $field, int|array| public function collection(Collection $collection, string $field, int|array|string|null $values): Collection { if (data_get($this->filterBase, 'collection')) { - /** @var \Closure $closure */ + /** @var Closure $closure */ $closure = data_get($this->filterBase, 'collection'); return $closure($collection, $values); diff --git a/src/Components/Filters/Builders/WithMultiSelectBuilder.php b/src/Components/Filters/Builders/WithMultiSelectBuilder.php index dd98eea7b..d1c099344 100644 --- a/src/Components/Filters/Builders/WithMultiSelectBuilder.php +++ b/src/Components/Filters/Builders/WithMultiSelectBuilder.php @@ -2,6 +2,7 @@ namespace PowerComponents\LivewirePowerGrid\Components\Filters\Builders; +use Closure; use Illuminate\Database\Eloquent\{Builder}; use Illuminate\Database\Query\Builder as QueryBuilder; use Illuminate\Support\Collection; @@ -11,7 +12,7 @@ trait WithMultiSelectBuilder public function builder(Builder|QueryBuilder $builder, string $field, array|int|string|null $values): void { if (data_get($this->filterBase, 'builder')) { - /** @var \Closure $closure */ + /** @var Closure $closure */ $closure = data_get($this->filterBase, 'builder'); $closure($builder, $values); @@ -25,7 +26,6 @@ public function builder(Builder|QueryBuilder $builder, string $field, array|int| return; } - /** @var array $values */ foreach ($values as $value) { if ($value === '') { $empty = true; @@ -40,7 +40,7 @@ public function builder(Builder|QueryBuilder $builder, string $field, array|int| public function collection(Collection $collection, string $field, array|int|string|null $values): Collection { if (data_get($this->filterBase, 'collection')) { - /** @var \Closure $closure */ + /** @var Closure $closure */ $closure = data_get($this->filterBase, 'collection'); return $closure($collection, $values); @@ -52,7 +52,6 @@ public function collection(Collection $collection, string $field, array|int|stri return $collection; } - /** @var array $values */ foreach ($values as $value) { if ($value === '') { $empty = true; diff --git a/src/Components/Filters/FilterBase.php b/src/Components/Filters/FilterBase.php index 0a84b769a..9e231206c 100644 --- a/src/Components/Filters/FilterBase.php +++ b/src/Components/Filters/FilterBase.php @@ -2,15 +2,16 @@ namespace PowerComponents\LivewirePowerGrid\Components\Filters; +use Closure; use Livewire\Wireable; class FilterBase implements Wireable { public string $className = ''; - public ?\Closure $builder = null; + public ?Closure $builder = null; - public ?\Closure $collection = null; + public ?Closure $collection = null; public string $component = ''; @@ -31,7 +32,7 @@ public function __construct( $this->className = get_called_class(); } - public function builder(\Closure $closure): self + public function builder(Closure $closure): self { $this->builder = $closure; @@ -46,7 +47,7 @@ public function filterRelation(string $relation, string $field): self return $this; } - public function collection(\Closure $closure): self + public function collection(Closure $closure): self { $this->collection = $closure; diff --git a/src/Components/Filters/FilterSelect.php b/src/Components/Filters/FilterSelect.php index dfc8fabb9..a2cb0147e 100644 --- a/src/Components/Filters/FilterSelect.php +++ b/src/Components/Filters/FilterSelect.php @@ -2,6 +2,7 @@ namespace PowerComponents\LivewirePowerGrid\Components\Filters; +use Closure; use Illuminate\Support\{Collection}; use Illuminate\View\ComponentAttributeBag; @@ -9,7 +10,7 @@ class FilterSelect extends FilterBase { public string $key = 'select'; - public array|Collection|\Closure $dataSource; + public array|Collection|Closure $dataSource; public string $optionValue = ''; @@ -28,7 +29,7 @@ public function depends(array $fields): FilterSelect return $this; } - public function dataSource(Collection|array|\Closure $collection): FilterSelect + public function dataSource(Collection|array|Closure $collection): FilterSelect { $this->dataSource = $collection; @@ -63,7 +64,7 @@ public static function getWireAttributes(string $field, string $title): array 'wire:model' => 'filters.select.' . $field, 'wire:input.live.debounce.600ms' => 'filterSelect(\'' . $field . '\', \'' . $title . '\')', ])) - ->toArray(); + ->all(); } public function params(array $params): FilterSelect diff --git a/src/Components/Rules/BaseRule.php b/src/Components/Rules/BaseRule.php index ef5acba93..bcec07465 100644 --- a/src/Components/Rules/BaseRule.php +++ b/src/Components/Rules/BaseRule.php @@ -4,6 +4,7 @@ use Closure; +use InvalidArgumentException; use Livewire\Wireable; /** @@ -22,7 +23,7 @@ class BaseRule implements Wireable public function setCondition(string $condition, Closure $closure): self { if ($this->hasCondition === true) { - throw new \InvalidArgumentException('A rule must have only one condition.'); + throw new InvalidArgumentException('A rule must have only one condition.'); } $this->hasCondition = true; diff --git a/src/Components/Rules/Support/DispatchRule.php b/src/Components/Rules/Support/DispatchRule.php index c9c5dc045..63f9447ac 100644 --- a/src/Components/Rules/Support/DispatchRule.php +++ b/src/Components/Rules/Support/DispatchRule.php @@ -3,9 +3,13 @@ namespace PowerComponents\LivewirePowerGrid\Components\Rules\Support; use Illuminate\Support\Js; +use JsonException; class DispatchRule { + /** + * @throws JsonException + */ public function apply(array $ruleData): array { $output = []; @@ -13,7 +17,7 @@ public function apply(array $ruleData): array $event = strval(data_get($ruleData, 'event')); $params = (array) data_get($ruleData, 'params', []); - $output['attributes'] = ['wire:click' => "\$dispatch('{$event}', " . Js::from($params) . ")"]; + $output['attributes'] = ['wire:click' => "\$dispatch('{$event}', " . Js::from($params) . ')']; return $output; } diff --git a/src/Components/Rules/Support/DispatchToRule.php b/src/Components/Rules/Support/DispatchToRule.php index e951a4362..32d36963d 100644 --- a/src/Components/Rules/Support/DispatchToRule.php +++ b/src/Components/Rules/Support/DispatchToRule.php @@ -3,9 +3,13 @@ namespace PowerComponents\LivewirePowerGrid\Components\Rules\Support; use Illuminate\Support\Js; +use JsonException; class DispatchToRule { + /** + * @throws JsonException + */ public function apply(array $ruleData): array { $output = []; @@ -14,7 +18,7 @@ public function apply(array $ruleData): array $event = strval(data_get($ruleData, 'event')); $params = (array) data_get($ruleData, 'params'); - $output['attributes'] = ['wire:click' => "\$dispatchTo('{$to}','{$event}', " . Js::from($params) . ")"]; + $output['attributes'] = ['wire:click' => "\$dispatchTo('{$to}','{$event}', " . Js::from($params) . ')']; return $output; } diff --git a/src/Components/Rules/Support/SetAttributeRule.php b/src/Components/Rules/Support/SetAttributeRule.php index 40ba1e58a..1ef012271 100644 --- a/src/Components/Rules/Support/SetAttributeRule.php +++ b/src/Components/Rules/Support/SetAttributeRule.php @@ -4,9 +4,13 @@ use Illuminate\Support\Js; use Illuminate\View\ComponentAttributeBag; +use JsonException; class SetAttributeRule { + /** + * @throws JsonException + */ public function apply(array $ruleData): array { $output = []; diff --git a/src/Concerns/Checkbox.php b/src/Concerns/Checkbox.php index d8812935f..112a2a673 100644 --- a/src/Concerns/Checkbox.php +++ b/src/Concerns/Checkbox.php @@ -5,6 +5,7 @@ use Exception; use Illuminate\Database\Eloquent\Model; use Illuminate\Pagination\AbstractPaginator; +use stdClass; use Throwable; trait Checkbox @@ -38,7 +39,7 @@ public function selectCheckboxAll(): void } /** @phpstan-ignore-next-line */ - collect($data->items())->each(function (array|Model|\stdClass $model) { + collect($data->items())->each(function (array|Model|stdClass $model) { $value = $model->{$this->checkboxAttribute}; $hide = (bool) data_get( diff --git a/src/Concerns/Filter.php b/src/Concerns/Filter.php index 40ac3d3c2..256d20e1c 100644 --- a/src/Concerns/Filter.php +++ b/src/Concerns/Filter.php @@ -2,7 +2,9 @@ namespace PowerComponents\LivewirePowerGrid\Concerns; +use Closure; use DateTimeZone; +use Exception; use Illuminate\Support\{Arr, Carbon, Collection, Str}; use Livewire\Attributes\On; use PowerComponents\LivewirePowerGrid\Column; @@ -19,6 +21,9 @@ trait Filter public bool $showFilters = false; + /** + * @throws Exception + */ public function clearFilter(string $field = '', bool $emit = true): void { collect($this->filters()) @@ -28,7 +33,6 @@ public function clearFilter(string $field = '', bool $emit = true): void * and both fields should also be cleaned. * Here we verify if there are filter numbers and their fields. */ - $extraFieldsToClear = []; if (!empty($this->filters['number'])) { @@ -76,7 +80,7 @@ public function clearFilter(string $field = '', bool $emit = true): void foreach ($extraFieldsToClear as $fieldToClear) { $unset($filter, $fieldToClear, null); } - }; + } }); if ($emit) { @@ -86,6 +90,9 @@ public function clearFilter(string $field = '', bool $emit = true): void $this->persistState('filters'); } + /** + * @throws Exception + */ public function clearAllFilters(): void { $this->enabledFilters = []; @@ -102,6 +109,9 @@ public function toggleFilters(): void $this->showFilters = !$this->showFilters; } + /** + * @throws Exception + */ #[On('pg:datePicker-{tableName}')] public function datePickerChanged( array $selectedDates, @@ -152,6 +162,9 @@ public function datePickerChanged( $this->persistState('filters'); } + /** + * @throws Exception + */ #[On('pg:multiSelect-{tableName}')] public function multiSelectChanged( string $field, @@ -173,6 +186,9 @@ public function multiSelectChanged( $this->persistState('filters'); } + /** + * @throws Exception + */ public function filterSelect(string $field, string $label): void { $this->resetPage(); @@ -190,6 +206,9 @@ public function filterSelect(string $field, string $label): void $this->persistState('filters'); } + /** + * @throws Exception + */ public function filterNumberStart(string $field, array $params, string $value): void { extract($params); @@ -207,6 +226,9 @@ public function filterNumberStart(string $field, array $params, string $value): $this->persistState('filters'); } + /** + * @throws Exception + */ public function filterNumberEnd(string $field, array $params, string $value): void { extract($params); @@ -224,6 +246,9 @@ public function filterNumberEnd(string $field, array $params, string $value): vo $this->persistState('filters'); } + /** + * @throws Exception + */ public function filterBoolean(string $field, string $value, string $label): void { $this->resetPage(); @@ -239,6 +264,9 @@ public function filterBoolean(string $field, string $value, string $label): void $this->persistState('filters'); } + /** + * @throws Exception + */ public function filterInputText(string $field, string $value, string $label = ''): void { $this->resetPage(); @@ -254,6 +282,9 @@ public function filterInputText(string $field, string $value, string $label = '' $this->persistState('filters'); } + /** + * @throws Exception + */ public function filterInputTextOptions(string $field, string $value, string $label = ''): void { data_set($this->filters, 'input_text_options.' . $field, $value); @@ -299,7 +330,7 @@ private function resolveFilters(): void $this->columns = collect($this->columns)->map(function ($column) use ($filter) { if (data_get($column, 'field') === data_get($filter, 'column') || data_get($column, 'dataField') === data_get($filter, 'column')) { - if (data_get($filter, 'dataSource') instanceof \Closure) { + if (data_get($filter, 'dataSource') instanceof Closure) { $depends = (array) data_get($filter, 'depends'); $closure = data_get($filter, 'dataSource'); @@ -343,7 +374,7 @@ private function resolveFilters(): void } return $column; - })->toArray(); + })->all(); }); } @@ -377,8 +408,7 @@ public function listColumnForQueryString(): Collection } /** - * - * @param string $prefix Prefix each field in URL + * @param string $prefix Prefix each field in URL */ protected function powerGridQueryString(string $prefix = ''): array { @@ -388,11 +418,11 @@ protected function powerGridQueryString(string $prefix = ''): array foreach (Arr::dot($this->filters()) as $filter) { $as = str($filter->field) - ->when(!empty($prefix), fn ($c) => $c->prepend($prefix . '_')) + ->when(filled($prefix), fn ($c) => $c->prepend($prefix . '_')) ->replace('.', '_') ->replaceMatches('/\_+/', '_'); - if (!empty(request()->get($as))) { + if (filled(request()->get($as))) { $this->addEnabledFilters($filter->field, strval($columns->get($filter->field, $filter->field))); } @@ -420,7 +450,7 @@ protected function powerGridQueryString(string $prefix = ''): array 'except' => '', ]; - if ($fieldProcessed === false && !is_null(request()->get($_start))) { + if (filled(request()->get($_start))) { $this->addEnabledFilters($filter->field . '_start', strval($columns->get($filter->field, $filter->field))); $fieldProcessed = true; @@ -431,10 +461,8 @@ protected function powerGridQueryString(string $prefix = ''): array 'except' => '', ]; - if ($fieldProcessed === false && !is_null(request()->get($_end))) { + if ($fieldProcessed === false && filled(request()->get($_end))) { $this->addEnabledFilters($filter->field . '_end', strval($columns->get($filter->field, $filter->field))); - - $fieldProcessed = true; } continue; diff --git a/src/Concerns/HasActions.php b/src/Concerns/HasActions.php index 09997b8fc..463af1cf1 100644 --- a/src/Concerns/HasActions.php +++ b/src/Concerns/HasActions.php @@ -207,7 +207,7 @@ public function resolveActionRules(mixed $row): array [ 'component' => data_get($bladeComponent, 'component'), 'params' => new ComponentAttributeBag( - array_merge((array)data_get($bladeComponent, 'params')) + array_merge((array) data_get($bladeComponent, 'params')) ), ], ); @@ -223,6 +223,6 @@ public function resolveActionRules(mixed $row): array 'replaceHtml' => $html ?? '', ]; }) - ->toArray(); + ->all(); } } diff --git a/src/Concerns/Listeners.php b/src/Concerns/Listeners.php index 5f1788978..be3ae4024 100644 --- a/src/Concerns/Listeners.php +++ b/src/Concerns/Listeners.php @@ -2,6 +2,7 @@ namespace PowerComponents\LivewirePowerGrid\Concerns; +use Exception; use Livewire\Attributes\On; /** @codeCoverageIgnore */ @@ -23,6 +24,9 @@ public function toggleableChanged(string $id, string $field, string $value): voi $this->onUpdatedToggleable($id, $field, $value); } + /** + * @throws Exception + */ #[On('pg:toggleColumn-{tableName}')] public function toggleColumn(string $field): void { diff --git a/src/Concerns/ManageRow.php b/src/Concerns/ManageRow.php index e7e2bb83f..37ac2c731 100644 --- a/src/Concerns/ManageRow.php +++ b/src/Concerns/ManageRow.php @@ -3,6 +3,7 @@ namespace PowerComponents\LivewirePowerGrid\Concerns; use PowerComponents\LivewirePowerGrid\Column; +use stdClass; trait ManageRow { @@ -15,7 +16,7 @@ public function prepareRowTemplates(): void JS); } - public function shouldShowEditOnClick(\stdClass|Column|array $column, mixed $row): bool + public function shouldShowEditOnClick(stdClass|Column|array $column, mixed $row): bool { $hasPermission = boolval(data_get($column, 'editable.hasPermission', false)); @@ -37,7 +38,7 @@ public function shouldShowEditOnClick(\stdClass|Column|array $column, mixed $row return $hasPermission; } - public function shouldShowToggleable(\stdClass|Column|array $column, mixed $row): bool + public function shouldShowToggleable(stdClass|Column|array $column, mixed $row): bool { $showToggleable = boolval(data_get($column, 'toggleable.enabled', false)); diff --git a/src/Concerns/Persist.php b/src/Concerns/Persist.php index 3cecf8ac0..0f6e80e14 100644 --- a/src/Concerns/Persist.php +++ b/src/Concerns/Persist.php @@ -5,6 +5,7 @@ use Exception; use Illuminate\Support\Facades\{Cache, Cookie, Session}; use PowerComponents\LivewirePowerGrid\PowerGridComponent; +use Psr\SimpleCache\InvalidArgumentException; /** @codeCoverageIgnore */ trait Persist @@ -36,7 +37,7 @@ protected function persistState(string $tableItem): void $state['columns'] = collect($this->columns) ->map(fn ($column) => (object) $column) ->mapWithKeys(fn ($column) => [$column->field => $column->hidden]) - ->toArray(); + ->all(); } if (in_array('filters', $this->persist) || $tableItem === 'filters') { @@ -65,7 +66,7 @@ protected function persistState(string $tableItem): void } /** - * @throws Exception + * @throws Exception|InvalidArgumentException */ private function restoreState(): void { @@ -88,7 +89,7 @@ private function restoreState(): void } return (object) $column; - })->toArray(); + })->all(); } if (in_array('filters', $this->persist) && array_key_exists('filters', $state)) { diff --git a/src/Concerns/SoftDeletes.php b/src/Concerns/SoftDeletes.php index 33904fe31..7e91ee03e 100644 --- a/src/Concerns/SoftDeletes.php +++ b/src/Concerns/SoftDeletes.php @@ -3,8 +3,8 @@ namespace PowerComponents\LivewirePowerGrid\Concerns; use Exception; -use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Relations\MorphToMany; +use Illuminate\Database\Eloquent\{Builder, SoftDeletes as SoftDeletesTrait}; use Livewire\Attributes\On; use Throwable; @@ -24,7 +24,7 @@ public function softDeletes(string $softDeletes): void public function applySoftDeletes(Builder|MorphToMany $results, string $softDeletes): Builder|MorphToMany { throw_if( - $softDeletes && !in_array(\Illuminate\Database\Eloquent\SoftDeletes::class, class_uses(get_class($results->getModel())), true), + $softDeletes && !in_array(SoftDeletesTrait::class, class_uses(get_class($results->getModel())), true), new Exception(get_class($results->getModel()) . ' is not using the \Illuminate\Database\Eloquent\SoftDeletes trait') ); diff --git a/src/Concerns/Sorting.php b/src/Concerns/Sorting.php index e33ca2f07..94ae73d57 100644 --- a/src/Concerns/Sorting.php +++ b/src/Concerns/Sorting.php @@ -2,8 +2,10 @@ namespace PowerComponents\LivewirePowerGrid\Concerns; +use Exception; use Illuminate\Support\Collection; use PowerComponents\LivewirePowerGrid\Column; +use stdClass; trait Sorting { @@ -15,6 +17,9 @@ trait Sorting public array $sortArray = []; + /** + * @throws Exception + */ public function sortBy(string $field, string $direction = 'asc'): void { if ($this->multiSort) { @@ -87,7 +92,7 @@ public function applySortingArray(Collection $query): Collection public function getLabelFromColumn(string $field): string { $filter = collect($this->columns)->filter( - fn (Column|\stdClass|array $column) => data_get($column, 'dataField') == $field + fn (Column|stdClass|array $column) => data_get($column, 'dataField') == $field )->map(fn ($column) => (array) $column) ->first(); diff --git a/src/Concerns/Summarize.php b/src/Concerns/Summarize.php index 86fa6ec83..0fd5ad0ce 100644 --- a/src/Concerns/Summarize.php +++ b/src/Concerns/Summarize.php @@ -3,6 +3,7 @@ namespace PowerComponents\LivewirePowerGrid\Concerns; use PowerComponents\LivewirePowerGrid\Column; +use stdClass; trait Summarize { @@ -30,7 +31,7 @@ private function resolveSummarizeColumn(): void public function hasSummarizeInColumns(): bool { return collect($this->columns) - ->filter(function (array|\stdClass|Column $column) { // @phpstan-ignore-line + ->filter(function (array|stdClass|Column $column) { // @phpstan-ignore-line return data_get($column, 'properties.summarize'); })->count() > 0; } diff --git a/src/Concerns/ToggleDetail.php b/src/Concerns/ToggleDetail.php index 15303100c..c5cd75848 100644 --- a/src/Concerns/ToggleDetail.php +++ b/src/Concerns/ToggleDetail.php @@ -3,7 +3,7 @@ namespace PowerComponents\LivewirePowerGrid\Concerns; use Exception; -use Illuminate\Support\Collection as BaseCollection; +use Illuminate\Support\{Collection as BaseCollection, Enumerable}; use Livewire\Attributes\On; trait ToggleDetail @@ -44,8 +44,8 @@ public function toggleDetail(string $id): void { $detailStates = (array) data_get($this->setUp, 'detail.state'); - if (boolval(data_get($this->setUp, 'detail.collapseOthers'))) { - /** @var \Illuminate\Support\Enumerable<(int|string), (int|string)> $except */ + if (filled(data_get($this->setUp, 'detail.collapseOthers'))) { + /** @var Enumerable<(int|string), (int|string)> $except */ $except = $id; collect($detailStates)->except($except) ->filter(fn ($state) => boolval($state))->keys() @@ -63,6 +63,9 @@ public function toggleDetail(string $id): void } } + /** + * @throws Exception + */ private function throwFeatureDetail(): void { if ( diff --git a/src/DataSource/Builder.php b/src/DataSource/Builder.php index 1ca4beca5..f17ccfd41 100644 --- a/src/DataSource/Builder.php +++ b/src/DataSource/Builder.php @@ -19,6 +19,8 @@ DataSource\Support\Sql, PowerGridComponent, Support\PowerGridTableCache}; +use stdClass; +use Throwable; class Builder { @@ -147,8 +149,8 @@ public function filterContains(): Builder $columnList = $this->getColumnList($modelTable); collect($this->component->columns) - ->filter(fn (\stdClass|array|Column $column) => (bool) data_get($column, 'searchable')) - ->each(function (\stdClass|array|Column $column) use ($query, $search, $columnList) { + ->filter(fn (stdClass|array|Column $column) => (bool) data_get($column, 'searchable')) + ->each(function (stdClass|array|Column $column) use ($query, $search, $columnList) { $field = $this->getDataField($column); [$table, $field] = $this->splitField($field); @@ -164,7 +166,7 @@ public function filterContains(): Builder fn (EloquentBuilder|QueryBuilder $query) => $query->orWhere("{$table}.{$field}", Sql::like($query), "%{$search}%"), fn (EloquentBuilder|QueryBuilder $query) => $query->orWhere($field, Sql::like($query), "%{$search}%"), ); - } catch (\Throwable) { + } catch (Throwable) { $query ->when( $table, @@ -271,7 +273,7 @@ private function getColumnList(string $modelTable): array ->pluck('type', 'name') ->toArray() ); - } catch (\Throwable $throwable) { + } catch (Throwable $throwable) { logger()->warning('PowerGrid [getColumnList] warning: ', [ 'table' => $modelTable, 'throwable' => $throwable->getTrace(), @@ -281,7 +283,7 @@ private function getColumnList(string $modelTable): array } } - private function getDataField(Column|\stdClass|array $column): string + private function getDataField(Column|stdClass|array $column): string { return strval(data_get($column, 'dataField')) ?: strval(data_get($column, 'field')); } diff --git a/src/DataSource/Collection.php b/src/DataSource/Collection.php index bc1e3ac32..c516c86bb 100644 --- a/src/DataSource/Collection.php +++ b/src/DataSource/Collection.php @@ -3,6 +3,7 @@ namespace PowerComponents\LivewirePowerGrid\DataSource; use Illuminate\Container\Container; +use Illuminate\Contracts\Container\BindingResolutionException; use Illuminate\Pagination\{LengthAwarePaginator, Paginator}; use Illuminate\Support\{Collection as BaseCollection, Str}; use PowerComponents\LivewirePowerGrid\Components\Filters\Builders\{Boolean, @@ -20,7 +21,7 @@ class Collection use InputOperators; public function __construct( - private BaseCollection $collection, + private BaseCollection $collection, private readonly PowerGridComponent $powerGridComponent ) { } @@ -32,10 +33,13 @@ public static function make( return new Collection($collection, $powerGridComponent); } + /** + * @throws BindingResolutionException + */ public static function paginate(BaseCollection $results, int $pageSize): LengthAwarePaginator { $pageSize = ($pageSize == '0') ? $results->count() : $pageSize; - $page = Paginator::resolveCurrentPage('page'); + $page = Paginator::resolveCurrentPage(); $total = $results->count(); @@ -45,6 +49,9 @@ public static function paginate(BaseCollection $results, int $pageSize): LengthA ]); } + /** + * @throws BindingResolutionException + */ protected static function paginator(BaseCollection $items, int $total, int $perPage, int $currentPage, array $options): LengthAwarePaginator { /** @var LengthAwarePaginator $paginator */ diff --git a/src/DataSource/ProcessDataSource.php b/src/DataSource/ProcessDataSource.php index 20ae50288..b3e598015 100644 --- a/src/DataSource/ProcessDataSource.php +++ b/src/DataSource/ProcessDataSource.php @@ -2,6 +2,7 @@ namespace PowerComponents\LivewirePowerGrid\DataSource; +use Illuminate\Contracts\Pagination\LengthAwarePaginator as LengthAwarePaginatorInterface; use Illuminate\Database\Eloquent\Relations\MorphToMany; use Illuminate\Pagination\{LengthAwarePaginator, Paginator}; use Illuminate\Support\Collection as BaseCollection; @@ -9,6 +10,7 @@ Processors\ModelProcessor, Processors\ScoutBuilderProcessor}; use PowerComponents\LivewirePowerGrid\PowerGridComponent; +use Throwable; class ProcessDataSource { @@ -23,7 +25,10 @@ public static function make(PowerGridComponent $powerGridComponent, array $prope return new self($powerGridComponent, $properties); } - public function get(bool $isExport = false): BaseCollection|LengthAwarePaginator|\Illuminate\Contracts\Pagination\LengthAwarePaginator|Paginator|MorphToMany + /** + * @throws Throwable + */ + public function get(bool $isExport = false): BaseCollection|LengthAwarePaginator|LengthAwarePaginatorInterface|Paginator|MorphToMany { $processors = [ CollectionProcessor::class, diff --git a/src/DataSource/Processors/CollectionProcessor.php b/src/DataSource/Processors/CollectionProcessor.php index e2f345c1b..247a34f62 100644 --- a/src/DataSource/Processors/CollectionProcessor.php +++ b/src/DataSource/Processors/CollectionProcessor.php @@ -2,9 +2,10 @@ namespace PowerComponents\LivewirePowerGrid\DataSource\Processors; +use Illuminate\Contracts\Container\BindingResolutionException; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Support\{Collection, Collection as BaseCollection}; -use PowerComponents\LivewirePowerGrid\DataSource\DataSourceProcessorInterface; +use PowerComponents\LivewirePowerGrid\DataSource\{Collection as DataSourceCollection, DataSourceProcessorInterface}; class CollectionProcessor extends DataSourceBase implements DataSourceProcessorInterface { @@ -13,9 +14,12 @@ public static function match(mixed $key): bool return $key instanceof Collection; } + /** + * @throws BindingResolutionException + */ public function process(): LengthAwarePaginator|BaseCollection { - $filters = \PowerComponents\LivewirePowerGrid\DataSource\Collection::make( + $filters = DataSourceCollection::make( new BaseCollection($this->prepareDataSource()), // @phpstan-ignore-line $this->component ) @@ -32,12 +36,12 @@ public function process(): LengthAwarePaginator|BaseCollection $this->component->filtered = $results->pluck($this->component->primaryKey)->toArray(); $perPage = $this->isExport ? $this->component->total : intval(data_get($this->component->setUp, 'footer.perPage')); - $paginated = \PowerComponents\LivewirePowerGrid\DataSource\Collection::paginate($results, $perPage); + $paginated = DataSourceCollection::paginate($results, $perPage); $results = $paginated->setCollection( $this->transform($paginated->getCollection(), $this->component) ); - }; + } return $results; } diff --git a/src/DataSource/Processors/DataSourceBase.php b/src/DataSource/Processors/DataSourceBase.php index d6bbcc118..4f89c7431 100644 --- a/src/DataSource/Processors/DataSourceBase.php +++ b/src/DataSource/Processors/DataSourceBase.php @@ -2,6 +2,9 @@ namespace PowerComponents\LivewirePowerGrid\DataSource\Processors; +use ArgumentCountError; +use Closure; +use Exception; use Illuminate\Contracts\Pagination\LengthAwarePaginator; use Illuminate\Database\Eloquent\Relations\MorphToMany; use Illuminate\Database\Eloquent\{Builder as EloquentBuilder, Model}; @@ -9,13 +12,15 @@ use Illuminate\Pagination\Paginator; use Illuminate\Support\{Collection as BaseCollection, Str}; use Illuminate\View\Concerns\ManagesLoops; +use InvalidArgumentException; use Laravel\Scout\Builder as ScoutBuilder; use PowerComponents\LivewirePowerGrid\{Column, Concerns\SoftDeletes, ManageLoops, PowerGridComponent}; +use stdClass; class DataSourceBase { - use SoftDeletes; use ManagesLoops; + use SoftDeletes; public static float $transformTime = 0; @@ -33,7 +38,7 @@ public function prepareDataSource(): mixed } /** - * @throws \Exception + * @throws Exception */ protected function applyMultipleSort(EloquentBuilder|QueryBuilder|MorphToMany $results): EloquentBuilder|QueryBuilder|MorphToMany { @@ -143,7 +148,7 @@ private static function processRows(BaseCollection $results, PowerGridComponent return [ 'action' => data_get($action, 'action'), - 'can' => $can instanceof \Closure ? $can($row) : $can, + 'can' => $can instanceof Closure ? $can($row) : $can, 'slot' => data_get($action, 'slot'), 'tag' => data_get($action, 'tag'), 'icon' => data_get($action, 'icon'), @@ -153,8 +158,8 @@ private static function processRows(BaseCollection $results, PowerGridComponent ]; }); - $actionsHtml[$rowId] = $actions->toArray(); - } catch (\ArgumentCountError $exception) { + $actionsHtml[$rowId] = $actions->all(); + } catch (ArgumentCountError $exception) { static::throwArgumentCountError($exception); // @phpstan-ignore-line } } @@ -166,8 +171,8 @@ private static function processRows(BaseCollection $results, PowerGridComponent $loopInstance->incrementLoopIndices(); })->pipe(function ($mergedData) use ($component, $row) { return $component->supportModel && $row instanceof Model // @phpstan-ignore-line - ? (object) tap($row)->forceFill($mergedData->toArray()) // @phpstan-ignore-line - : (object) $mergedData->toArray(); + ? (object) tap($row)->forceFill($mergedData->all()) // @phpstan-ignore-line + : (object) $mergedData->all(); }); }); } @@ -211,7 +216,7 @@ protected function applySummaries(MorphToMany|EloquentBuilder|BaseCollection|Que $fieldAndSummarizeMethods = explode('.', $field); if (count($fieldAndSummarizeMethods) != 2) { - throw new \InvalidArgumentException('Summary Formatter expects key "column_name.{summarize_method}", [' . $field . '] given instead.'); + throw new InvalidArgumentException('Summary Formatter expects key "column_name.{summarize_method}", [' . $field . '] given instead.'); } $fieldName = $fieldAndSummarizeMethods[0]; @@ -220,13 +225,13 @@ protected function applySummaries(MorphToMany|EloquentBuilder|BaseCollection|Que $applyFormatToSummarizeMethods = str($summarizeMethods)->replaceMatches('/\s+/', '') ->replace(['{', '}'], '') ->explode(',') - ->toArray(); + ->all(); if (in_array($summarizeMethod, $applyFormatToSummarizeMethods)) { $formattingClosure = $this->component->summarizeFormat()[$field]; if (!is_callable($formattingClosure)) { - throw new \InvalidArgumentException('Summary Formatter expects a callable function, ' . gettype($formattingClosure) . ' given instead.'); + throw new InvalidArgumentException('Summary Formatter expects a callable function, ' . gettype($formattingClosure) . ' given instead.'); } if (in_array($fieldName, [$column->field, $column->dataField])) { @@ -240,7 +245,7 @@ protected function applySummaries(MorphToMany|EloquentBuilder|BaseCollection|Que }; $this->component->columns = collect($this->component->columns) - ->map(function (array|\stdClass|Column $column) use ($results, $applySummaryFormat) { + ->map(function (array|stdClass|Column $column) use ($results, $applySummaryFormat) { $column = (object) $column; $field = strval(data_get($column, 'dataField')) ?: strval(data_get($column, 'field')); @@ -258,7 +263,10 @@ protected function applySummaries(MorphToMany|EloquentBuilder|BaseCollection|Que })->toArray(); } - private static function throwArgumentCountError(\Exception|\ArgumentCountError $exception): void + /** + * @throws Exception + */ + private static function throwArgumentCountError(Exception|ArgumentCountError $exception): void { $trace = $exception->getTrace(); @@ -269,7 +277,7 @@ private static function throwArgumentCountError(\Exception|\ArgumentCountError $ $method = strval(data_get($trace, '1.args.0')); - throw new \Exception("ArgumentCountError - method: [{$method}] - file: [{$file}]"); + throw new Exception("ArgumentCountError - method: [{$method}] - file: [{$file}]"); } } } diff --git a/src/DataSource/Processors/ModelProcessor.php b/src/DataSource/Processors/ModelProcessor.php index 90cdbfa3a..9ae27ed07 100644 --- a/src/DataSource/Processors/ModelProcessor.php +++ b/src/DataSource/Processors/ModelProcessor.php @@ -2,12 +2,14 @@ namespace PowerComponents\LivewirePowerGrid\DataSource\Processors; +use Illuminate\Contracts\Pagination\LengthAwarePaginator as LengthAwarePaginatorInterface; use Illuminate\Database\Eloquent\Builder as EloquentBuilder; use Illuminate\Database\Eloquent\Relations\MorphToMany; use Illuminate\Database\Query\Builder as QueryBuilder; use Illuminate\Pagination\{LengthAwarePaginator, Paginator}; use Illuminate\Support\Collection as BaseCollection; use PowerComponents\LivewirePowerGrid\DataSource\{Builder, DataSourceProcessorInterface}; +use Throwable; class ModelProcessor extends DataSourceBase implements DataSourceProcessorInterface { @@ -17,9 +19,9 @@ public static function match(mixed $key): bool } /** - * @throws \Throwable + * @throws Throwable */ - public function process(): BaseCollection|LengthAwarePaginator|\Illuminate\Contracts\Pagination\LengthAwarePaginator|Paginator|MorphToMany + public function process(): BaseCollection|LengthAwarePaginator|LengthAwarePaginatorInterface|Paginator|MorphToMany { $this->setCurrentTable($this->prepareDataSource()); diff --git a/src/DataSource/Support/Sql.php b/src/DataSource/Support/Sql.php index 37cf3ca7e..498e01ff6 100644 --- a/src/DataSource/Support/Sql.php +++ b/src/DataSource/Support/Sql.php @@ -14,6 +14,9 @@ class Sql */ private static array $sortStringNumberTypes = ['string', 'varchar', 'char']; + /** + * @throws Exception + */ public static function like(EloquentBuilder|QueryBuilder|null $query = null): string { if ($query) { @@ -146,7 +149,7 @@ public static function getDatabaseDriverName(): string $driverName = DB::getDriverName(); if (!is_string($driverName)) { - throw new \Exception('Could not get Database version'); + throw new Exception('Could not get Database version'); } return $driverName; @@ -160,7 +163,7 @@ public static function getDatabaseVersion(): string $version = DB::getPdo()->getAttribute(intval(constant('PDO::ATTR_SERVER_VERSION'))); if (!is_string($version)) { - throw new \Exception('Could not get Database version'); + throw new Exception('Could not get Database version'); } return $version; diff --git a/src/Livewire/LazyChild.php b/src/Livewire/LazyChild.php index 946e3a55c..f84f7c58a 100644 --- a/src/Livewire/LazyChild.php +++ b/src/Livewire/LazyChild.php @@ -8,6 +8,7 @@ use Livewire\Mechanisms\ComponentRegistry; use PowerComponents\LivewirePowerGrid\Column; use PowerComponents\LivewirePowerGrid\Concerns\ToggleDetail; +use stdClass; class LazyChild extends Component { @@ -69,7 +70,7 @@ public function actionsFromView(mixed $row): ?View return null; } - public function shouldShowEditOnClick(array|Column|\stdClass $column, mixed $row): bool + public function shouldShowEditOnClick(array|Column|stdClass $column, mixed $row): bool { /** @var string $parentComponent */ $parentComponent = app(ComponentRegistry::class)->getClass($this->parentName); @@ -77,7 +78,7 @@ public function shouldShowEditOnClick(array|Column|\stdClass $column, mixed $row return app($parentComponent)->shouldShowEditOnClick($column, $row); } - public function shouldShowToggleable(array|Column|\stdClass $column, mixed $row): bool + public function shouldShowToggleable(array|Column|stdClass $column, mixed $row): bool { /** @var string $parentComponent */ $parentComponent = app(ComponentRegistry::class)->getClass($this->parentName); diff --git a/src/Livewire/PerformanceCard.php b/src/Livewire/PerformanceCard.php index 2d24e9e02..d237adea0 100644 --- a/src/Livewire/PerformanceCard.php +++ b/src/Livewire/PerformanceCard.php @@ -3,11 +3,13 @@ namespace PowerComponents\LivewirePowerGrid\Livewire; use Illuminate\Support\Facades\{Blade, Config}; +use Laravel\Pulse\Facades\Pulse; +use Laravel\Pulse\Livewire\Card; use Livewire\Attributes\Lazy; use PowerComponents\LivewirePowerGrid\Recorders\PowerGridPerformanceRecorder; #[Lazy] -class PerformanceCard extends \Laravel\Pulse\Livewire\Card +class PerformanceCard extends Card { public function render() { @@ -18,7 +20,7 @@ public function render() $records = collect(); if (data_get($config, 'enabled')) { - $records = \Laravel\Pulse\Facades\Pulse::values('powergrid-performance') + $records = Pulse::values('powergrid-performance') ->map(function ($item) { /** @var array $value */ $value = json_decode($item->value, true); diff --git a/src/PowerGridComponent.php b/src/PowerGridComponent.php index 86184a54b..b28e52d51 100644 --- a/src/PowerGridComponent.php +++ b/src/PowerGridComponent.php @@ -14,6 +14,7 @@ use PowerComponents\LivewirePowerGrid\DataSource\Processors\{DataSourceBase}; use PowerComponents\LivewirePowerGrid\Events\PowerGridPerformanceData; use PowerComponents\LivewirePowerGrid\Exceptions\TableNameCannotCalledDefault; +use Psr\SimpleCache\InvalidArgumentException; /** * @property-read mixed $getRecords @@ -25,22 +26,26 @@ class PowerGridComponent extends Component { use Concerns\Base; use Concerns\Checkbox; - use Concerns\Radio; use Concerns\Filter; use Concerns\HasActions; use Concerns\Hooks; use Concerns\LazyManager; use Concerns\Listeners; + use Concerns\ManageRow; use Concerns\Persist; + use Concerns\Radio; use Concerns\SoftDeletes; use Concerns\Sorting; use Concerns\Summarize; use Concerns\ToggleDetail; - use Concerns\ManageRow; use WithPagination; public array $theme = []; + /** + * @throws TableNameCannotCalledDefault + * @throws Exception|InvalidArgumentException + */ public function mount(): void { $themeClass = $this->customThemeClass() ?? strval(config('livewire-powergrid.theme')); @@ -128,7 +133,7 @@ protected function getRecords(): mixed return collect(); } - if (boolval(data_get($this->setUp, 'cache.enabled')) && Cache::supportsTags()) { + if (filled(data_get($this->setUp, 'cache.enabled')) && Cache::supportsTags()) { return $this->getRecordsFromCache(); } @@ -204,6 +209,9 @@ protected function getCacheKeys(): array ]; } + /** + * @throws Exception + */ private function throwColumnAction(): void { $hasColumnAction = collect($this->columns()) @@ -215,9 +223,12 @@ private function throwColumnAction(): void } } + /** + * @throws TableNameCannotCalledDefault + */ private function throwTableName(): void { - if (blank($this->tableName) || $this->tableName === "default") { + if (blank($this->tableName) || $this->tableName === 'default') { throw new TableNameCannotCalledDefault(); } } diff --git a/src/Providers/Macros.php b/src/Providers/Macros.php index 184d199bd..914105882 100644 --- a/src/Providers/Macros.php +++ b/src/Providers/Macros.php @@ -5,8 +5,8 @@ use Illuminate\Container\Container; use Illuminate\Pagination\{LengthAwarePaginator, Paginator}; use Illuminate\Support\Js; -use Laravel\Scout\Builder; use Laravel\Scout\Contracts\PaginatesEloquentModels; +use Laravel\Scout\{Builder, Builder as ScoutBuilder}; use PowerComponents\LivewirePowerGrid\Components\Rules\RuleActions; use PowerComponents\LivewirePowerGrid\DataSource\Support\Sql; use PowerComponents\LivewirePowerGrid\{Button, Column, PowerGridComponent}; @@ -268,7 +268,7 @@ public static function actions(): void public static function builder(): void { - if (class_exists(\Laravel\Scout\Builder::class)) { + if (class_exists(ScoutBuilder::class)) { Builder::macro('paginateSafe', function ($perPage = null, $pageName = 'page', $page = null) { $engine = $this->engine(); // @phpstan-ignore-line diff --git a/src/Providers/PowerGridServiceProvider.php b/src/Providers/PowerGridServiceProvider.php index 0888f07d7..fad001bf6 100644 --- a/src/Providers/PowerGridServiceProvider.php +++ b/src/Providers/PowerGridServiceProvider.php @@ -5,6 +5,7 @@ use Illuminate\Database\Events\MigrationsEnded; use Illuminate\Support\Facades\{Blade, Event}; use Illuminate\Support\{ServiceProvider}; +use Laravel\Pulse\Facades\Pulse; use Livewire\Features\SupportLegacyModels\{EloquentCollectionSynth, EloquentModelSynth}; use Livewire\Features\SupportTesting\Testable; use Livewire\Livewire; @@ -50,7 +51,7 @@ public function register(): void $file = __DIR__ . '/../functions.php'; if (file_exists($file)) { - require_once($file); + require_once $file; } $this->app->alias(PowerGridManager::class, 'powergrid'); @@ -61,7 +62,7 @@ public function register(): void Event::listen(MigrationsEnded::class, fn () => PowerGridTableCache::forgetAll()); - if (class_exists(\Laravel\Pulse\Facades\Pulse::class)) { + if (class_exists(Pulse::class)) { Livewire::component('powergrid-performance-card', PerformanceCard::class); } diff --git a/src/Testing/TestActions.php b/src/Testing/TestActions.php index da18022e1..ef66b208d 100644 --- a/src/Testing/TestActions.php +++ b/src/Testing/TestActions.php @@ -30,7 +30,7 @@ public function assertActionHasIcon(): Closure ->flatten(1) ->first(function ($dishAction) use ($action, $icon) { /** @var array $dishAction */ - return $dishAction['action'] === $action && $dishAction['icon'] === $icon; + return $dishAction['action'] === $action && $dishAction['icon'] === $icon; }); Assert::assertNotNull($actionFound, "Failed asserting that the action '$action' has the icon '$icon'."); diff --git a/src/Traits/WithExport.php b/src/Traits/WithExport.php index 72388bb26..6b2854233 100644 --- a/src/Traits/WithExport.php +++ b/src/Traits/WithExport.php @@ -19,6 +19,7 @@ /** * @property ?Batch $exportBatch + * * @codeCoverageIgnore */ trait WithExport @@ -217,7 +218,6 @@ public function exportToCsv(bool $selected = false): BinaryFileResponse|bool /** * @throws Exception | Throwable - * */ private function export(string $exportType, bool $selected): BinaryFileResponse|bool { diff --git a/src/functions.php b/src/functions.php index 02fe48e06..0da2b5747 100644 --- a/src/functions.php +++ b/src/functions.php @@ -21,7 +21,7 @@ function powergrid_components_path(string $filename = ''): string { return base_path( str(strval(config('livewire.class_namespace'))) - ->replace('App', 'app') + ->replace('App', 'app') ->append(DIRECTORY_SEPARATOR . $filename) ->replace('\\', '/') ->replace('//', '/')