برنامه نویسی ماژولار در لاراول با پکیج laravel-modules

برنامه نویسی ماژولار در لاراول با پکیج laravel-modules
برنامه نویسی ماژولار در لاراول با پکیج laravel-modules

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

اول از همه ببینیم برنامه نویسی رویه ای به چه مدلی میگن،خب اگه شما با ساختار پیشفرض لاراول جلو میرید یعنی همه مدل هاتون داخل فولدر app هستش و مثلا همه کنترل هاتون توی آدرس app/Http/Controllers هستش و مابقی موارد مثل ماگرشن ها و .... هم سرجاهای پیشفرض خودشون هستش باید عرض کنم خدمتتون که مدل برنامه نویسی شما رویه ای هستش.اما خب شاید براتون سوال پیش بیاد که مشکل چیه؟

خب اگه خیلی ساده بخام بگم فرض کنید پروژه بزرگ شده و هر بخش از پروژه ۳و۴ تا مدل و ماگرشن داره.بعد شما وقتی وارد پوشه app میشید با یه عالمه مدل مواجعه میشید و مجبورید کلی اسکرول کنید و دنبال فایل موردنطرتون باشید.یا فرض کنید یه بخش مثلا مدیریت کاربران(لیست،حذف و اضافه و ...) طراحی کردید بعد توی یک پروژه دیگه یک بخش دقیقا مشابه به همین بخش رو دارید،بله میتونید کدهاتون رو کپی پیست کنید اما زمانبر هستش و اگه شما ماژولار نوشته بودید پروژتون رو خیلی ساده پوشه ماژول رو انتقال میداد و اسم ماژول رو اضافه میکردید به لیست ماژول ها تا لود شه همین:) باهام همراه باشید تا از این به بعد ماژولار بنویسیم

نصب پکیج laravel-modules

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

composer require nwidart/laravel-modules

خب حالا با دستور زیر فایل کانفیگ اون رو از داخل فولدر vendor استخراج میکنیم:

php artisan vendor:publish --provider=&quotNwidart\Modules\LaravelModulesServiceProvider&quot

خب حالا باید وارد فایل composer.json بشید و توی بخش autoloading،پکیج رو رجیستر کنید.به این شکل:

{   
&quotautoload&quot: { 
    &quotpsr-4&quot: {      
                &quotApp\\&quot: &quotapp/&quot,      
                 &quotModules\\&quot: &quotModules/&quot  
           }
    } 
}

خب حالا با دستور زیر فایل کانفیگ اون رو از داخل فولدر vendor استخراج میکنیم:

خب با موفقیت نصب شد:)

ساخت ماژول جدید با laravel-modules

برای ساخت یک ماژول جدید کافیه دستور زیر رو درون ترمینال وارد کنید و به جای <module-name>اسم ماژول خودتون رو به صورت lowercase بنویسید:

php artisan module:make <module-name>

مثلا یک ماژول User میخایم ایجاد کنیم:

php artisan module:make User

بعد از اجرای دستور بالا یک فولدر به بخش اصلی پروژه به اسم Modules اضافه میشه و یه فایل به اسم modules_statuses.json.ماژول هایی که ایجاد میکنید محتویات اون درون پوشه Modules میرن و یه لاین هم درون modules_statuses.json اضافه میشه که مقدار بولین داره که مشخص میکنه ماژول شما فعال هست یا خیر.

ساختار ماژولی که ایجاد میشه به این شکله:

ساخت ماژول جدید با laravel-modules
ساخت ماژول جدید با laravel-modules

همینطور که از اسامی فولدر ها مشخص هست ما برای هرماژول یه ساختار مشابه با همون ساختار لاراولی خودمون داریم با این تفاوت که وقتی به این سبک کدنویسی انجام میدیم ماژولار هستش و زمانی که برای مثال قصد داریم یه سری تغییرات توی بخش User انجام بدیم میدونیم که همه فایل های مرتبط به User داخل این فولدر هستش و دیگه نیازی نیست دنبال اونها بگردیم.

توی همه بخش ها یک فایل مثال وجود داره که کمک میکنه با ساختار ماژولار آشنا شید.

اما اگر نیاز داشتید به ماژول خودتون چیزی اضافه کنید،مثل یک مدل،یک کنترلر جدید یا یک ماگرشن جدید و ...

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

php artisan module

برای مثال برای ایجاد یک مدل برای ماژول یوزر کافیه این دستور رو بزنیم :

php artisan module:make-model User User

توی دستور بالا User اول اسم مدل ما هستش و User دوم هم مشخص میکنه که این مدل مربوط به کدوم ماژول هستش،مابقی دستورات هم مشابه همین مورد هستند.اما خوب میتونید به داکیومنشن مراجعه کنید و اطلاعات بیشتری درباره این ماژول بدست بیارید

مرسی که وقت ارزشمندتون رو به مطالعه این مقاله اختصاص دادید :)

سوالی داشتید توی کامنت ها بپرسید