👍

Laravel Filament v3を導入しました!

2023/08/06に公開

今回は8月からリリースされたLaravel Filament v3を導入したいと思います!

Filament v3の新機能について

・随所にアクションモーダル。
ページ上の任意のボタンからモーダルを開き、スライドオーバーします。完全な状態を保持して、他のモーダル内にモーダルをネストすることもできます。

・強力なテーブルレポート
一連の集計関数を使用してテーブル ビルダーの行を要約し、統計を計算し、データの分析概要を提供します。共通の属性ごとに行をグループ化し、そのデータも要約します。

・SaaS 用に構築されたマルチテナント。
パネル ビルダーを使用して、記録的な速度でサブスクリプション課金のマルチテナント アプリケーションを構築します。パネルを離れることなくテナントを切り替えることができます。

・美しい読み取り専用の「表示」ページ。
柔軟で応答性の高いレイアウトを実現するためにアプリにインフォリストを埋め込み、読み取り専用データをレンダリングします。独自のコンポーネントで完全にカスタマイズ可能。

・1 つのアプリで無制限のパネルを使用できます。
独自のリソース、ダッシュボード、カスタム ページ、構成を備えた、完全に独立した Filament を利用した複数のパネルを構築します。パネル全体を Composer パッケージで簡単に出荷できます。

・テーマのカスタマイズが改善されました。
Tailwind をコンパイルせずに、パネルのカラー パレットとタイポグラフィをカスタマイズします。CSS クラスのスイートに簡単に接続して、パネルを独自のブランディングで特徴付けることができます。すべてがあなたのものになります。

https://laravel-news.com/filament-v3

直訳でよくわからないことになっていますが、個人的にはinfolist BuilderとActionsというのがDocumentに追加されていたので、試しに使ってみたいとおもっています。

Ubuntu

Laravel v10をインストールします

curl -s https://laravel.build/nt03 | bash

移動します

cd nt03

Laravel Sailを起動します

./vendor/bin/sail up -d

Filament v3をインストールします

./vendor/bin/sail composer require filament/filament:"^3.0-stable" -W

composerにインストールするパッケージが用意されていない、ということなので、composerのアップデートを試してみましたが、ダメでした。

./vendor/bin/sail composer update

VisualStudioCode

composer.jsonをVisualStudioCodeで開き、38行目の「post-autoload-dump」に次の行を挿入します

"@php artisan filament:upgrade"
修正後のcomposer.jsonはこちらから
{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The skeleton application for the Laravel framework.",
    "keywords": ["laravel", "framework"],
    "license": "MIT",
    "require": {
        "php": "^8.1",
        "guzzlehttp/guzzle": "^7.2",
        "laravel/framework": "^10.10",
        "laravel/sanctum": "^3.2",
        "laravel/tinker": "^2.8"
    },
    "require-dev": {
        "fakerphp/faker": "^1.9.1",
        "laravel/pint": "^1.0",
        "laravel/sail": "^1.18",
        "mockery/mockery": "^1.4.4",
        "nunomaduro/collision": "^7.0",
        "phpunit/phpunit": "^10.1",
        "spatie/laravel-ignition": "^2.0"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi",
            "@php artisan filament:upgrade"
        ],
        "post-update-cmd": [
            "@php artisan vendor:publish --tag=laravel-assets --ansi --force"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true,
        "allow-plugins": {
            "pestphp/pest-plugin": true,
            "php-http/discovery": true
        }
    },
    "minimum-stability": "stable",
    "prefer-stable": true
}

Ubuntu

もう一度、composerのアップデートを試してみましたが、ダメでした。

./vendor/bin/sail composer update

今度は「filamentという名前の領域がない」ということだったので、Documentに従ってfilamentのアップグレードをしたいと思います。
(composer.jsonに追加した行は戻しておきます)

filament v2をインストールします

./vendor/bin/sail composer require filament/filament:"^2.0"

filament v3にアップグレードします

./vendor/bin/sail artisan filament:upgrade

成功しました。

vendor内にfilamentがあれば完了です。

これからFilament v3について確認し、今後記事として情報提供していきたいと思います。見ていただきありがとうございました!

Discussion