filament:cache-components(Artisan コマンド)
Filament のコンポーネント設定をキャッシュし、管理画面の読み込み速度を劇的に向上させる Artisan コマンドです。
キャッシュは bootstrap/cache/filament ディレクトリに保存され、デプロイ時に実行すると稼働中のサーバー負荷を減らします。
コマンド名
filament:cache-components
カテゴリ
- Artisan コマンド
- Filament パッケージ(管理画面)
概要
Filament は多数の Blade コンポーネントと Livewire コンポーネントを使用します。
このコマンドはそれらの設定を事前にキャッシュしておくことで、実行時のオーバーヘッドを削減します。filament:optimize コマンドと併用してデプロイすることで、パフォーマンスの最大化が期待できます。
コマンドの書式
php artisan filament:cache-components
備考
- Filament がインストールされていない場合は
Command "filament:cache-components" is not definedとエラーになります。- Filament 4.x 以降でのみサポートされており、古いバージョンでは
filament:assetsなど別のコマンドになります。
主要オプション(引数なし)
| オプション | 役割 | 備考 |
|---|---|---|
| なし | – | このコマンドは引数を受け取らず、内部で設定ファイルを解析してキャッシュを生成します。 |
実行例
# 開発環境でキャッシュを生成
php artisan filament:cache-components
# 本番デプロイ時にキャッシュを生成
# (例: deploy.sh に追加)
php artisan filament:cache-components
詳細説明
- キャッシュの生成
- Filament がロードする全てのコンポーネント(リソース、ページ、ウィジェット、関係管理者、カスタム Livewire コンポーネントなど)を走査し、設定情報をシリアライズして
bootstrap/cache/filamentディレクトリに保存します。 - 生成されたキャッシュはアプリケーションの再起動やオートロードの再構築が発生しない限り、永続的に利用されます。
- キャッシュのクリア
- キャッシュを無効化したい場合は
php artisan filament:clear-cacheを実行します。 - あるいは
php artisan filament:clear-cache && php artisan filament:cache-componentsのように一括でクリア&再生成できます。
- パフォーマンス効果
- キャッシュが有効な状態で管理画面にアクセスすると、コンポーネントのロード時間が 30%〜70% 低減されるケースが報告されています。
- 特に Livewire コンポーネントが多数存在するフォームやダッシュボードで顕著です。
参考リンク
- Filament Docs: Deployment – Caching Filament components
- Commands.app: filament:cache-components
付録:よくあるエラーと対策
| エラー | 原因 | 対策 |
|---|---|---|
Command "filament:cache-components" is not defined | Filament がインストールされていない、または古いバージョンを使用している | composer require filament/filament で最新バージョンをインストール、または filament:install を実行 |
| キャッシュ生成後にページが表示されない | bootstrap/cache/filament ディレクトリの書き込み権限が無い | chmod -R 775 bootstrap/cache/filament で権限を設定、または php artisan filament:clear-cache で再生成 |
推奨使用ケース
- 本番環境:稼働中のサーバーのレスポンス時間を短縮したい場合
- 頻繁にコンポーネントを追加・変更する開発:キャッシュの再生成を CI/CD パイプラインに組み込む
- Livewire が多用されるダッシュボード:パフォーマンス低下が気になる場合に実行
重要
filament:optimizeはキャッシュ生成を含む最適化コマンドです。- それを使用している場合は
filament:cache-componentsを別途実行する必要はありませんが、optimizeが無効の場合は手動でキャッシュ生成が推奨されます。PHP & Laravel バージョン
- PHP 8.2+、Laravel 10 でテスト済み。
- それ以下のバージョンでは挙動が異なる可能性があります。

