آموزش ساخت پنل مدیریت با FilamentPHP: پروژه محور و کاربردی
یاد بگیرید چگونه با استفاده از FilamentPHP پنلهای مدیریت قدرتمند، سریع و کاربرپسند بسازید. در این دوره آموزشی با ساخت دو پروژه واقعی، FilamentPHP را به صورت عملی یاد میگیرید.
آنچه در این دوره خواهید آموخت:
- تعریف عملیات دستهجمعی (Bulk Actions) سفارشی در DataTables فیلامنت
- اعمال فیلترهای سفارشی به جدولهای فیلامنت
- سفارشیسازی داشبورد
- کار با نقشها و مجوزها (بدون استفاده از پکیجهای خارجی)
- ساخت سیستم مدیریت تیکت پشتیبانی با پیادهسازی کامل نقشها، مجوزها و احراز هویت
- ساخت دراپدانهای وابسته در FilamentPHP
- کار با روابط BelongToMany با استفاده از RelationManagers و سفارشیسازی آنها
- و بسیاری موارد دیگر...
پیشنیازها: دانش مقدماتی PHP/Laravel
در این دوره، به طور عملی FilamentPHP (یک سازنده پنل مدیریت شگفتانگیز) را از طریق ساخت دو پروژه یاد خواهیم گرفت.
پروژه اول: سیستم مدیریت دانشآموز
در اولین پروژه، یک سیستم مدیریت دانشآموز ساده را خواهیم ساخت که در آن سه منبع کلاسها، بخشها و مدیریت دانشآموزان را ایجاد خواهیم کرد.
در این مسیر، مباحث زیر را خواهیم آموخت:
- تعریف Custom Bulk Action برای Export کردن داده های Students.
- اعمال فیلترهای سفارشی برای فیلتر کردن داده های Students.
- نمایش Total Data Count/Relationship Data.
- نحوه نمایش Badge، تغییر آیکونها و گروهبندی آیتمهای ناوبری.
- کار بر روی سفارشیسازی داشبورد.
- کار بر روی اعتبارسنجیها.
- یادگیری نحوه تولید خودکار slug با اتصال به updated lifecycle hook در Livewire.
- یادگیری نحوه پیادهسازی دراپدانهای وابسته (برای نمایش دادههای بخش بر اساس کلاس انتخاب شده)
- تعریف Custom Action برای Import کردن داده های Student از یک فایل اکسل با استفاده از Laravel Excel.
- پیادهسازی Custom Guards در Laravel و تعریف یک پنل جداگانه برای Student Dashboard
- نحوه تغییر رفتار ورود پیش فرض در Filament
- رسیدگی به تولید PDF و QR Code Generation در پنل های Admin مبتنی بر FilamentPHP
پروژه دوم: سیستم تیکت پشتیبانی
در پروژه دوم، یک سیستم تیکت پشتیبانی خواهیم ساخت و در این مسیر، مباحث زیر را خواهیم آموخت:
- کار با روابط BelongToMany با استفاده از RelationManagers.
- نحوه سفارشیسازی RelationManagers بر اساس نیازها و افزودن/حذف Actions.
- کار با Badges و سفارشیسازی رنگ آنها بر اساس یک شرط.
- نحوه فیلتر کردن دادهها (با استفاده از Scopes و Query Builder) قبل از نمایش در فرم Filament.
- نحوه سفارشیسازی دادهها قبل از ذخیره آن در پایگاه داده.
بخش سوم: مجوزها و نقشها
در بخش سوم، با مجوزها کار خواهیم کرد و نقشها و مجوزها را بدون هیچ پکیج خارجی پیادهسازی خواهیم کرد. موارد زیر را یاد خواهیم گرفت:
- پیادهسازی قابلیتهای Custom Roles و Permissions.
- پیادهسازی Authorization/Policies در سراسر پروژه بر اساس Roles/Permissions موجود.
بخش چهارم: رفع مشکلات و افزودن ویژگیها به سیستم تیکت پشتیبانی
- تغییر عنوان اعلان پیش فرض filament
- تغییر CRUD های simple resource به Modal Resources.
- قابلیت collapsible کردن Sidebar و تغییر عرض پیش فرض آن
- نمایش رنگ های مختلف badge بر اساس شرایط خاص.
- کار بر روی ویجت ها، مانند ویجت های header
- کار با نمودارها و فیلتر کردن داده ها
- پیادهسازی SMS sending flow
- پیادهسازی Database Notifications در FilamentPHP.
- نحوه کار با media در پنل های Admin مبتنی بر FilamentPHP
- نحوه پیادهسازی Custom Action برای بروزرسانی رمز عبور User.
- نحوه مخفی کردن فیلدهای فرم در صفحات خاص.
بخش پنجم: اضافه کردن امکانات به سیستم مدیریت دانشجویان
- نحوه پیادهسازی ویژگی Students Import با استفاده از Custom Actions و Laravel Excel Package.
- نحوه تعریف Custom Guards و پیادهسازی یک پنل/داشبورد جداگانه برای Students.
بخش ششم: ساخت ویجت سفارشی از ابتدا
- ساخت یک metric widget (مشابه Laravel Nova) و MetricsOverviewWidget
- بررسی موارد استفاده از ویجت ها با مثال
- نحوه تعریف artisan commands برای خودکارسازی ساخت این ویجت های سفارشی.
بخش هفتم: استفاده از Filament Packages و Features خارج از پنل مدیریت
- نمایش داده ها با استفاده از Filament Tables خارج از Filament Admin Panel.
- نحوه استفاده از Filament Forms به همراه سایر ویژگی های مرتبط با فرم در front end.
- یادگیری در مورد Full-Page Components در Livewire.
- نحوه تعریف یک Custom Login Functionality با استفاده از پکیج FIlament Forms
بخش هشتم: پیادهسازی ویژگیهای Auth-related
پیادهسازی ویژگیهای Auth-related مانند User Registration, Email Verification, Profile Section, و Password Resets
بخش نهم: پیادهسازی Real-time Database Notifications
پیادهسازی Real-time Database Notifications در FilamentPHP با استفاده از Laravel Reverb.
در نهایت، پروژه را در Production مستقر کرده و تغییرات لازم را اعمال خواهیم کرد.
Tapan Sharma
نمایش نظرات