Pengenalan FilamentPHP: Framework Admin Panel yang Powerful dan Mudah Digunakan

Pengenalan FilamentPHP: Framework Admin Panel yang Powerful dan Mudah Digunakan

FilamentPHP adalah framework open-source yang dirancang untuk membantu pengembang Laravel dalam membangun panel administrasi yang modern dan efisien. Dengan Filament, pengembang dapat dengan cepat membuat antarmuka admin yang menarik dan penuh fitur tanpa harus menghabiskan banyak waktu untuk menulis kode boilerplate. Framework ini menawarkan berbagai fitur seperti form builder, table builder, dan integrasi yang mudah dengan Laravel.

Dalam artikel ini, kita akan mengenal lebih dalam tentang FilamentPHP dan bagaimana menggunakannya dengan contoh praktis.

Mengapa Memilih FilamentPHP?

  1. Mudah Digunakan: FilamentPHP didesain untuk mengurangi kompleksitas dan memberikan pengalaman pengguna yang intuitif.
  2. Fitur Canggih: Filament menyediakan berbagai komponen siap pakai seperti form builder, table builder, dan berbagai elemen UI lainnya.
  3. Tampilan Modern: Dengan menggunakan Tailwind CSS, tampilan yang dihasilkan oleh Filament sangat responsif dan modern.
  4. Terintegrasi dengan Laravel: Filament berjalan mulus di atas Laravel, sehingga Anda bisa memanfaatkan seluruh kekuatan Laravel saat membangun aplikasi admin.
  5. Pengelolaan Pengguna yang Mudah: Filament memiliki sistem autentikasi dan pengelolaan akses yang sederhana dan efisien.

Instalasi FilamentPHP

Untuk memulai dengan FilamentPHP, pastikan Anda telah menginstal Laravel pada proyek Anda. Jika belum, Anda bisa memulai dengan menginstal Laravel terlebih dahulu:

composer create-project --prefer-dist laravel/laravel filament-demo

Setelah itu, instal Filament menggunakan Composer:

composer require filament/filament

Setelah instalasi selesai, Anda perlu melakukan migrasi untuk menyiapkan tabel pengguna dan pengaturan lainnya:

php artisan migrate

 

Menyiapkan Panel Admin

Filament membuat panel admin yang siap pakai dengan sedikit konfigurasi. Untuk membuat panel admin pertama Anda, jalankan perintah berikut:

php artisan filament:install
php artisan make:filament-user

Perintah ini akan mengonfigurasi sistem autentikasi dan menghasilkan antarmuka admin dasar. 

Contoh Penggunaan FilamentPHP

Sekarang kita akan membuat sebuah CRUD (Create, Read, Update, Delete) sederhana untuk entitas Product. Berikut adalah langkah-langkah untuk melakukannya.

1. Membuat Model dan Migrasi

Buat model dan migrasi untuk Product:

php artisan make:model Product -m

Pada file migrasi (database/migrations/xxxx_xx_xx_create_products_table.php), buat struktur tabel products:

public function up()
{
    Schema::create('products', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->decimal('price', 8, 2);
        $table->timestamps();
    });
}

Kemudian jalankan migrasi:

php artisan migrate

2. Membuat Resource untuk Product

Filament memiliki fitur Resource yang memungkinkan Anda dengan mudah mengelola entitas dalam bentuk CRUD. Untuk membuat resource untuk Product, jalankan perintah berikut:

php artisan make:filament-resource Product
Perintah ini akan membuat file resource baru di app/Filament/Resources/ProductResource.php. Buka file ini, dan sesuaikan dengan kebutuhan.
namespace App\Filament\Resources;

use App\Filament\Resources\ProductResource\Pages;
use App\Models\Product;
use Filament\Forms;
use Filament\Tables;
use Filament\Resources\Resource;

class ProductResource extends Resource
{
    protected static ?string $model = Product::class;

    protected static ?string $navigationLabel = 'Products';
    protected static ?string $navigationGroup = 'Inventory';

    public static function form(Forms\Form $form)
    {
        return $form->schema([
            Forms\Components\TextInput::make('name')
                ->required()
                ->maxLength(255),
            Forms\Components\TextInput::make('price')
                ->required()
                ->numeric()
                ->maxLength(10),
        ]);
    }

    public static function table(Tables\Table $table)
    {
        return $table->columns([
            Tables\Columns\TextColumn::make('name')->sortable()->searchable(),
            Tables\Columns\TextColumn::make('price')->sortable()->money('IDR'),
        ])
        ->filters([
            // Define filters if needed
        ]);
    }

    public static function getPages(): array
    {
        return [
            'index' => Pages\ListProducts::route('/'),
            'create' => Pages\CreateProduct::route('/create'),
            'edit' => Pages\EditProduct::route('/{record}/edit'),
        ];
    }
}

3. Menambahkan Pages

FilamentPHP menggunakan konsep halaman (pages) untuk menampilkan berbagai tampilan dalam panel admin. Setelah resource dibuat, Filament secara otomatis menghasilkan file untuk halaman ListProducts, CreateProduct, dan EditProduct. Anda bisa menyesuaikan file-file ini untuk memenuhi kebutuhan.

Misalnya, pada file app/Filament/Resources/ProductResource/Pages/ListProducts.php, Anda bisa menambahkan pengaturan tabel:

namespace App\Filament\Resources\ProductResource\Pages;

use App\Filament\Resources\ProductResource;
use Filament\Pages\Actions;
use Filament\Resources\Pages\ListRecords;

class ListProducts extends ListRecords
{
    protected static string $resource = ProductResource::class;

    protected function getActions(): array
    {
        return [
            Actions\CreateAction::make(),
        ];
    }
}

4. Akses Panel Admin

Sekarang, Anda dapat mengakses panel admin Filament dengan mengunjungi /admin pada aplikasi Anda. Filament akan menyediakan antarmuka admin yang mudah digunakan untuk mengelola Product Anda, termasuk menambah, mengedit, dan menghapus produk.

Kesimpulan

FilamentPHP adalah framework yang kuat dan mudah digunakan untuk membangun panel admin dengan Laravel. Dengan menyediakan berbagai komponen siap pakai dan integrasi yang mulus dengan Laravel, Filament sangat cocok untuk pengembang yang ingin mempercepat proses pembuatan aplikasi admin.

Melalui contoh sederhana ini, kita telah belajar bagaimana membuat resource dan CRUD untuk entitas Product. Anda bisa memperluas fungsionalitas dengan menambahkan lebih banyak fitur atau penyesuaian sesuai kebutuhan proyek Anda.

Filament memudahkan pengelolaan data dengan antarmuka yang elegan dan efisien, dan merupakan pilihan tepat bagi pengembang yang menginginkan solusi cepat untuk panel admin di aplikasi Laravel mereka.

Post Tags : Laravel Filament

0 Komentar

Tinggalkan Komentar