سلام وقت بخیر استاد من به یه مشگلی خوردم اون هم این کنمدیونم کلاس ها رو کجا و چه جوری باید تعریف کنم مثلا شما گفتید در مدل سینگلتون برای هر کلاس یه وظیفه باید در نظر گرفت اما در بعضی کلاس ها چندین متد تعریف میشه که هر کدوم یه کاری میکنن یکم برام مشگل درس شده الان که میخوام یک سایت رو با OOP بنویسم نمیدونم چطوری باید کلاس ها رو بنویسم مثلا الان میخوام در سایت خودم یک سبد خرید داشته باشم باید یک کلاس basket داشته باشم و تمام متد ها داخل اون باشه و یا جای که داره همین سبد خرید ثبت میشه داخل دیتا بیس متد ثبت داخل همین کلاس باشه و یانه اون رو باید توی کلاس ارتباط با پایگاه داده بنویسم ممنون میشم راهنمایی کنید
الان یک سایت رو نوشتم و اپلود کردم روی سرور حالا میخوام همین رو OOP کنم نمیدونم توابعی که نوشتم رو چطور کلاس بندی کنم
سلام
در ابتدای سوالت اشاره کردی به singltone ببین سینگلتون نمیگه کلاس باید یک وظیفه داشته باشه سینگلتون یکی از دیزاین پترن هاست که برای زمانی از این دیزاین پترن استفاده میکنیم که بخوایم تنها یک نمونه از کلاس ساخته شه و از همون نمونه استفاده کنیم! اما خوب منظور شما اصل تک وظیفگی هستش که این یعنی مثلا کلاسی دارید وظیفه اتصال به درگاه پرداخت رو داره خوب شما اگر بیاین و علاوه بر وظیفه اتصال به درگاه پرداخت به فرض وظیفه ساخت سبد خرید رو هم به این کلاس واگذار کنید این اصل تک وظیفگی کلاس رو نقض میکنه. اما این کلاس میتونه چندین متد داشته باشه که کارشون فقط اینه اتصال به درگاه رو هندل کنند نه کار دیگه ای!
این که چطور کلاس ها رو استفاده کنید اشاره کردید به سبد خرید شما یک کلاس با نام basket دارید وظیفش اینه توی سبد خرید اضافه کنه حذف کنه اپدیت کنه خوب این باز یک وظیفس وظیفش کار های مربوط به سبد خرید
برای پروژت توابعت رو نگاه کن ببین کدوم یکی چه وظیفه ای رو بر عهده داره و همچنین ارتباطشون به هم چطوریه اون هایی که یک وظیفه به عهدشون رو یک کلاس تعریف کن به جا تابع متود تعریف کن واسشون
به همین صورت میتونید پیش ببرین
من جوابم رو نگرفتم من در مورد استفاده کردن از کلاس ها پرسیدم مثلا من وقتی یک کاربر ثبت نام میکنه تابع زدم که اطلاعات رو میبره توی دیتابیس حالا یک تابعی هم هست که این کاربر رو لاگین میکنه و همچنین این کاربر با یک تابع توسط ایمیل گرفته میشه و سشن ست میشه برای ورودش حالا این ها همه توی یک کلاس نوششته میشه؟؟؟؟
سلام دوست عزیز من یه پروژه دانشجویی برای یه نفر نوشتم که توی گیت هاب گذاشتم شاید حرفه ای نباشه ولی ممکنه جواب سوالتو بده
https://github.com/m-mohammad-developer/online-shop/
البته یه پروژه cms هم داره ساختارشون مشابه هم هست
محل اصلی و شروع پروژه هم
/admin/includes/classes/
تعریف کلاس ها هم مسیرش اینطوریه
/admin/includes/classes/