From d289f291dad81bf0259cd273e35e4f4e2b1f4c00 Mon Sep 17 00:00:00 2001 From: "M. D." Date: Thu, 18 Jul 2024 20:09:52 +0200 Subject: [PATCH 01/20] Add commands and order alphabetically --- packages/support/src/SupportServiceProvider.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/support/src/SupportServiceProvider.php b/packages/support/src/SupportServiceProvider.php index 59e30cf275..0b1015a6df 100644 --- a/packages/support/src/SupportServiceProvider.php +++ b/packages/support/src/SupportServiceProvider.php @@ -12,6 +12,8 @@ use Filament\Support\Commands\AssetsCommand; use Filament\Support\Commands\CheckTranslationsCommand; use Filament\Support\Commands\InstallCommand; use Filament\Support\Commands\MakeIssueCommand; +use Filament\Support\Commands\OptimizeClearCommand; +use Filament\Support\Commands\OptimizeCommand; use Filament\Support\Commands\UpgradeCommand; use Filament\Support\Components\ComponentManager; use Filament\Support\Components\Contracts\ScopedComponentManager; @@ -40,10 +42,11 @@ class SupportServiceProvider extends PackageServiceProvider AssetsCommand::class, CheckTranslationsCommand::class, InstallCommand::class, - UpgradeCommand::class, - MakeIssueCommand::class, MakeIssueCommandAlias::class, + OptimizeClearCommand::class, + OptimizeCommand::class, + UpgradeCommand::class, ]) ->hasConfigFile() ->hasTranslations() From ee4ab85e306aa57d19a6011a7ba1f266efda6193 Mon Sep 17 00:00:00 2001 From: "M. D." Date: Thu, 18 Jul 2024 20:10:05 +0200 Subject: [PATCH 02/20] Add `filament:optimize` command --- .../support/src/Commands/OptimizeCommand.php | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 packages/support/src/Commands/OptimizeCommand.php diff --git a/packages/support/src/Commands/OptimizeCommand.php b/packages/support/src/Commands/OptimizeCommand.php new file mode 100644 index 0000000000..fba728294b --- /dev/null +++ b/packages/support/src/Commands/OptimizeCommand.php @@ -0,0 +1,28 @@ +components->info('Caching components and blade icons to increase performance.'); + + collect([ + 'Caching components' => fn () => $this->callSilent('filament:cache-components') == 0, + 'Caching blade icons' => fn () => $this->callSilent('icons:cache') == 0, + ])->each(fn ($task, $description) => $this->components->task($description, $task)); + + $this->newLine(); + + return static::SUCCESS; + } +} From 4e7926f881975127025d6f8704c26681d3553414 Mon Sep 17 00:00:00 2001 From: "M. D." Date: Thu, 18 Jul 2024 20:10:17 +0200 Subject: [PATCH 03/20] Add `filament:optimize-clear` command --- .../src/Commands/OptimizeClearCommand.php | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 packages/support/src/Commands/OptimizeClearCommand.php diff --git a/packages/support/src/Commands/OptimizeClearCommand.php b/packages/support/src/Commands/OptimizeClearCommand.php new file mode 100644 index 0000000000..79484678ad --- /dev/null +++ b/packages/support/src/Commands/OptimizeClearCommand.php @@ -0,0 +1,28 @@ +components->info('Clearing cached components and blade icons.'); + + collect([ + 'Clearing cached Components' => fn () => $this->callSilent('filament:clear-cached-components') == 0, + 'Clearing cached Blade Icons' => fn () => $this->callSilent('icons:clear') == 0, + ])->each(fn ($task, $description) => $this->components->task($description, $task)); + + $this->newLine(); + + return static::SUCCESS; + } +} From cf045122968f23f7b6e6e3560ccb1b018bfc76b1 Mon Sep 17 00:00:00 2001 From: "M. D." Date: Thu, 18 Jul 2024 20:11:45 +0200 Subject: [PATCH 04/20] Change description --- packages/support/src/Commands/OptimizeClearCommand.php | 2 +- packages/support/src/Commands/OptimizeCommand.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/support/src/Commands/OptimizeClearCommand.php b/packages/support/src/Commands/OptimizeClearCommand.php index 79484678ad..a434797095 100644 --- a/packages/support/src/Commands/OptimizeClearCommand.php +++ b/packages/support/src/Commands/OptimizeClearCommand.php @@ -10,7 +10,7 @@ class OptimizeClearCommand extends Command { protected $signature = 'filament:optimize-clear'; - protected $description = 'Clear the cached components and blade icons.'; + protected $description = 'Remove cached components and blade icons.'; public function handle(): int { diff --git a/packages/support/src/Commands/OptimizeCommand.php b/packages/support/src/Commands/OptimizeCommand.php index fba728294b..aa1cbd43b1 100644 --- a/packages/support/src/Commands/OptimizeCommand.php +++ b/packages/support/src/Commands/OptimizeCommand.php @@ -10,11 +10,11 @@ class OptimizeCommand extends Command { protected $signature = 'filament:optimize'; - protected $description = 'Optimize Filament.'; + protected $description = 'Cache components and blade icons to increase performance.'; public function handle(): int { - $this->components->info('Caching components and blade icons to increase performance.'); + $this->components->info('Caching components and blade icons.'); collect([ 'Caching components' => fn () => $this->callSilent('filament:cache-components') == 0, From 538dfd976a9a7b3968a6e15d97168f167521ca1e Mon Sep 17 00:00:00 2001 From: "M. D." Date: Thu, 18 Jul 2024 20:19:02 +0200 Subject: [PATCH 05/20] Add README text --- packages/panels/docs/01-installation.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/packages/panels/docs/01-installation.md b/packages/panels/docs/01-installation.md index 1cfc55062c..118cf76aef 100644 --- a/packages/panels/docs/01-installation.md +++ b/packages/panels/docs/01-installation.md @@ -42,6 +42,23 @@ The Filament Panel Builder pre-installs the [Form Builder](/docs/forms), [Table ## Improving Filament panel performance +### Optimizing Filament for production + +To optimize Filament for production, you should run the following command in your deployment script: + +```bash +php artisan filament:optimize +``` + +This command will cache the Filament components and additionally the Blade Icons, which can significantly improve the performance of your Filament panels. +This command is a shorthand for the commands `php artisan icons:cache` and `php artisan filament:cache-components`. + +To clear the cached components, you can run: + +```bash +php artisan filament:optimize-clear +``` + ### Caching Blade Icons You may wish to consider running `php artisan icons:cache` locally, and also in your deployment script. This is because Filament uses the [Blade Icons](https://blade-ui-kit.com/blade-icons) package, which can be much more performant when cached. From 13d1dec3c9438a74de5d3b94513d33667a02f2f4 Mon Sep 17 00:00:00 2001 From: Dan Harrin Date: Wed, 24 Jul 2024 11:46:27 +0100 Subject: [PATCH 06/20] Update 01-installation.md --- packages/panels/docs/01-installation.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/packages/panels/docs/01-installation.md b/packages/panels/docs/01-installation.md index 118cf76aef..e3e4fbfe00 100644 --- a/packages/panels/docs/01-installation.md +++ b/packages/panels/docs/01-installation.md @@ -50,27 +50,26 @@ To optimize Filament for production, you should run the following command in you php artisan filament:optimize ``` -This command will cache the Filament components and additionally the Blade Icons, which can significantly improve the performance of your Filament panels. -This command is a shorthand for the commands `php artisan icons:cache` and `php artisan filament:cache-components`. +This command will [cache the Filament components](#caching-filament-components) and additionally the [Blade icons](#caching-blade-icons), which can significantly improve the performance of your Filament panels. This command is a shorthand for the commands `php artisan filament:cache-components` and `php artisan icons:cache`. -To clear the cached components, you can run: +To clear the caches at once, you can run: ```bash php artisan filament:optimize-clear ``` -### Caching Blade Icons +#### Caching Filament components -You may wish to consider running `php artisan icons:cache` locally, and also in your deployment script. This is because Filament uses the [Blade Icons](https://blade-ui-kit.com/blade-icons) package, which can be much more performant when cached. - -### Caching Filament components - -You may also wish to consider running `php artisan filament:cache-components` in your deployment script, especially if you have large numbers of components (resources, pages, widgets, relation managers, custom Livewire components, etc.). This will create cache files in the `bootstrap/cache/filament` directory of your application, which contain indexes for each type of component. This can significantly improve the performance of Filament in some apps, as it reduces the number of files that need to be scanned and auto-discovered for components. +If you're not using the [`filament:optimize` command](#optimizing-filament-for-production), you may wish to consider running `php artisan filament:cache-components` in your deployment script, especially if you have large numbers of components (resources, pages, widgets, relation managers, custom Livewire components, etc.). This will create cache files in the `bootstrap/cache/filament` directory of your application, which contain indexes for each type of component. This can significantly improve the performance of Filament in some apps, as it reduces the number of files that need to be scanned and auto-discovered for components. However, if you are actively developing your app locally, you should avoid using this command, as it will prevent any new components from being discovered until the cache is cleared or rebuilt. You can clear the cache at any time without rebuilding it by running `php artisan filament:clear-cached-components`. +#### Caching Blade Icons + +If you're not using the [`filament:optimize` command](#optimizing-filament-for-production), you may wish to consider running `php artisan icons:cache` locally, and also in your deployment script. This is because Filament uses the [Blade Icons](https://blade-ui-kit.com/blade-icons) package, which can be much more performant when cached. + ### Enabling OPcache on your server From the [Laravel Forge documentation](https://forge.laravel.com/docs/servers/php.html#opcache): From 117b88a45173c0b35748be944c82c0ff875c8bc7 Mon Sep 17 00:00:00 2001 From: "M. D." Date: Wed, 24 Jul 2024 13:06:55 +0200 Subject: [PATCH 07/20] Update packages/support/src/Commands/OptimizeCommand.php Co-authored-by: Dan Harrin --- packages/support/src/Commands/OptimizeCommand.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/support/src/Commands/OptimizeCommand.php b/packages/support/src/Commands/OptimizeCommand.php index aa1cbd43b1..aeb52cd337 100644 --- a/packages/support/src/Commands/OptimizeCommand.php +++ b/packages/support/src/Commands/OptimizeCommand.php @@ -10,7 +10,7 @@ class OptimizeCommand extends Command { protected $signature = 'filament:optimize'; - protected $description = 'Cache components and blade icons to increase performance.'; + protected $description = 'Cache components and Blade icons to improve performance.'; public function handle(): int { From 9a75728c3694f2ecf36994e367c1151eb638afff Mon Sep 17 00:00:00 2001 From: "M. D." Date: Wed, 24 Jul 2024 13:07:05 +0200 Subject: [PATCH 08/20] Update packages/support/src/Commands/OptimizeCommand.php Co-authored-by: Dan Harrin --- packages/support/src/Commands/OptimizeCommand.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/support/src/Commands/OptimizeCommand.php b/packages/support/src/Commands/OptimizeCommand.php index aeb52cd337..266a06583c 100644 --- a/packages/support/src/Commands/OptimizeCommand.php +++ b/packages/support/src/Commands/OptimizeCommand.php @@ -14,7 +14,7 @@ class OptimizeCommand extends Command public function handle(): int { - $this->components->info('Caching components and blade icons.'); + $this->components->info('Caching components and Blade icons...'); collect([ 'Caching components' => fn () => $this->callSilent('filament:cache-components') == 0, From 5ddd8c342fb0ef9823cb7b315d7f85ac1acf20ec Mon Sep 17 00:00:00 2001 From: "M. D." Date: Wed, 24 Jul 2024 13:18:56 +0200 Subject: [PATCH 09/20] Create CanCacheComponents.php --- .../support/src/Concerns/CanCacheComponents.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 packages/support/src/Concerns/CanCacheComponents.php diff --git a/packages/support/src/Concerns/CanCacheComponents.php b/packages/support/src/Concerns/CanCacheComponents.php new file mode 100644 index 0000000000..d0b7bb2dd0 --- /dev/null +++ b/packages/support/src/Concerns/CanCacheComponents.php @@ -0,0 +1,13 @@ + Date: Wed, 24 Jul 2024 13:22:16 +0200 Subject: [PATCH 10/20] Adjustments --- .../src/Commands/OptimizeClearCommand.php | 47 +++++++++++-------- .../support/src/Commands/OptimizeCommand.php | 47 +++++++++++-------- 2 files changed, 56 insertions(+), 38 deletions(-) diff --git a/packages/support/src/Commands/OptimizeClearCommand.php b/packages/support/src/Commands/OptimizeClearCommand.php index a434797095..ff0bbc66f9 100644 --- a/packages/support/src/Commands/OptimizeClearCommand.php +++ b/packages/support/src/Commands/OptimizeClearCommand.php @@ -1,28 +1,37 @@ components->info('Clearing cached components and blade icons.'); + use CanCacheComponents; - collect([ - 'Clearing cached Components' => fn () => $this->callSilent('filament:clear-cached-components') == 0, - 'Clearing cached Blade Icons' => fn () => $this->callSilent('icons:clear') == 0, - ])->each(fn ($task, $description) => $this->components->task($description, $task)); + protected $signature = 'filament:optimize-clear'; - $this->newLine(); + protected $description = 'Remove cached components and Blade icons.'; - return static::SUCCESS; + public function handle(): int + { + $this->components->info('Clearing cached components and Blade icons.'); + + $tasks = collect([ + 'Clearing cached Blade icons' => fn(): bool => $this->callSilent('icons:clear') === static::SUCCESS, + ]); + + if ($this->canCacheComponents()) { + $tasks->put('Clearing cached components', + fn(): bool => $this->callSilent('filament:clear-cached-components') === static::SUCCESS); + } + + $tasks->each(fn($task, $description) => $this->components->task($description, $task)); + + $this->newLine(); + + return static::SUCCESS; + } } -} diff --git a/packages/support/src/Commands/OptimizeCommand.php b/packages/support/src/Commands/OptimizeCommand.php index 266a06583c..902be08115 100644 --- a/packages/support/src/Commands/OptimizeCommand.php +++ b/packages/support/src/Commands/OptimizeCommand.php @@ -1,28 +1,37 @@ components->info('Caching components and Blade icons...'); + use CanCacheComponents; - collect([ - 'Caching components' => fn () => $this->callSilent('filament:cache-components') == 0, - 'Caching blade icons' => fn () => $this->callSilent('icons:cache') == 0, - ])->each(fn ($task, $description) => $this->components->task($description, $task)); + protected $signature = 'filament:optimize'; - $this->newLine(); + protected $description = 'Cache components and Blade icons to improve performance.'; - return static::SUCCESS; + public function handle(): int + { + $this->components->info('Caching components and Blade icons...'); + + $tasks = collect([ + 'Caching Blade icons' => fn(): bool => $this->callSilent('icons:cache') === static::SUCCESS, + ]); + + if ($this->canCacheComponents()) { + $tasks->put('Caching components', + fn(): bool => $this->callSilent('filament:cache-components') === static::SUCCESS); + } + + $tasks->each(fn($task, $description) => $this->components->task($description, $task)); + + $this->newLine(); + + return static::SUCCESS; + } } -} From 3c596db5c7004e3c6bf0696b96c25dc428ca5d62 Mon Sep 17 00:00:00 2001 From: "M. D." Date: Wed, 24 Jul 2024 13:23:05 +0200 Subject: [PATCH 11/20] composer cs --- .../src/Commands/OptimizeClearCommand.php | 58 ++++++++++--------- .../support/src/Commands/OptimizeCommand.php | 58 ++++++++++--------- .../src/Concerns/CanCacheComponents.php | 14 ++--- 3 files changed, 67 insertions(+), 63 deletions(-) diff --git a/packages/support/src/Commands/OptimizeClearCommand.php b/packages/support/src/Commands/OptimizeClearCommand.php index ff0bbc66f9..72b268b32a 100644 --- a/packages/support/src/Commands/OptimizeClearCommand.php +++ b/packages/support/src/Commands/OptimizeClearCommand.php @@ -1,37 +1,39 @@ components->info('Clearing cached components and Blade icons.'); - protected $signature = 'filament:optimize-clear'; + $tasks = collect([ + 'Clearing cached Blade icons' => fn (): bool => $this->callSilent('icons:clear') === static::SUCCESS, + ]); - protected $description = 'Remove cached components and Blade icons.'; - - public function handle(): int - { - $this->components->info('Clearing cached components and Blade icons.'); - - $tasks = collect([ - 'Clearing cached Blade icons' => fn(): bool => $this->callSilent('icons:clear') === static::SUCCESS, - ]); - - if ($this->canCacheComponents()) { - $tasks->put('Clearing cached components', - fn(): bool => $this->callSilent('filament:clear-cached-components') === static::SUCCESS); - } - - $tasks->each(fn($task, $description) => $this->components->task($description, $task)); - - $this->newLine(); - - return static::SUCCESS; + if ($this->canCacheComponents()) { + $tasks->put( + 'Clearing cached components', + fn (): bool => $this->callSilent('filament:clear-cached-components') === static::SUCCESS + ); } + + $tasks->each(fn ($task, $description) => $this->components->task($description, $task)); + + $this->newLine(); + + return static::SUCCESS; } +} diff --git a/packages/support/src/Commands/OptimizeCommand.php b/packages/support/src/Commands/OptimizeCommand.php index 902be08115..324d02cdb0 100644 --- a/packages/support/src/Commands/OptimizeCommand.php +++ b/packages/support/src/Commands/OptimizeCommand.php @@ -1,37 +1,39 @@ components->info('Caching components and Blade icons...'); - protected $signature = 'filament:optimize'; + $tasks = collect([ + 'Caching Blade icons' => fn (): bool => $this->callSilent('icons:cache') === static::SUCCESS, + ]); - protected $description = 'Cache components and Blade icons to improve performance.'; - - public function handle(): int - { - $this->components->info('Caching components and Blade icons...'); - - $tasks = collect([ - 'Caching Blade icons' => fn(): bool => $this->callSilent('icons:cache') === static::SUCCESS, - ]); - - if ($this->canCacheComponents()) { - $tasks->put('Caching components', - fn(): bool => $this->callSilent('filament:cache-components') === static::SUCCESS); - } - - $tasks->each(fn($task, $description) => $this->components->task($description, $task)); - - $this->newLine(); - - return static::SUCCESS; + if ($this->canCacheComponents()) { + $tasks->put( + 'Caching components', + fn (): bool => $this->callSilent('filament:cache-components') === static::SUCCESS + ); } + + $tasks->each(fn ($task, $description) => $this->components->task($description, $task)); + + $this->newLine(); + + return static::SUCCESS; } +} diff --git a/packages/support/src/Concerns/CanCacheComponents.php b/packages/support/src/Concerns/CanCacheComponents.php index d0b7bb2dd0..b191930ae7 100644 --- a/packages/support/src/Concerns/CanCacheComponents.php +++ b/packages/support/src/Concerns/CanCacheComponents.php @@ -1,13 +1,13 @@ Date: Wed, 24 Jul 2024 13:28:24 +0200 Subject: [PATCH 12/20] Update OptimizeCommand.php --- .../support/src/Commands/OptimizeCommand.php | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/packages/support/src/Commands/OptimizeCommand.php b/packages/support/src/Commands/OptimizeCommand.php index 324d02cdb0..37709aca6e 100644 --- a/packages/support/src/Commands/OptimizeCommand.php +++ b/packages/support/src/Commands/OptimizeCommand.php @@ -1,39 +1,39 @@ components->info('Caching components and Blade icons...'); + use CanCacheComponents; - $tasks = collect([ - 'Caching Blade icons' => fn (): bool => $this->callSilent('icons:cache') === static::SUCCESS, - ]); + protected $signature = 'filament:optimize'; - if ($this->canCacheComponents()) { - $tasks->put( - 'Caching components', - fn (): bool => $this->callSilent('filament:cache-components') === static::SUCCESS - ); + protected $description = 'Cache components and Blade icons to improve performance.'; + + public function handle(): int + { + $this->components->info('Caching components and Blade icons.'); + + $tasks = collect([ + 'Caching Blade icons' => fn(): bool => $this->callSilent('icons:cache') === static::SUCCESS, + ]); + + if ($this->canCacheComponents()) { + $tasks->put( + 'Caching components', + fn(): bool => $this->callSilent('filament:cache-components') === static::SUCCESS + ); + } + + $tasks->each(fn($task, $description) => $this->components->task($description, $task)); + + $this->newLine(); + + return static::SUCCESS; } - - $tasks->each(fn ($task, $description) => $this->components->task($description, $task)); - - $this->newLine(); - - return static::SUCCESS; } -} From 9ba70acedf9f53c9f1422e6b7ce741d7754350f7 Mon Sep 17 00:00:00 2001 From: "M. D." Date: Wed, 24 Jul 2024 13:30:41 +0200 Subject: [PATCH 13/20] composer cs --- .../support/src/Commands/OptimizeCommand.php | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/packages/support/src/Commands/OptimizeCommand.php b/packages/support/src/Commands/OptimizeCommand.php index 37709aca6e..ac0d7fa4df 100644 --- a/packages/support/src/Commands/OptimizeCommand.php +++ b/packages/support/src/Commands/OptimizeCommand.php @@ -1,39 +1,39 @@ components->info('Caching components and Blade icons.'); - protected $signature = 'filament:optimize'; + $tasks = collect([ + 'Caching Blade icons' => fn (): bool => $this->callSilent('icons:cache') === static::SUCCESS, + ]); - protected $description = 'Cache components and Blade icons to improve performance.'; - - public function handle(): int - { - $this->components->info('Caching components and Blade icons.'); - - $tasks = collect([ - 'Caching Blade icons' => fn(): bool => $this->callSilent('icons:cache') === static::SUCCESS, - ]); - - if ($this->canCacheComponents()) { - $tasks->put( - 'Caching components', - fn(): bool => $this->callSilent('filament:cache-components') === static::SUCCESS - ); - } - - $tasks->each(fn($task, $description) => $this->components->task($description, $task)); - - $this->newLine(); - - return static::SUCCESS; + if ($this->canCacheComponents()) { + $tasks->put( + 'Caching components', + fn (): bool => $this->callSilent('filament:cache-components') === static::SUCCESS + ); } + + $tasks->each(fn ($task, $description) => $this->components->task($description, $task)); + + $this->newLine(); + + return static::SUCCESS; } +} From e5894eda0cb87febcc59da0b287375768fd3ca6f Mon Sep 17 00:00:00 2001 From: "M. D." Date: Wed, 24 Jul 2024 13:47:08 +0200 Subject: [PATCH 14/20] Move trait into the right namespace --- .../src/Commands/Concerns/CanCacheComponents.php | 13 +++++++++++++ .../support/src/Concerns/CanCacheComponents.php | 13 ------------- 2 files changed, 13 insertions(+), 13 deletions(-) create mode 100644 packages/support/src/Commands/Concerns/CanCacheComponents.php delete mode 100644 packages/support/src/Concerns/CanCacheComponents.php diff --git a/packages/support/src/Commands/Concerns/CanCacheComponents.php b/packages/support/src/Commands/Concerns/CanCacheComponents.php new file mode 100644 index 0000000000..6c787be0b7 --- /dev/null +++ b/packages/support/src/Commands/Concerns/CanCacheComponents.php @@ -0,0 +1,13 @@ + Date: Wed, 24 Jul 2024 13:50:41 +0200 Subject: [PATCH 15/20] Rename trait --- composer.json | 179 +++++++++--------- .../Commands/Concerns/CanCacheComponents.php | 13 -- .../Concerns/CanCachePanelComponents.php | 13 ++ 3 files changed, 103 insertions(+), 102 deletions(-) delete mode 100644 packages/support/src/Commands/Concerns/CanCacheComponents.php create mode 100644 packages/support/src/Commands/Concerns/CanCachePanelComponents.php diff --git a/composer.json b/composer.json index c0c438dff6..22ce1138af 100644 --- a/composer.json +++ b/composer.json @@ -1,92 +1,93 @@ { - "name": "filament/filament", - "description": "A collection of full-stack components for accelerated Laravel development.", - "license": "MIT", - "require": { - "php": "^8.1", - "ext-intl": "*", - "composer-runtime-api": "^2.1" - }, - "require-dev": { - "anourvalar/eloquent-serialize": "^1.2", - "danharrin/livewire-rate-limiting": "^0.3|^1.0", - "filament/support": "*", - "kirschbaum-development/eloquent-power-joins": "^3.0", - "larastan/larastan": "^2.2", - "laravel/pint": "^1.0", - "league/csv": "^9.14", - "league/flysystem-aws-s3-v3": "^3.0", - "nunomaduro/termwind": "^1.0|^2.0", - "openspout/openspout": "^4.23", - "orchestra/testbench": "^8.20|^9.0", - "pestphp/pest": "^2.0", - "pestphp/pest-plugin-laravel": "^2.0", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "v1.11.1", - "rector/rector": "^1.0", - "spatie/laravel-medialibrary": "^10.0|^11.0", - "spatie/laravel-ray": "^1.29", - "spatie/laravel-tags": "^4.2", - "staudenmeir/belongs-to-through": "^2.5", - "staudenmeir/eloquent-has-many-deep": "^1.7", - "symplify/monorepo-builder": "^10.0" - }, - "autoload": { - "files": [ - "packages/panels/src/global_helpers.php", - "packages/panels/src/helpers.php", - "packages/support/src/helpers.php", - "tests/helpers.php" - ], - "psr-4": { - "Filament\\": [ - "packages/panels/src", - "packages/spatie-laravel-media-library-plugin/src", - "packages/spatie-laravel-settings-plugin/src", - "packages/spatie-laravel-tags-plugin/src", - "packages/spatie-laravel-translatable-plugin/src" - ], - "Filament\\Actions\\": "packages/actions/src", - "Filament\\Billing\\Providers\\": "packages/spark-billing-provider/src", - "Filament\\Forms\\": "packages/forms/src", - "Filament\\FontProviders\\": "packages/spatie-laravel-google-fonts-plugin/src", - "Filament\\Infolists\\": "packages/infolists/src", - "Filament\\Notifications\\": "packages/notifications/src", - "Filament\\Support\\": "packages/support/src", - "Filament\\Tables\\": "packages/tables/src", - "Filament\\Tests\\": "tests/src", - "Filament\\Tests\\Database\\Factories\\": "tests/database/factories", - "Filament\\Upgrade\\": "packages/upgrade/src", - "Filament\\Widgets\\": "packages/widgets/src" - } - }, - "config": { - "sort-packages": true, - "allow-plugins": { - "composer/package-versions-deprecated": true, - "pestphp/pest-plugin": true, - "phpstan/extension-installer": true - } - }, - "scripts": { - "cs": [ - "pint", - "npm run prettier" - ], - "pint": "pint --config pint-strict-imports.json", - "test:pest": "pest --parallel", - "test:phpstan": "phpstan analyse", - "test": [ - "@test:pest", - "@test:phpstan" - ] - }, - "minimum-stability": "dev", - "prefer-stable": true, - "repositories": [ - { - "type": "path", - "url": "packages/support" - } + "name": "filament/filament", + "description": "A collection of full-stack components for accelerated Laravel development.", + "license": "MIT", + "require": { + "php": "^8.1", + "ext-intl": "*", + "composer-runtime-api": "^2.1" + }, + "require-dev": { + "anourvalar/eloquent-serialize": "^1.2", + "danharrin/livewire-rate-limiting": "^0.3|^1.0", + "filament/support": "*", + "kirschbaum-development/eloquent-power-joins": "^3.0", + "larastan/larastan": "^2.2", + "laravel/pint": "^1.0", + "league/csv": "^9.14", + "league/flysystem-aws-s3-v3": "^3.0", + "nunomaduro/termwind": "^1.0|^2.0", + "openspout/openspout": "^4.23", + "orchestra/testbench": "^8.20|^9.0", + "pestphp/pest": "^2.0", + "pestphp/pest-plugin-laravel": "^2.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "v1.11.1", + "rector/rector": "^1.0", + "spatie/laravel-medialibrary": "^10.0|^11.0", + "spatie/laravel-ray": "^1.29", + "spatie/laravel-tags": "^4.2", + "staudenmeir/belongs-to-through": "^2.5", + "staudenmeir/eloquent-has-many-deep": "^1.7", + "symplify/monorepo-builder": "^10.0" + }, + "autoload": { + "files": [ + "packages/panels/src/global_helpers.php", + "packages/panels/src/helpers.php", + "packages/support/src/helpers.php", + "tests/helpers.php" + ], + "psr-4": { + "Filament\\": [ + "packages/panels/src", + "packages/spatie-laravel-media-library-plugin/src", + "packages/spatie-laravel-settings-plugin/src", + "packages/spatie-laravel-tags-plugin/src", + "packages/spatie-laravel-translatable-plugin/src" + ], + "Filament\\Actions\\": "packages/actions/src", + "Filament\\Billing\\Providers\\": "packages/spark-billing-provider/src", + "Filament\\Forms\\": "packages/forms/src", + "Filament\\FontProviders\\": "packages/spatie-laravel-google-fonts-plugin/src", + "Filament\\Infolists\\": "packages/infolists/src", + "Filament\\Notifications\\": "packages/notifications/src", + "Filament\\Support\\": "packages/support/src", + "Filament\\Tables\\": "packages/tables/src", + "Filament\\Tests\\": "tests/src", + "Filament\\Tests\\Database\\Factories\\": "tests/database/factories", + "Filament\\Upgrade\\": "packages/upgrade/src", + "Filament\\Widgets\\": "packages/widgets/src" + } + }, + "config": { + "sort-packages": true, + "allow-plugins": { + "composer/package-versions-deprecated": true, + "pestphp/pest-plugin": true, + "phpstan/extension-installer": true + } + }, + "scripts": { + "cs": [ + "Composer\\Config::disableProcessTimeout", + "pint", + "npm run prettier" + ], + "pint": "pint --config pint-strict-imports.json", + "test:pest": "pest --parallel", + "test:phpstan": "phpstan analyse", + "test": [ + "@test:pest", + "@test:phpstan" ] + }, + "minimum-stability": "dev", + "prefer-stable": true, + "repositories": [ + { + "type": "path", + "url": "packages/support" + } + ] } diff --git a/packages/support/src/Commands/Concerns/CanCacheComponents.php b/packages/support/src/Commands/Concerns/CanCacheComponents.php deleted file mode 100644 index 6c787be0b7..0000000000 --- a/packages/support/src/Commands/Concerns/CanCacheComponents.php +++ /dev/null @@ -1,13 +0,0 @@ - Date: Wed, 24 Jul 2024 13:51:26 +0200 Subject: [PATCH 16/20] composer cs --- .../Commands/Concerns/CanCachePanelComponents.php | 14 +++++++------- .../support/src/Commands/OptimizeClearCommand.php | 4 ++-- packages/support/src/Commands/OptimizeCommand.php | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/support/src/Commands/Concerns/CanCachePanelComponents.php b/packages/support/src/Commands/Concerns/CanCachePanelComponents.php index 33585ad92d..c64af8fc21 100644 --- a/packages/support/src/Commands/Concerns/CanCachePanelComponents.php +++ b/packages/support/src/Commands/Concerns/CanCachePanelComponents.php @@ -1,13 +1,13 @@ Date: Wed, 24 Jul 2024 13:53:44 +0200 Subject: [PATCH 17/20] composer cs --- composer.json | 179 +++++++++--------- .../Concerns/CanCachePanelComponents.php | 2 +- .../src/Commands/OptimizeClearCommand.php | 2 +- .../support/src/Commands/OptimizeCommand.php | 2 +- 4 files changed, 92 insertions(+), 93 deletions(-) diff --git a/composer.json b/composer.json index 22ce1138af..c0c438dff6 100644 --- a/composer.json +++ b/composer.json @@ -1,93 +1,92 @@ { - "name": "filament/filament", - "description": "A collection of full-stack components for accelerated Laravel development.", - "license": "MIT", - "require": { - "php": "^8.1", - "ext-intl": "*", - "composer-runtime-api": "^2.1" - }, - "require-dev": { - "anourvalar/eloquent-serialize": "^1.2", - "danharrin/livewire-rate-limiting": "^0.3|^1.0", - "filament/support": "*", - "kirschbaum-development/eloquent-power-joins": "^3.0", - "larastan/larastan": "^2.2", - "laravel/pint": "^1.0", - "league/csv": "^9.14", - "league/flysystem-aws-s3-v3": "^3.0", - "nunomaduro/termwind": "^1.0|^2.0", - "openspout/openspout": "^4.23", - "orchestra/testbench": "^8.20|^9.0", - "pestphp/pest": "^2.0", - "pestphp/pest-plugin-laravel": "^2.0", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "v1.11.1", - "rector/rector": "^1.0", - "spatie/laravel-medialibrary": "^10.0|^11.0", - "spatie/laravel-ray": "^1.29", - "spatie/laravel-tags": "^4.2", - "staudenmeir/belongs-to-through": "^2.5", - "staudenmeir/eloquent-has-many-deep": "^1.7", - "symplify/monorepo-builder": "^10.0" - }, - "autoload": { - "files": [ - "packages/panels/src/global_helpers.php", - "packages/panels/src/helpers.php", - "packages/support/src/helpers.php", - "tests/helpers.php" - ], - "psr-4": { - "Filament\\": [ - "packages/panels/src", - "packages/spatie-laravel-media-library-plugin/src", - "packages/spatie-laravel-settings-plugin/src", - "packages/spatie-laravel-tags-plugin/src", - "packages/spatie-laravel-translatable-plugin/src" - ], - "Filament\\Actions\\": "packages/actions/src", - "Filament\\Billing\\Providers\\": "packages/spark-billing-provider/src", - "Filament\\Forms\\": "packages/forms/src", - "Filament\\FontProviders\\": "packages/spatie-laravel-google-fonts-plugin/src", - "Filament\\Infolists\\": "packages/infolists/src", - "Filament\\Notifications\\": "packages/notifications/src", - "Filament\\Support\\": "packages/support/src", - "Filament\\Tables\\": "packages/tables/src", - "Filament\\Tests\\": "tests/src", - "Filament\\Tests\\Database\\Factories\\": "tests/database/factories", - "Filament\\Upgrade\\": "packages/upgrade/src", - "Filament\\Widgets\\": "packages/widgets/src" - } - }, - "config": { - "sort-packages": true, - "allow-plugins": { - "composer/package-versions-deprecated": true, - "pestphp/pest-plugin": true, - "phpstan/extension-installer": true - } - }, - "scripts": { - "cs": [ - "Composer\\Config::disableProcessTimeout", - "pint", - "npm run prettier" - ], - "pint": "pint --config pint-strict-imports.json", - "test:pest": "pest --parallel", - "test:phpstan": "phpstan analyse", - "test": [ - "@test:pest", - "@test:phpstan" + "name": "filament/filament", + "description": "A collection of full-stack components for accelerated Laravel development.", + "license": "MIT", + "require": { + "php": "^8.1", + "ext-intl": "*", + "composer-runtime-api": "^2.1" + }, + "require-dev": { + "anourvalar/eloquent-serialize": "^1.2", + "danharrin/livewire-rate-limiting": "^0.3|^1.0", + "filament/support": "*", + "kirschbaum-development/eloquent-power-joins": "^3.0", + "larastan/larastan": "^2.2", + "laravel/pint": "^1.0", + "league/csv": "^9.14", + "league/flysystem-aws-s3-v3": "^3.0", + "nunomaduro/termwind": "^1.0|^2.0", + "openspout/openspout": "^4.23", + "orchestra/testbench": "^8.20|^9.0", + "pestphp/pest": "^2.0", + "pestphp/pest-plugin-laravel": "^2.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "v1.11.1", + "rector/rector": "^1.0", + "spatie/laravel-medialibrary": "^10.0|^11.0", + "spatie/laravel-ray": "^1.29", + "spatie/laravel-tags": "^4.2", + "staudenmeir/belongs-to-through": "^2.5", + "staudenmeir/eloquent-has-many-deep": "^1.7", + "symplify/monorepo-builder": "^10.0" + }, + "autoload": { + "files": [ + "packages/panels/src/global_helpers.php", + "packages/panels/src/helpers.php", + "packages/support/src/helpers.php", + "tests/helpers.php" + ], + "psr-4": { + "Filament\\": [ + "packages/panels/src", + "packages/spatie-laravel-media-library-plugin/src", + "packages/spatie-laravel-settings-plugin/src", + "packages/spatie-laravel-tags-plugin/src", + "packages/spatie-laravel-translatable-plugin/src" + ], + "Filament\\Actions\\": "packages/actions/src", + "Filament\\Billing\\Providers\\": "packages/spark-billing-provider/src", + "Filament\\Forms\\": "packages/forms/src", + "Filament\\FontProviders\\": "packages/spatie-laravel-google-fonts-plugin/src", + "Filament\\Infolists\\": "packages/infolists/src", + "Filament\\Notifications\\": "packages/notifications/src", + "Filament\\Support\\": "packages/support/src", + "Filament\\Tables\\": "packages/tables/src", + "Filament\\Tests\\": "tests/src", + "Filament\\Tests\\Database\\Factories\\": "tests/database/factories", + "Filament\\Upgrade\\": "packages/upgrade/src", + "Filament\\Widgets\\": "packages/widgets/src" + } + }, + "config": { + "sort-packages": true, + "allow-plugins": { + "composer/package-versions-deprecated": true, + "pestphp/pest-plugin": true, + "phpstan/extension-installer": true + } + }, + "scripts": { + "cs": [ + "pint", + "npm run prettier" + ], + "pint": "pint --config pint-strict-imports.json", + "test:pest": "pest --parallel", + "test:phpstan": "phpstan analyse", + "test": [ + "@test:pest", + "@test:phpstan" + ] + }, + "minimum-stability": "dev", + "prefer-stable": true, + "repositories": [ + { + "type": "path", + "url": "packages/support" + } ] - }, - "minimum-stability": "dev", - "prefer-stable": true, - "repositories": [ - { - "type": "path", - "url": "packages/support" - } - ] } diff --git a/packages/support/src/Commands/Concerns/CanCachePanelComponents.php b/packages/support/src/Commands/Concerns/CanCachePanelComponents.php index c64af8fc21..cfbeb0749d 100644 --- a/packages/support/src/Commands/Concerns/CanCachePanelComponents.php +++ b/packages/support/src/Commands/Concerns/CanCachePanelComponents.php @@ -6,7 +6,7 @@ use Filament\Commands\CacheComponentsCommand; trait CanCachePanelComponents { - protected function canCacheComponents(): bool + protected function canCachePanelComponents(): bool { return class_exists(CacheComponentsCommand::class); } diff --git a/packages/support/src/Commands/OptimizeClearCommand.php b/packages/support/src/Commands/OptimizeClearCommand.php index a4a15b7b8e..74b354be01 100644 --- a/packages/support/src/Commands/OptimizeClearCommand.php +++ b/packages/support/src/Commands/OptimizeClearCommand.php @@ -23,7 +23,7 @@ class OptimizeClearCommand extends Command 'Clearing cached Blade icons' => fn (): bool => $this->callSilent('icons:clear') === static::SUCCESS, ]); - if ($this->canCacheComponents()) { + if ($this->canCachePanelComponents()) { $tasks->put( 'Clearing cached components', fn (): bool => $this->callSilent('filament:clear-cached-components') === static::SUCCESS diff --git a/packages/support/src/Commands/OptimizeCommand.php b/packages/support/src/Commands/OptimizeCommand.php index 8cb5e8794e..709a456136 100644 --- a/packages/support/src/Commands/OptimizeCommand.php +++ b/packages/support/src/Commands/OptimizeCommand.php @@ -23,7 +23,7 @@ class OptimizeCommand extends Command 'Caching Blade icons' => fn (): bool => $this->callSilent('icons:cache') === static::SUCCESS, ]); - if ($this->canCacheComponents()) { + if ($this->canCachePanelComponents()) { $tasks->put( 'Caching components', fn (): bool => $this->callSilent('filament:cache-components') === static::SUCCESS From d6f11d84c6ac84a587bc60a180de0c029f7d4efa Mon Sep 17 00:00:00 2001 From: "M. D." Date: Wed, 24 Jul 2024 14:00:29 +0200 Subject: [PATCH 18/20] Fixing the order of execution to be inline with the command description --- packages/support/src/Commands/OptimizeClearCommand.php | 9 ++++++--- packages/support/src/Commands/OptimizeCommand.php | 6 +++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/support/src/Commands/OptimizeClearCommand.php b/packages/support/src/Commands/OptimizeClearCommand.php index 74b354be01..3a7e9e419c 100644 --- a/packages/support/src/Commands/OptimizeClearCommand.php +++ b/packages/support/src/Commands/OptimizeClearCommand.php @@ -19,9 +19,7 @@ class OptimizeClearCommand extends Command { $this->components->info('Clearing cached components and Blade icons.'); - $tasks = collect([ - 'Clearing cached Blade icons' => fn (): bool => $this->callSilent('icons:clear') === static::SUCCESS, - ]); + $tasks = collect(); if ($this->canCachePanelComponents()) { $tasks->put( @@ -30,6 +28,11 @@ class OptimizeClearCommand extends Command ); } + $tasks->put( + 'Clearing cached Blade icons', + fn (): bool => $this->callSilent('icons:clear') === static::SUCCESS + ); + $tasks->each(fn ($task, $description) => $this->components->task($description, $task)); $this->newLine(); diff --git a/packages/support/src/Commands/OptimizeCommand.php b/packages/support/src/Commands/OptimizeCommand.php index 709a456136..d03cb1d30e 100644 --- a/packages/support/src/Commands/OptimizeCommand.php +++ b/packages/support/src/Commands/OptimizeCommand.php @@ -19,9 +19,7 @@ class OptimizeCommand extends Command { $this->components->info('Caching components and Blade icons.'); - $tasks = collect([ - 'Caching Blade icons' => fn (): bool => $this->callSilent('icons:cache') === static::SUCCESS, - ]); + $tasks = collect(); if ($this->canCachePanelComponents()) { $tasks->put( @@ -30,6 +28,8 @@ class OptimizeCommand extends Command ); } + $tasks->put('Caching Blade icons', fn (): bool => $this->callSilent('icons:cache') === static::SUCCESS); + $tasks->each(fn ($task, $description) => $this->components->task($description, $task)); $this->newLine(); From 9c14930577d18a7e69f63d911125a120aee64ebe Mon Sep 17 00:00:00 2001 From: Dan Harrin Date: Wed, 24 Jul 2024 13:02:49 +0100 Subject: [PATCH 19/20] Update OptimizeCommand.php --- packages/support/src/Commands/OptimizeCommand.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/support/src/Commands/OptimizeCommand.php b/packages/support/src/Commands/OptimizeCommand.php index d03cb1d30e..d26219f757 100644 --- a/packages/support/src/Commands/OptimizeCommand.php +++ b/packages/support/src/Commands/OptimizeCommand.php @@ -2,6 +2,7 @@ namespace Filament\Support\Commands; +use Closure; use Filament\Support\Commands\Concerns\CanCachePanelComponents; use Illuminate\Console\Command; use Symfony\Component\Console\Attribute\AsCommand; @@ -30,7 +31,7 @@ class OptimizeCommand extends Command $tasks->put('Caching Blade icons', fn (): bool => $this->callSilent('icons:cache') === static::SUCCESS); - $tasks->each(fn ($task, $description) => $this->components->task($description, $task)); + $tasks->each(fn (Closure $task, string $description) => $this->components->task($description, $task)); $this->newLine(); From 1d2a0c40723ab379c6815e2c4f0ba9eda5f9c373 Mon Sep 17 00:00:00 2001 From: Dan Harrin Date: Wed, 24 Jul 2024 13:03:07 +0100 Subject: [PATCH 20/20] Update OptimizeClearCommand.php --- packages/support/src/Commands/OptimizeClearCommand.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/support/src/Commands/OptimizeClearCommand.php b/packages/support/src/Commands/OptimizeClearCommand.php index 3a7e9e419c..aa96821781 100644 --- a/packages/support/src/Commands/OptimizeClearCommand.php +++ b/packages/support/src/Commands/OptimizeClearCommand.php @@ -2,6 +2,7 @@ namespace Filament\Support\Commands; +use Closure; use Filament\Support\Commands\Concerns\CanCachePanelComponents; use Illuminate\Console\Command; use Symfony\Component\Console\Attribute\AsCommand; @@ -33,7 +34,7 @@ class OptimizeClearCommand extends Command fn (): bool => $this->callSilent('icons:clear') === static::SUCCESS ); - $tasks->each(fn ($task, $description) => $this->components->task($description, $task)); + $tasks->each(fn (Closure $task, string $description) => $this->components->task($description, $task)); $this->newLine();