مصطفی جمالی
4 سال پیش توسط مصطفی جمالی مطرح شد
4 پاسخ

oop در laravel

سلام دوستان امیدوارم حالتون خوب باشه
سوال من درواقع اینه که خب بعد یادگیری لاراول سوالی که پیش میاد روش کد نویسی تو این محیطه خب مثلا ما درگذشته میومدم اشیا در نظرمیگرفتیم بعد براشون ویژگی و رفتار تعیین میکردیم و حالا بعد بر اساس دیزاین پترن ها بهینش میکردیم اما توی لاراول راستش من گیج شدم الان مثلا میخوایم کلاس کاربران با سه زیر کلاس مدیر کارمند مشتری داشته باشیم حالا اگه بخوایم اینارو به شکل OOP دربیاریم یکم آدم گیج میشه مثلا توی OOP معمولی خب یه کلاس تعریف میکردیم بعد زیرکلاس ها همراه با ویژگی و رفتارشون اما اینکار توی لاراول با وجود MVC و کلاس ها و ویژگی های خودش یکم گیجم کرده درواقع چطور بریم جلو یعنی بیایم به همون شکل کلاسارو تعریف کنیم بعد نمیدونم بریم با مایگریشنا پایگاه داده بسازیم بعد به همون شکل کلاس ها رو بهم ارتباط بدیم یا کار دیگه ای هست؟
ممنونم از توجهتون.


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
1

درود

سیستم احراز هویت لاراول این گونه سناریو ها رو پشتیبانی میکنه.
میتونی ۳ تا guard مختلف تعریف کنی برای ۳ نوع کاربرت.. به این ترتیب ۳ تا جدول جدا داری هر کدوم برای یک نوع کاربر که احراز هویتشون از هم جداست.. فایل config/auth.php رو چک کن

در مورد سوال بعد:
کمتر پیش میاد توی لاراول مایگریشن بسازیم و مدل رو نسازیم.. پس شما ۳ مدل مدیر کارمند مشتری رو میسازید و هر کدوم هم یه جدول دارند..


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
2

حالا هر کدوم از مدل ها یک کلاس هست که میتونه مشخصه ها و رفتارهای خودش رو داشته باشه.

در واقع لاراول به حدی به شئ گرایی اهمیت میده که برای هر کاری یک کلاس برای شما میسازه (مایگریشن ها، پالیسی ها، آبزرورها، فکتوری ها و غیره )‌ .. کلاس های کوچک تنها با یک مسئولیت (رعایت Single-Responsibility به بهترین شکل)


مصطفی جمالی
تخصص : برنامه نویس
@lordmostafajamali 4 سال پیش مطرح شد
0

سلام خیلی ممنونم بابت توجهت ،
اما خب یکم گیج شدم این همه کلاسه جدارو چطور با کلاس اصلی که درواقع مدل هام میشه مدیریت کنم و اینکه الان ما با مایگریشن یه جدول ساختیم برای کلاس دانشجو درست حالا ویژگی این دانشجوها باید ستون های جدولمون باشه حالا برای شروع من باس بیام کلاس مدلمو شامل همه ی ویژگی ها کنم بعد بیام مقادیرشون از دیتابیس بگیرم دوباره؟ بریزم تو شی از کلاس مدلم این دوباره کاریه یا من دارم اشتباه برداشت میکنم؟


محمد امیری
تخصص : backend coder
@mohammadeng3731 4 سال پیش مطرح شد
1

سلام.
شما باید به طور عمیق با mvc آشنا باشید بیشتر متوجه میشید و از این سردرگمی در میاید.این که میگید دوباره کاری اصلا ربطی نداره.کلاس مدل صرفا برای ارتباط بهینه بین پایگاه داده و کدهاتون هستش.برای تخصیص وظایف هر بخش باید اون وظایف(ویژگی ها) رو نه در مدل بلکه در کنترلر اختصاص بدید و از مدل برای پیاده سازی اون وظایف(ویژگی ها) کمک بگیرید.هر متد درون کنترلر هستش که وظیفه خاصی(صرفا یک وظیفه) رو پیاده میکنه نه درون مدل و هر کنترلر در سطح بالاتر یک وظیفه کلی تر رو بهش اختصاص میدیم و متدهای هر کنترلر در سطح پایینتر, هر کدوم رسالت خودشون رو برای اجرای اون وظیفه ای که به دوش کنترلر گذاشته شده ایفا میکنن و این متدهای هر کنترلر برای پیاده سازی زیر وظیفشون به مدل مربوطه(حالا هر مدلی بنا به نیاز اون وظیفه) رجوع کرده و اطلاعات رو واکشی و sanitize یا فیلتر کرده و در خروجی نمایش میدن.بهتره در مورد اصول mvc بیشتر مطالعه داشته باشید چون به نظر میاد مشکلتون درک درست از mvc هستش نه لاراول و امکاناتش.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام