خیلی وقتا که میخوایم ی پنل مدیریت برای پروژه های لاراولیمون پیاده کنیم ، اگه خودمون بخوایم از صفر بنویسیم قطعااا زمان و انرژی زیادی رو ازمون میگیره، تازه نیازه که ما علاوه بر نوشتن کد های سمت پنل مدیریت ی سری کد برای اهراز هویت کاربر هم بنویسیم.
منم یکی ازین افرادی بودم که این مشکلو همیشه داشتم و نوشتن پنل مدیریت برام عذاب بود، چقد باید مینشستم کد میزدم و وقتمو طلف میکردم و هی کپی پیست میکردم ازین پروژه به اون پروژه، خلاصه که آره ?.
این اخرا یه پروژه داشتم و خب به خاطر علاقه ی زیادی که به Livewire داشتم تصمیم گرفتم برم سمتش و پنل رو با اون بنویسم، ولی خب هنوزم مشکلات زیادی رو داشتم ، باید از صفر مینوشتم همه چیزو (خلاصه کارم سخت ترم شده بود).
تصمیم گرفتم این سختی رو به جون بخرم ولی خب ی چیزی بنویسم که بتونم همه جا استفاده کنم ، بعدش با خودم گفتم چرا فقط خودم همه جا استفاده کنم ؟ چرا بقیه هم همه جا استفاده نکنن ؟ چرا لاراول اصن ؟ چرا چی چی ؟
و در نهایت شروع کردم ک ماژول رو به پکیج تبدیل کنم اما خب خیلی انعطاف پذیر تر و باحال تر :)
اینجا بود که گیتهاب و من رفیق شدیم و شروع کردیم کار روی پنل مدیریت...
خب دیگه زیاد داستان تعریف کردم بریم ببینیم اصن چی هستن این پنل که میگم (خیلی هیجان زده نشید اگه قلبتون ضعیفه ...)
ایزی پنل (کلا علاقه زیادی به کلمه ایزی دارم چون خودم تنبلم و چیزای ایزی رو ترجیح میدم :| ) یه پنل مدیریت باحال و سبکه که شما میتونید با دوتا دستور ساده نصبش کنید و شروع کنید کار باهاش.
composer require rezaamini-ir/laravel-easypanel php artisan install:admin
خب تموم شد نصب شد، بریم پی زندگیمون...
البته هنوز تموم نشده ، بیاید یکم در خصوص ویژگی های این پکیج بگم براتون :
و قابلیت های زیاد دیگه که میتونید توی ریپو گیتهاب اونارو ببینید.
بیاید باهم یه عملیات CRUD برای مقالات طراحی کنیم ( اگه بدون این پکیج باشه باید ی خروار کد بزنیم ? )
خب بالاتر که پکیج رو نصب کردیم، حالا میریم و کانفیگ رو باز میکنیم و از قسمت actions بصورت دیفالت خودش ی نمونه ساده از مقالات برامون نوشته.
'article' => [ 'model' => \App\Models\Article::class, 'search' => 'title', 'create' => true, 'update' => true, 'delete' => true, 'validation' => [ 'title' => 'required', 'content' => 'required|min:30', ], 'fields' => [ 'title' => 'text', 'content' => 'textarea', 'image' => 'file' ], 'show' => ['title', 'content'], ],
کلید show توی این ارایه نشون دهنده ایتم هایی هستش که توی لیست مقالات نشون داده میشن و fields هم اینپوت هایی هستن که میخوایم موقع ویرایش و ساخت مقاله داشته باشیم که بصورت key => value هستش که key ها میشن همون column های توی دیتابیس و value که نوع اینپوت هستن.
حالا که اینو حل کردیم بیاید باهم کاراشو تکمیل کنیم ، فقط با یه کامند :
php artisan crud:all article
و تموم شد ما یه پنل مدیریت داریم به همراه یه بخش برای مدیریت مقاله (1 دیقه هم نشد که )
شما میتونید کل فایل ها و ویو هارو مدیریت کنید و اونارو شخصی سازی کنید، حالا این فایلا کجان ؟
resources/views/livewire/admin // فایل های مربوط به ویو های CRUD resources/views/vendor/admin // فایل های مربوط به ویو های اصلی پنل app/Http/Livewire/Admin // کنترلر های پنل مدیریت
همه شو میتونید شخصی سازی کنید ( باحاله نه ؟ )
تازه نیازی هم نیست خیلی خودتونو به زحمت بندازید برای ساخت ادمین و .. اگه نمیخواید کد بزنید ی کالمن دلخواه که مقدارش bool هستش رو بسازید توی تیبل یوزر ها و اسم اونو توی فایل کانفیگ وارد کنید، و بعدش میتونید با کامند های زیر ادمین اضافه یا حذف کنید ( تموم شد آقااااا )
php artisan make:admin 1 php artisan delete:admin 1
خب اینم پنل مدیریتی که اینقد غر میزدید براش، ساخته شد رفت پی کارش :)
اینم آدرس ریپو گیتهاب :
https://github.com/rezaamini-ir/laravel-easypanel
⭐ یادتون نره استار بدید و اگه ایده ای دارید دست به کد بشید و Pull Request بزنید که لذت ببریم (اگرم حوصله کد نداشتید همینجا بگید اضافه میکنیم بهش) :)
بزودی هم سیستم ACL و یک سیستم قویتر برای ساخت CRUD به پروژه اضافه میشه..