021-88881776

آموزش پلاگین‌ها (Plugins) در Filament

آموزش Filament به شما کمک می‌کند تا در دنیای توسعه وب از ابزارهای قدرتمند بهره‌مند شوید. یکی از این ابزارها پلاگین‌ها (Plugins) در Filament هستند که به توسعه‌دهندگان امکان افزودن قابلیت‌های متنوع به پنل مدیریت Filament را می‌دهند. در این مقاله آموزشی جامع، تمامی جنبه‌های پلاگین‌ها در Filament را از سطح مبتدی تا پیشرفته بررسی خواهیم کرد.

نصب پلاگین‌ها

نصب پلاگین‌ها در Filament فرآیندی ساده و قابل فهم است که با استفاده از ابزارهای Composer و دستورات Artisan انجام می‌شود. این فرآیند به شما اجازه می‌دهد تا به سرعت قابلیت‌های جدیدی را به پنل مدیریت Filament خود اضافه کنید و عملکرد آن را بهبود بخشید. در این بخش، به معرفی دو پلاگین محبوب و نحوه نصب و پیکربندی آن‌ها می‌پردازیم. همچنین، نکات مهم و مشکلات رایجی که ممکن است در هنگام نصب پلاگین‌ها با آن‌ها مواجه شوید را بررسی خواهیم کرد.

مراحل کلی نصب پلاگین‌ها در Filament

قبل از ورود به جزئیات هر پلاگین، بیایید نگاهی کلی به مراحل نصب پلاگین‌ها در Filament بیندازیم:

پیدا کردن پلاگین مناسب:

ابتدا باید پلاگینی که نیازهای پروژه شما را برآورده می‌کند، پیدا کنید. می‌توانید از مستندات رسمی Filament یا مخازن GitHub برای جستجوی پلاگین‌ها استفاده کنید.

نصب پلاگین با Composer:

بیشتر پلاگین‌های Filament از طریق Composer قابل نصب هستند. با اجرای دستور مناسب Composer، پلاگین به پروژه شما اضافه می‌شود.

انتشار فایل‌های مورد نیاز:

برخی پلاگین‌ها نیاز به انتشار فایل‌های پیکربندی، مهاجرت‌ها یا منابع دیگر دارند. این کار معمولاً با استفاده از دستورات Artisan انجام می‌شود.

اجرای مهاجرت‌ها:

اگر پلاگین نیاز به ایجاد جداول جدید در پایگاه داده دارد، باید مهاجرت‌ها را اجرا کنید.

پیکربندی پلاگین:

برخی پلاگین‌ها نیاز به پیکربندی اضافی دارند که می‌توانید آن‌ها را در فایل‌های پیکربندی پروژه خود تنظیم کنید.

استفاده از پلاگین در Filament:

پس از نصب و پیکربندی، می‌توانید از قابلیت‌های پلاگین در پنل مدیریت Filament خود بهره‌مند شوید.

Spatie Media Library

Spatie Media Library یکی از پلاگین‌های پرکاربرد در Filament است که مدیریت رسانه‌ها را در پروژه‌های لاراول ساده می‌کند. این پلاگین به شما امکان می‌دهد تصاویر، ویدئوها و سایر فایل‌های رسانه‌ای را به راحتی در پروژه خود مدیریت کنید.

نصب Spatie Media Library

برای نصب این پلاگین، ابتدا باید از طریق Composer آن را به پروژه خود اضافه کنید. مراحل نصب به شرح زیر است:

افزودن پلاگین به پروژه با Composer:

ابتدا باید پلاگین را با استفاده از Composer به پروژه خود اضافه کنید. برای این کار، دستور زیر را در ترمینال خود اجرا کنید:

composer require spatie/laravel-medialibrary

انتشار فایل‌های مهاجرت (Migration):

پس از نصب پلاگین، باید فایل‌های مهاجرت مربوط به Media Library را منتشر کنید. این فایل‌ها جداول مورد نیاز برای ذخیره‌سازی اطلاعات رسانه‌ها را ایجاد می‌کنند.

php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="migrations"

اجرای مهاجرت‌ها:

با اجرای دستور زیر، مهاجرت‌ها اجرا شده و جداول مورد نیاز در پایگاه داده ایجاد می‌شوند:

php artisan migrate

انتشار فایل‌های پیکربندی (اختیاری):

برای تنظیمات پیشرفته‌تر، می‌توانید فایل پیکربندی Media Library را منتشر کنید:

php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="config"

فایل پیکربندی منتشر شده در مسیر config/medialibrary.php قرار می‌گیرد و می‌توانید تنظیمات مورد نظر خود را در آن اعمال کنید.

تجهیز مدل‌ها با Media Library:

برای استفاده از قابلیت‌های Media Library، باید مدل‌های خود را با اینترفیس‌های مربوطه تجهیز کنید. به عنوان مثال، اگر می‌خواهید مدل Post قابلیت مدیریت رسانه‌ها را داشته باشد، باید تغییرات زیر را اعمال کنید:

use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;

class Post extends Model implements HasMedia
{
    use InteractsWithMedia;

    // سایر کدهای مدل
}

استفاده از Spatie Media Library در Filament

پس از نصب و پیکربندی پلاگین Spatie Media Library، می‌توانید از امکانات آن در پنل مدیریت Filament بهره‌مند شوید. به عنوان مثال، برای افزودن قابلیت آپلود تصاویر به یک مدل، می‌توانید مراحل زیر را دنبال کنید:

تعریف فیلد رسانه در فرم Filament:

در فایل Resource مربوط به مدل خود، فیلد رسانه را به فرم اضافه کنید:

use Filament\Forms\Components\FileUpload;

public static function form(Form $form): Form
{
    return $form
        ->schema([
            // سایر فیلدهای فرم
            FileUpload::make('media')
                ->multiple()
                ->enableReordering()
                ->enableDownload()
                ->label('آپلود تصاویر'),
        ]);
}

نمایش رسانه‌ها در جدول Filament:

برای نمایش تصاویر آپلود شده در جدول مدیریت، می‌توانید ستون مربوطه را اضافه کنید:

use Filament\Tables\Columns\ImageColumn;

public static function table(Table $table): Table
{
    return $table
        ->columns([
            // سایر ستون‌ها
            ImageColumn::make('media')
                ->label('تصاویر')
                ->circular(),
        ]);
}

مدیریت رسانه‌ها:

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

Excel Exporter

Excel Exporter پلاگینی است که امکان صادرات داده‌ها به فرمت Excel را در Filament فراهم می‌کند. این پلاگین برای گزارش‌گیری و تحلیل داده‌ها بسیار مفید است و به کاربران اجازه می‌دهد تا اطلاعات مورد نیاز خود را به صورت فایل‌های Excel دریافت کنند.

نصب Excel Exporter

برای نصب این پلاگین نیز از Composer استفاده می‌کنیم. مراحل نصب به شرح زیر است:

افزودن پلاگین به پروژه با Composer:

ابتدا پلاگین را با استفاده از Composer به پروژه خود اضافه کنید:

composer require filament/excel-exporter

پیکربندی پلاگین با Artisan:

پس از نصب پلاگین، باید آن را پیکربندی کنید. برای این کار، دستور زیر را اجرا کنید:

php artisan filament:exporter:install

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

تنظیمات پیکربندی (اختیاری):

اگر نیاز به تنظیمات پیشرفته‌تر دارید، می‌توانید فایل پیکربندی پلاگین را در مسیر config/filament-exporter.php ویرایش کنید.

استفاده از Excel Exporter در Filament

برای استفاده از پلاگین Excel Exporter در پنل مدیریت Filament، می‌توانید مراحل زیر را دنبال کنید:

فعال‌سازی گزینه صادرات به Excel در جداول Filament:

در فایل Resource مربوط به مدل خود، قابلیت صادرات به Excel را فعال کنید:

use Filament\Tables\Actions\ExportAction;

public static function table(Table $table): Table
{
    return $table
        ->actions([
            ExportAction::make('export')
                ->label('خروجی Excel')
                ->exporter('excel')
                ->visible(fn () => true),
        ])
        ->columns([
            // ستون‌های جدول
        ]);
}

تعریف فیلدهای صادرات:

می‌توانید تعیین کنید که کدام فیلدها در فایل Excel صادر شوند:

use Filament\Tables\Columns\TextColumn;

public static function table(Table $table): Table
{
    return $table
        ->columns([
            TextColumn::make('id')->label('شناسه'),
            TextColumn::make('name')->label('نام'),
            TextColumn::make('email')->label('ایمیل'),
            // سایر ستون‌ها
        ])
        ->actions([
            ExportAction::make('export')
                ->label('خروجی Excel')
                ->exporter('excel')
                ->visible(fn () => true),
        ]);
}

اجرای صادرات:

اکنون کاربران می‌توانند با کلیک بر روی دکمه “خروجی Excel”، داده‌های جدول را به صورت فایل Excel دریافت کنند. پلاگین Excel Exporter تمامی عملیات مربوط به تولید فایل Excel را به صورت خودکار انجام می‌دهد.

نکات مهم در نصب پلاگین‌ها

همخوانی نسخه‌ها: قبل از نصب پلاگین‌ها، مطمئن شوید که نسخه‌های Composer و Laravel شما با پلاگین‌های مورد نظر سازگار هستند. بررسی مستندات پلاگین‌ها می‌تواند در این زمینه کمک‌کننده باشد.

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

مدیریت وابستگی‌ها: برخی پلاگین‌ها ممکن است به پلاگین‌ها یا کتابخانه‌های دیگری وابسته باشند. اطمینان حاصل کنید که تمامی وابستگی‌های مورد نیاز نصب شده‌اند.

پشتیبان‌گیری از پروژه: قبل از نصب پلاگین‌های جدید، از پروژه خود نسخه پشتیبان تهیه کنید تا در صورت بروز مشکل بتوانید به وضعیت قبلی بازگردید.

ایجاد پلاگین سفارشی

اگر پلاگین‌های موجود پاسخگوی نیازهای خاص شما نیستند، می‌توانید پلاگین سفارشی خود را ایجاد کنید. ایجاد پلاگین‌های سفارشی به شما این امکان را می‌دهد تا قابلیت‌های منحصر به فرد و متناسب با پروژه خود را به پنل مدیریت Filament اضافه کنید. در این بخش به مراحل ایجاد یک پلاگین سفارشی در Filament می‌پردازیم.

مراحل ایجاد پلاگین سفارشی

ایجاد پلاگین سفارشی در Filament شامل چند مرحله کلیدی است که در ادامه به تفصیل هر یک از آن‌ها پرداخته می‌شود:

ایجاد ساختار اولیه پلاگین:
تعریف سرویس‌پروایدر پلاگین:
افزودن کامپوننت‌ها و قابلیت‌ها:
استفاده از پلاگین در پروژه:

۱. ایجاد ساختار اولیه پلاگین

ابتدا باید ساختار پوشه‌ای پلاگین را ایجاد کنید. این کار به سازمان‌دهی بهتر کد و مدیریت آسان‌تر پلاگین کمک می‌کند. برای ایجاد پلاگین سفارشی، می‌توانید از دستور Artisan استفاده کنید:

php artisan make:filament-plugin YourPluginName

این دستور یک پوشه با نام پلاگین شما در مسیر packages ایجاد می‌کند و فایل‌های اولیه پلاگین را در آن قرار می‌دهد. ساختار کلی پوشه پلاگین به صورت زیر خواهد بود:

packages/
└── YourVendor/
    └── YourPluginName/
        ├── src/
        │   ├── YourPluginNameServiceProvider.php
        │   ├── Resources/
        │   │   └── ...
        │   └── ...
        ├── composer.json
        └── ...

توضیحات:

YourVendor: نام شرکت یا توسعه‌دهنده شما.
YourPluginName: نام پلاگین شما.
src/: شامل کدهای اصلی پلاگین.
composer.json: فایل تنظیمات Composer پلاگین.

۲. تعریف سرویس‌پروایدر پلاگین

سرویس‌پروایدر نقش مهمی در بارگذاری و مدیریت منابع پلاگین دارد. در فایل YourPluginNameServiceProvider.php، باید سرویس‌ها و کامپوننت‌های مورد نیاز را ثبت کنید.

نمونه کد سرویس‌پروایدر:

namespace YourVendor\YourPluginName;

use Filament\PluginServiceProvider;
use Illuminate\Support\ServiceProvider;

class YourPluginNameServiceProvider extends PluginServiceProvider
{
    public function register(): void
    {
        // ثبت سرویس‌ها و کامپوننت‌ها
    }

    public function boot(): void
    {
        // بارگذاری منابع مانند viewها، migrations و غیره
        $this->loadViewsFrom(__DIR__.'/../resources/views', 'your-plugin-name');
        $this->loadMigrationsFrom(__DIR__.'/../database/migrations');
    }
}

توضیحات:

loadViewsFrom: بارگذاری viewهای پلاگین.
loadMigrationsFrom: بارگذاری فایل‌های مهاجرت پلاگین.

۳. افزودن کامپوننت‌ها و قابلیت‌ها

بسته به نیاز پروژه، می‌توانید فرم‌ها، جداول، صفحات و سایر عناصر مورد نیاز را به پلاگین اضافه کنید. در اینجا به معرفی برخی از مهم‌ترین کامپوننت‌ها و نحوه افزودن آن‌ها می‌پردازیم:

a. ایجاد Resource

برای مدیریت موجودیت‌های خاص، می‌توانید Resourceهای Filament ایجاد کنید. به عنوان مثال، اگر پلاگین شما مدیریت اعلان‌ها را بر عهده دارد، می‌توانید یک Resource برای اعلان‌ها ایجاد کنید.

ایجاد Resource اعلان‌ها:

php artisan make:filament-resource Notification

این دستور فایل‌های مربوط به Resource اعلان‌ها را ایجاد می‌کند که شامل فرم‌ها و جدول‌ها برای مدیریت اعلان‌ها است.

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

نمونه کد ایجاد صفحه سفارشی:

namespace YourVendor\YourPluginName\Pages;

use Filament\Pages\Page;

class CustomDashboard extends Page
{
    protected static string $view = 'your-plugin-name::pages.custom-dashboard';
}

c. افزودن فرم‌ها و جداول
برای مدیریت داده‌ها، نیاز به فرم‌ها و جداول دارید. می‌توانید از کامپوننت‌های Filament برای ایجاد فرم‌ها و جداول استفاده کنید.

نمونه کد ایجاد فرم:

namespace YourVendor\YourPluginName\Resources\NotificationResource\Pages;

use Filament\Resources\Pages\CreateRecord;
use YourVendor\YourPluginName\Resources\NotificationResource;

class CreateNotification extends CreateRecord
{
    protected static string $resource = NotificationResource::class;
}

نمونه کد ایجاد جدول:

namespace YourVendor\YourPluginName\Resources\NotificationResource;

use Filament\Resources\Resource;
use Filament\Resources\Form;
use Filament\Resources\Table;
use YourVendor\YourPluginName\Models\Notification;

class NotificationResource extends Resource
{
    protected static string $model = Notification::class;

    public static function form(Form $form): Form
    {
        return $form
            ->schema([
                Forms\Components\TextInput::make('title')
                    ->required()
                    ->label('عنوان'),
                Forms\Components\Textarea::make('message')
                    ->required()
                    ->label('پیام'),
            ]);
    }

    public static function table(Table $table): Table
    {
        return $table
            ->columns([
                Tables\Columns\TextColumn::make('id')->label('شناسه'),
                Tables\Columns\TextColumn::make('title')->label('عنوان'),
                Tables\Columns\TextColumn::make('created_at')->label('تاریخ ایجاد')->date(),
            ])
            ->filters([
                //
            ]);
    }
}

d. افزودن رابط‌های کاربری (Views)
برای افزودن رابط‌های کاربری سفارشی، می‌توانید viewهای Blade را در پوشه resources/views پلاگین خود ایجاد کنید.

نمونه کد view:

<!-- resources/views/pages/custom-dashboard.blade.php -->
@extends('filament::page')

@section('content')
    <div class="p-6">
        <h1 class="text-2xl font-bold">داشبورد سفارشی پلاگین</h1>
        <!-- محتوای داشبورد -->
    </div>
@endsection

۴. استفاده از پلاگین در پروژه

پس از تکمیل پلاگین، باید آن را به پروژه اصلی اضافه کرده و از قابلیت‌های آن در پنل مدیریت Filament استفاده کنید. برای این کار، مراحل زیر را دنبال کنید:

اضافه کردن پلاگین به Composer Autoload:

ابتدا باید مسیر پلاگین را به Composer Autoload پروژه اضافه کنید. در فایل composer.json پروژه اصلی، بخش autoload را به صورت زیر ویرایش کنید:

"autoload": {
    "psr-4": {
        "App\\": "app/",
        "YourVendor\\YourPluginName\\": "packages/YourVendor/YourPluginName/src/"
    }
}

سپس دستور زیر را اجرا کنید تا Composer autoload را به‌روزرسانی کند:

composer dump-autoload

ثبت سرویس‌پروایدر پلاگین:

پلاگین خود را در فایل config/app.php یا فایل پیکربندی مربوطه ثبت کنید. به طور معمول، در فایل config/filament.php، بخش plugins را ویرایش کنید:

'plugins' => [
    \YourVendor\YourPluginName\YourPluginNameServiceProvider::class,
],

اجرای مهاجرت‌ها (در صورت نیاز):

اگر پلاگین شما نیاز به مهاجرت‌های اضافی دارد، دستور زیر را اجرا کنید:

php artisan migrate

دسترسی به پلاگین در پنل مدیریت Filament:

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

مثال عملی: ایجاد پلاگین مدیریت اعلان‌ها

فرض کنید می‌خواهید پلاگینی برای مدیریت اعلان‌ها در Filament ایجاد کنید. مراحل زیر را به تفصیل بررسی می‌کنیم:

۱. ایجاد پلاگین

ابتدا پلاگین را با استفاده از دستور Artisan ایجاد کنید:

php artisan make:filament-plugin NotificationManager

این دستور یک پوشه به نام NotificationManager در مسیر packages/YourVendor/NotificationManager ایجاد می‌کند و فایل‌های اولیه پلاگین را در آن قرار می‌دهد.

۲. تعریف مدل و مهاجرت‌ها

مدل اعلان‌ها را ایجاد کرده و مهاجرت‌های مربوطه را تعریف کنید:

ایجاد مدل Notification:

php artisan make:model Notification -m

این دستور مدل Notification و فایل مهاجرت مربوطه را ایجاد می‌کند.

تعریف فیلدهای مهاجرت:

در فایل مهاجرت که در مسیر database/migrations/xxxx_xx_xx_create_notifications_table.php قرار دارد، فیلدهای مورد نیاز را تعریف کنید:

public function up()
{
    Schema::create('notifications', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->text('message');
        $table->timestamps();
    });
}

اجرای مهاجرت‌ها:

پس از تعریف فیلدها، مهاجرت‌ها را اجرا کنید:

php artisan migrate

تعریف مدل Notification:

در فایل مدل Notification.php، تنظیمات مربوطه را اعمال کنید:

namespace YourVendor\NotificationManager\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Notification extends Model
{
    use HasFactory;

    protected $fillable = ['title', 'message'];
}

۳. افزودن صفحات مدیریت به پلاگین

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

ایجاد Resource اعلان‌ها:

php artisan make:filament-resource Notification

این دستور فایل‌های Resource اعلان‌ها را ایجاد می‌کند که شامل فرم‌ها و جدول‌ها برای مدیریت اعلان‌ها است.

تعریف فرم در Resource:

در فایل NotificationResource.php، فرم اعلان‌ها را تعریف کنید:

namespace YourVendor\NotificationManager\Resources;

use Filament\Resources\Resource;
use Filament\Resources\Form;
use Filament\Resources\Table;
use YourVendor\NotificationManager\Models\Notification;
use Filament\Forms;
use Filament\Tables;

class NotificationResource extends Resource
{
    protected static string $model = Notification::class;

    public static function form(Form $form): Form
    {
        return $form
            ->schema([
                Forms\Components\TextInput::make('title')
                    ->required()
                    ->label('عنوان'),
                Forms\Components\Textarea::make('message')
                    ->required()
                    ->label('پیام'),
            ]);
    }

    public static function table(Table $table): Table
    {
        return $table
            ->columns([
                Tables\Columns\TextColumn::make('id')->label('شناسه'),
                Tables\Columns\TextColumn::make('title')->label('عنوان'),
                Tables\Columns\TextColumn::make('created_at')->label('تاریخ ایجاد')->date(),
            ])
            ->filters([
                //
            ]);
    }

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

تعریف صفحات ایجاد، ویرایش و نمایش اعلان‌ها:

در پوشه Pages مربوط به Resource اعلان‌ها، فایل‌های مربوط به ایجاد، ویرایش و نمایش اعلان‌ها را تعریف کنید.

نمونه کد صفحه ایجاد اعلان:

namespace YourVendor\NotificationManager\Resources\NotificationResource\Pages;

use Filament\Resources\Pages\CreateRecord;
use YourVendor\NotificationManager\Resources\NotificationResource;

class CreateNotification extends CreateRecord
{
    protected static string $resource = NotificationResource::class;
}

نمونه کد صفحه ویرایش اعلان:

namespace YourVendor\NotificationManager\Resources\NotificationResource\Pages;

use Filament\Resources\Pages\EditRecord;
use YourVendor\NotificationManager\Resources\NotificationResource;

class EditNotification extends EditRecord
{
    protected static string $resource = NotificationResource::class;
}

نمونه کد صفحه نمایش اعلان‌ها:

namespace YourVendor\NotificationManager\Resources\NotificationResource\Pages;

use Filament\Resources\Pages\ListRecords;
use YourVendor\NotificationManager\Resources\NotificationResource;

class ListNotifications extends ListRecords
{
    protected static string $resource = NotificationResource::class;
}

تعریف viewهای سفارشی (اختیاری):

اگر نیاز به صفحات سفارشی دارید، می‌توانید viewهای Blade را در پوشه resources/views پلاگین خود ایجاد کنید.

نمونه کد view سفارشی:

<!-- packages/YourVendor/NotificationManager/resources/views/pages/custom-dashboard.blade.php -->
@extends('filament::page')

@section('content')
    <div class="p-6">
        <h1 class="text-2xl font-bold">داشبورد مدیریت اعلان‌ها</h1>
        <!-- محتوای داشبورد -->
    </div>
@endsection

۴. ثبت پلاگین در پروژه

پس از تکمیل پلاگین، باید آن را به پروژه اصلی اضافه کرده و از قابلیت‌های آن در پنل مدیریت Filament استفاده کنید. مراحل زیر را دنبال کنید:

اضافه کردن پلاگین به Composer Autoload:

ابتدا باید مسیر پلاگین را به Composer Autoload پروژه اضافه کنید. در فایل composer.json پروژه اصلی، بخش autoload را به صورت زیر ویرایش کنید:

"autoload": {
    "psr-4": {
        "App\\": "app/",
        "YourVendor\\NotificationManager\\": "packages/YourVendor/NotificationManager/src/"
    }
}

سپس دستور زیر را اجرا کنید تا Composer autoload را به‌روزرسانی کند:

composer dump-autoload

ثبت سرویس‌پروایدر پلاگین:

پلاگین خود را در فایل config/filament.php ثبت کنید. بخش plugins را به صورت زیر ویرایش کنید:

'plugins' => [
    \YourVendor\NotificationManager\YourPluginNameServiceProvider::class,
],

اجرای مهاجرت‌ها (در صورت نیاز):

اگر پلاگین شما نیاز به مهاجرت‌های اضافی دارد، دستور زیر را اجرا کنید:

php artisan migrate

دسترسی به پلاگین در پنل مدیریت Filament:

پس از ثبت پلاگین، می‌توانید از طریق پنل مدیریت Filament به قابلیت‌های جدید پلاگین دسترسی پیدا کنید. به عنوان مثال، منوی مدیریت اعلان‌ها در پنل مدیریت ظاهر خواهد شد و کاربران می‌توانند اعلان‌ها را ایجاد، ویرایش و مشاهده کنند.

نکات کلیدی در ایجاد پلاگین سفارشی

تعیین نیازها: قبل از شروع به ایجاد پلاگین، دقیقاً مشخص کنید که پلاگین شما چه قابلیت‌هایی باید داشته باشد و چه مشکلی را حل می‌کند. این کار به طراحی بهتر و سازمان‌دهی کد کمک می‌کند.

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

استفاده از بهترین شیوه‌ها: از بهترین شیوه‌های برنامه‌نویسی و طراحی نرم‌افزار پیروی کنید. این شامل استفاده از الگوهای طراحی، رعایت استانداردهای کدگذاری و مستندسازی کد است.

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

مستندسازی: پلاگین خود را به خوبی مستندسازی کنید تا کاربران دیگر بتوانند به راحتی از آن استفاده کنند و در صورت نیاز تغییرات لازم را اعمال کنند.

نتیجه‌گیری

در این آموزش Filament، به بررسی جامع و کاملی از پلاگین‌ها (Plugins) در Filament پرداختیم و نحوه نصب و استفاده از آن‌ها را از سطح مبتدی تا پیشرفته مورد بررسی قرار دادیم. پلاگین‌ها در Filament ابزارهایی قدرتمند هستند که به توسعه‌دهندگان امکان می‌دهند تا به سرعت و با کمترین هزینه، قابلیت‌های جدید و متنوعی را به پنل مدیریت خود اضافه کنند. از نصب پلاگین‌های محبوب مانند Spatie Media Library و Excel Exporter تا ایجاد پلاگین‌های سفارشی، تمامی مراحل به تفصیل شرح داده شد تا شما بتوانید به راحتی از این ابزارها بهره‌مند شوید.

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

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

آموزش پلاگین‌ها (Plugins) در Filament

دیدگاه های شما

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *