یک دانشجوی رشته نرم افزار و توسعه دهنده وب که علاقه مند به چالش و یادگیریه
برنامه نویسی ماژولار در لاراول با پکیج laravel-modules
اگه هنوز به صورت رویه ای برنامه نویسی انجام میدید پیشنهاد میکنم این مقاله رو از دست ندید.
اول از همه ببینیم برنامه نویسی رویه ای به چه مدلی میگن،خب اگه شما با ساختار پیشفرض لاراول جلو میرید یعنی همه مدل هاتون داخل فولدر app هستش و مثلا همه کنترل هاتون توی آدرس app/Http/Controllers هستش و مابقی موارد مثل ماگرشن ها و .... هم سرجاهای پیشفرض خودشون هستش باید عرض کنم خدمتتون که مدل برنامه نویسی شما رویه ای هستش.اما خب شاید براتون سوال پیش بیاد که مشکل چیه؟
خب اگه خیلی ساده بخام بگم فرض کنید پروژه بزرگ شده و هر بخش از پروژه ۳و۴ تا مدل و ماگرشن داره.بعد شما وقتی وارد پوشه app میشید با یه عالمه مدل مواجعه میشید و مجبورید کلی اسکرول کنید و دنبال فایل موردنطرتون باشید.یا فرض کنید یه بخش مثلا مدیریت کاربران(لیست،حذف و اضافه و ...) طراحی کردید بعد توی یک پروژه دیگه یک بخش دقیقا مشابه به همین بخش رو دارید،بله میتونید کدهاتون رو کپی پیست کنید اما زمانبر هستش و اگه شما ماژولار نوشته بودید پروژتون رو خیلی ساده پوشه ماژول رو انتقال میداد و اسم ماژول رو اضافه میکردید به لیست ماژول ها تا لود شه همین:) باهام همراه باشید تا از این به بعد ماژولار بنویسیم
نصب پکیج laravel-modules
یه پکیج فوق العاده برای این کار وجود داره که کارتون رو خیلی ساده میکنه،برای نصب کافیه دستور زیر رو داخل ترمینال وارد کنید:
composer require nwidart/laravel-modules
خب حالا با دستور زیر فایل کانفیگ اون رو از داخل فولدر vendor استخراج میکنیم:
php artisan vendor:publish --provider="Nwidart\Modules\LaravelModulesServiceProvider"
خب حالا باید وارد فایل composer.json بشید و توی بخش autoloading،پکیج رو رجیستر کنید.به این شکل:
{
"autoload": {
"psr-4": {
"App\\": "app/",
"Modules\\": "Modules/"
}
}
}
خب حالا با دستور زیر فایل کانفیگ اون رو از داخل فولدر 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 اضافه میشه که مقدار بولین داره که مشخص میکنه ماژول شما فعال هست یا خیر.
ساختار ماژولی که ایجاد میشه به این شکله:
همینطور که از اسامی فولدر ها مشخص هست ما برای هرماژول یه ساختار مشابه با همون ساختار لاراولی خودمون داریم با این تفاوت که وقتی به این سبک کدنویسی انجام میدیم ماژولار هستش و زمانی که برای مثال قصد داریم یه سری تغییرات توی بخش User انجام بدیم میدونیم که همه فایل های مرتبط به User داخل این فولدر هستش و دیگه نیازی نیست دنبال اونها بگردیم.
توی همه بخش ها یک فایل مثال وجود داره که کمک میکنه با ساختار ماژولار آشنا شید.
اما اگر نیاز داشتید به ماژول خودتون چیزی اضافه کنید،مثل یک مدل،یک کنترلر جدید یا یک ماگرشن جدید و ...
کافیه دستور زیر رو بزنید تا لیست دستورات و فایل هایی که میتونید ایجاد کنید رو براتون لیست کنه:
php artisan module
برای مثال برای ایجاد یک مدل برای ماژول یوزر کافیه این دستور رو بزنیم :
php artisan module:make-model User User
توی دستور بالا User اول اسم مدل ما هستش و User دوم هم مشخص میکنه که این مدل مربوط به کدوم ماژول هستش،مابقی دستورات هم مشابه همین مورد هستند.اما خوب میتونید به داکیومنشن مراجعه کنید و اطلاعات بیشتری درباره این ماژول بدست بیارید
مرسی که وقت ارزشمندتون رو به مطالعه این مقاله اختصاص دادید :)
سوالی داشتید توی کامنت ها بپرسید
مطلبی دیگر از این انتشارات
تعریف helper function های اختصاصی در لاراول
مطلبی دیگر از این انتشارات
انتشار 400مین نسخه لاراول 5.8.12
مطلبی دیگر از این انتشارات
لاراول ، لاگ ریکوئست ها