Anophel-آنوفل فیلامنت (Filament) چیست؟ بهترین ادمین پنل لاراول

فیلامنت (Filament) چیست؟ بهترین ادمین پنل لاراول

تاریخ انتشار:
Laravel
زمان مطالعه: 5 دقیقه

به عنوان توسعه دهندگان لاراول می دانیم که یک فریمورک چقدر می تواند سازنده باشد: مجموعه ای از اجزای مشترک، قابلیت های قابل استفاده مجدد و مهمتر از همه، مجموعه ای از دستورالعمل ها را ارائه می دهد که باعث می شود همه افراد از فریمورک کارآمدتر استفاده کنند.

با دانستن این موضوع، تیم توسعه دهنده در FilamentPHP یک فریمورک در فریمورک ایجاد کردند که از چند بخش تشکیل شده است: یک Form Builder، یک Table Builder و یک پکیج Notifications وجود دارد و همچنین یک پنل مدیریت وجود دارد که آنها را ترکیب می کند. با استفاده از پنل مدیریت، می توانید منابعی ایجاد کنید که به شما امکان می دهد به راحتی صفحات CRUD با پیمایش، جداول و فرم ها را به برنامه خود اضافه کنید. همه آنها ماهرانه طراحی شده اند و بسیار انعطاف پذیر است تا در صورت نیاز تغییرات خود را ایجاد کنید.

 

در این مقاله، نگاهی به Filament خواهیم داشت و مورد بررسی قرار می دهیم.

 

فیلامنت چیست؟

Filament یک پنل مدیریت منبع باز است که با زبان PHP در فریمورک محبوب لاراول نوشته شده است و بر سهولت استفاده برای توسعه دهندگان تمرکز دارد. فیلامنت از Livewire، Alpine.js و Tailwind برای قسمت فرانت اند استفاده می کند. در بک اند نیز، فیلامنت از ساخت پنل مدیریت مسئول، عملیات CRUD، جداول، فرم‌ها و غیره مراقبت می‌کند.

 

فیلامنت در چه مواردی نیازهای شما را برآورده می کند؟

 

1. زمانی که توسعه سریع اهمیت دارد، مانند مواقعی که در اسرع وقت به MVP نیاز دارید یا زمانی که ممکن است تعداد زیادی ویژگی وجود داشته باشد که باید در مدت زمان کوتاهی ارائه دهید.
Filament یک تجربه توسعه بسیار آسان برای استفاده را فراهم می کند زیرا فرانت اند بهتری دارد و ابزار تولید کد خوبی دارد، بنابراین می توانید مطمئن شوید که هر بار که به چیزی نیاز دارید، بخش قابل توجهی از کد قبلاً توسط Filament نوشته شده است.

 

در دیدگاه Filament، همه چیز یک منبع است.

 

2. زمانی که به یک پنل مدیریت زیبا، مدرن و آماده نیاز دارید

وقتی می‌خواهم یک برنامه جدید را راه‌اندازی کنم، وقتی نوبت به طراحی و لایه نمایش می‌رسد، همیشه با مشکل کمبود دانش پیشین روبرو می‌شوم، اما این مشکل پس از آشنایی با Filament حل شد. از طرف دیگر، پیاده سازی یک طرح مسئولانه، واکنش پذیر و زیبا بارها و بارها می تواند اغراق آمیز باشد، فیلامنت این کارها را برای شما انجام می دهد. اگر به یک پنل مدیریت منحصر به فرد و بسیار کاربرپسند نیاز دارید، می تواند طیف گسترده ای از نیازهای برنامه ها را برآورده کند.

 

همچنین دارای ویژگی هایی است که به شما امکان می دهد نمای دلخواه خود را داشته باشید.

 

نحوه نصب فیلامنت

برای نصب فیلامنت ابتدا لاراول را نصب کنید، البته نسخه 10 یا به بالا را نصب کنید.

 

نصب فلایمنت بسیار ساده است:

 

composer require filament/filament
php artisan migrate

 

با اجرا کردن، یک حساب کاربری برای پنل مدیریت خود ایجاد کنید:

 

php artisan make:filament-user

 

و با پاسخ دادن به مواردی که از شما می پرسد، حساب کاربری را ایجاد کنید.

 

ایجاد یک منبع

منابع با مدل‌های Eloquent از برنامه شما مرتبط هستند. برای ایجاد یک منبع برای مدل App\Models\Customer:

 

php artisan make:filament-resource Customer

 

با این کار چندین فایل در فهرست app/Filament/Resources ایجاد می شود:

 

.
+-- CustomerResource.php
+-- CustomerResource
|   +-- Pages
|   |   +-- CreateCustomer.php
|   |   +-- EditCustomer.php
|   |   +-- ListCustomers.php

 

کلاس resource جدید شما در CustomerResource.php قرار دارد. کلاس های منبع فرم ها، جداول، تنظیمات مجوز و صفحات مرتبط با آن مدل را ثبت می کنند.

کلاس‌های دایرکتوری Pages برای سفارشی کردن صفحاتی در پنل مدیریت که با منبع شما در تعامل هستند استفاده می‌شوند.

 

ساخت فرم

فیلامنت دارای فرم ساز قدرتمندی است که می تواند برای ایجاد فرم های بصری، پویا و متنی در پنل مدیریت استفاده شود.

فرم ها یک اسکیمای ساده دارند، که آرایه ای است که شامل بسیاری از اجزای فرم است. بیایید یک طرح فرم برای CustomerResource خود تعریف کنیم:

 

use Filament\Resources\Forms\Components;
use Filament\Resources\Forms\Form;
 
public static function form(Form $form)
{
    return $form
        ->schema([
            Components\TextInput::make('name')->autofocus()->required(),
            Components\TextInput::make('email')->email()->required(),
            Components\Select::make('type')
                ->placeholder('Select a type')
                ->options([
                    'individual' => 'Individual',
                    'organization' => 'Organization',
                ]),
            Components\DatePicker::make('birthday'),
        ])
        ->columns(2);
}

 

ساختن یک جدول

Filament شامل یک جدول ساز است که می تواند برای ایجاد جداول تعاملی در پنل مدیریت استفاده شود.

جداول دارای ستون ها و فیلترهایی هستند که به دو روش روی شی جدول تعریف می شوند. بیایید یک جدول برای CustomerResource خود بسازیم:

 

use Filament\Resources\Tables\Columns;
use Filament\Resources\Tables\Filter;
use Filament\Resources\Tables\Table;
 
public static function table(Table $table)
{
    return $table
        ->columns([
            Columns\Text::make('name')->primary(),
            Columns\Text::make('email')->url(fn ($customer) => "mailto:{$customer->email}"),
            Columns\Text::make('type')
                ->options([
                    'individual' => 'Individual',
                    'organization' => 'Organization',
                ]),
            Columns\Text::make('birthday')->date(),
        ])
        ->filters([
            Filter::make('individuals', fn ($query) => $query->where('type', 'individual')),
            Filter::make('organizations', fn ($query) => $query->where('type', 'organization')),
        ]);
}

 

 

معایب فلایمنت

1. مستندات به اندازه کافی خوب نیست
Filament راه درازی برای داشتن مقدار قابل قبولی از آموزش، اسناد، فیلم ها در سراسر وب دارد، تنها مرجع خود داکیومنت های فیلامنت است. با این حال، داکیومنت خوب است، اما از تمام جزئیاتی که ممکن است لازم باشد در هنگام ساختن یک برنامه دنیای واقعی بدانید، پشتیبانی نمی کند، بنابراین اغلب اوقات ممکن است کد منبع را جستجو کنید و پاسخ مورد نظر خود را بیابید.

 

اگر می‌خواهید چرخه عمر نرم‌افزاری طولانی‌مدت را شروع کنید و فیلامنت را به‌عنوان استک پنل مدیریت خود انتخاب کرده‌اید، ممکن است بیشتر در مورد آن فکر کنید.

 

2. تقریباً از توابع غیر خام پشتیبانی نمی کند

با این حال، Filament نسبتاً عملیات CRUD را مدیریت می کند، اما اجرای هر بخش دیگری از برنامه با رفتارهای متفاوت ممکن است شما را متضرر کند. اگر با Livewire، Alpine.js و Tailwind آشنایی ندارید، ممکن است طراحی سفارشی خود سخت‌تر باشد.

 

3. پلاگین های محدود
پلاگین ها کدهایی هستند که توسط انجمن نوشته شده اند تا برخی عملکردها را به رشته اضافه کنند، اما تعداد محدودی از آنها وجود دارد. بنابراین ممکن است زمانی که در حال توسعه پروژه خود هستید، برای نوشتن افزونه خود وقت بگذارید.

 

نتیجه

فیلامنت می تواند انتخابی عالی برای ارسال یک محصول سریع و خام باشد. از سوی دیگر، جامعه بسیار محدودی دارد که کمبود آموزش، پلاگین های شخص ثالث و کتابخانه ها را به همراه دارد. این می تواند روند توسعه را در طول زمان کندتر کند، اما اگر به دنبال یک ابزار توسعه سریع و آسان هستید. ممکن است ارزش داشته باشد

 

 

#filament #فیلامنت #ادمین_پنل #لاراول