برنامه نویس ارشد - دوآپس - توسعه دهنده زیر ساخت ابری - مدرس
طراحی سیستم ماژولار با لاراول
همانطور که میدانید کد های زیادی هست که تو هر پروژه داریم تکرار میکنیم و همچنین هر به روز رسانی که میکنیم مجبوریم برگردیم و تو همه پروژه های قبلی هم اعمالش کنیم ( برای مثال مشکلات امنیتی یا به روز رسانی api های شخص ثالث استفاده شده و ... ).
اما میتولنیم با یک سری از روش ها این سردرد ها رو کمتر کنیم. برای مثال میتوانیم کد هایی که زیاد استفاده میشه رو به صورت کتابخونه php دربیارم و جاهایی که میخواهیم استفاده کنیم. یه روش دیگه هم استفاده از سیستم های ماٰژولار هست. برای مثال اگه از لاراول استفاده میکنید. کتابخونه Laravel Modules میتونه بهتون کمک کنه که سیستم های مختلف رو به صورت ماژول های متصل ( یا کاملا جدا ) از هم طراحی کنید و در پروژه های مختلف استفاده کنید.
استفاده از پکیج Laravel Modules
برای شروع ابتدا پکیج لاراول ماژولز رو از لینک زیر نصب کنید:
composer require nwidart/laravel-modules
سپس میتوانید با دستور زیر فایل های کانفیگ ماژول رو منتشر کنید:
php artisan vendor:publish --provider="Nwidart\Modules\LaravelModulesServiceProvider"
اگه خواستید میتوانید تو فایل های کانفیگ تغییراتی که مد نظرتون هست اعمال کنید، اگه نه هم با دستور زیر سیستم رو اینیت کنید:
php artisan module:install
به صورت پیشفرض، فایل ها به صورت خودکار بارگذاری نخواهد شد، برای اینکار باید خط زیر رو به فایل کامپوزر اضافه کنید:
سپس دستور composer dump-autoload را اجرا کنید.
حالا میتوانید با استفاده از دستور زیر یک ماژول، برای مثال برای ذخیره نوت ها ایجاد کنید:
php artisan module:make note
ماژول ها در فولدر Modules ایجاد مشیوند که ساختار اینچنینی دارند:
ساختار آشنایی هست؟ بعله تقریبا کپی ساختار لاراول هست با کمی تغییرات، بیایین یک مدل نوت درست کنیم:
php artisan module:make-model NoteModel Note
این مدل در فولدر Entities ساخته میشود.
و یه روت تعریف کنیم براش، برای اینکار فایل api.php رو توی مسیر زیر باز میکنیم:
Modules/Note/Routes
و روت پست رو بهش اضافه میکنیم.
و در فایل مایگریشن و پراپرتی fillable مدل، دو تا فیلد مورد نظر رو اضافه کرده و توسط لاراول آرتیسان مایگریشن رو اجرا میکنیم:
php artisan migrate
به همین راحتی. البته خب میتونید روت رو به کنترلر وصل کنید. کنترلر های مدل در فولدر زیر قابل دسترس هستند:
Modules/Note/Http/Controllers
دقت کنید ماژول هایی که میسازید. توسط فایل جیسانی که در مسیر زیر هست فراخونی میشوند:
/modules_statuses.json
و میتوانید هر ماژولی که خواستید رو به راحتی آن یوز کنید. یا اینکه از دستور زیر استفاده کنید:
php artisan module:unuse module_name
برای فعال کردن مجدد ماژول :
php artisan module:use module_name
همچنین با دستور زیر میتوانید لیست ماژول های سیستم رو ببینید :
php artisan module:list
برای سید کردن هم میتونید از دستور زیر استفاده کنید :
php artisan module:seed module_name
و برای ساختن سیدر هم :
php artisan module:make-seed seeder_name module_name
بقیه کامند هارو هم میتوانید اینجا ببیند.
بعد ساخت هر ماژول، میتوانید ماژول رو به گیت اختصاصی خودش پوش کنید و هرجای دیگه ای که خواستید استفاده کنید. دقت کنید تا جای امکان ماژول باید به هیچ ماژول دیگه ای/و یا تغییرات اجرا شده در لاراول متصل نباشد.
بخشی از مقاله ترجمه شده مستقیم است از داک ماژول
مطلبی دیگر از این انتشارات
بررسی ولید بودن json در php
مطلبی دیگر از این انتشارات
دلایل نارضایتی مصاحبه شوندگان در اکوسیستم استارتاپی !
مطلبی دیگر از این انتشارات
تایید اصالت کد ملی در لاراول