💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ ابراهیم محمدی
در مورد کلیت کلاس
جامعه پی اچ پی ایجاد شده در ۲۹ آبان ۱۳۹۹

سلام وقت بخیر استاد من به یه مشگلی خوردم اون هم این کنمدیونم کلاس‌ها رو کجا و چه جوری باید تعریف کنم مثلا شما گفتید در مدل سینگلتون برای هر کلاس یه وظیفه باید در نظر گرفت اما در بعضی کلاس‌ها چندین متد تعریف میشه که هر کدوم یه کاری میکنن یکم برام مشگل درس شده الان که میخوام یک سایت رو با OOP بنویسم نمیدونم چطوری باید کلاس‌ها رو بنویسم مثلا الان میخوام در سایت خودم یک سبد خرید داشته باشم باید یک کلاس basket داشته باشم و تمام متد‌ها داخل اون باشه و یا جای که داره همین سبد خرید ثبت میشه داخل دیتا بیس متد ثبت داخل همین کلاس باشه و یانه اون رو باید توی کلاس ارتباط با پایگاه داده بنویسم ممنون میشم راهنمایی کنید

 

الان یک سایت رو نوشتم و اپلود کردم روی سرور حالا میخوام همین رو OOP کنم نمیدونم توابعی که نوشتم رو چطور کلاس بندی کنم

ابراهیم محمدی ۲۹ آبان ۱۳۹۹، ۱۱:۲۸

سلام 

در ابتدای سوالت اشاره کردی به singltone ببین سینگلتون نمیگه کلاس باید یک وظیفه داشته باشه سینگلتون یکی از دیزاین پترن هاست که برای زمانی از این دیزاین پترن استفاده میکنیم که بخوایم تنها یک نمونه از کلاس ساخته شه و از همون نمونه استفاده کنیم! اما خوب منظور شما اصل تک وظیفگی هستش که این یعنی مثلا کلاسی دارید وظیفه اتصال به درگاه پرداخت رو داره خوب شما اگر بیاین و علاوه بر وظیفه اتصال به درگاه پرداخت به فرض وظیفه ساخت سبد خرید رو هم به این کلاس واگذار کنید این اصل تک وظیفگی کلاس رو نقض میکنه. اما این کلاس میتونه چندین متد داشته باشه که کارشون فقط اینه اتصال به درگاه رو هندل کنند نه کار دیگه ای!

این که چطور کلاس‌ها رو استفاده کنید اشاره کردید به سبد خرید شما یک کلاس با نام basket دارید وظیفش اینه توی سبد خرید اضافه کنه حذف کنه اپدیت کنه خوب این باز یک وظیفس وظیفش کار‌های مربوط به سبد خرید 

برای پروژت توابعت رو نگاه کن ببین کدوم یکی چه وظیفه ای رو بر عهده داره و همچنین ارتباطشون به هم چطوریه اون هایی که یک وظیفه به عهدشون رو یک کلاس تعریف کن به جا تابع متود تعریف کن واسشون 

به همین صورت میتونید پیش ببرین 

 

میثم ۲۹ آبان ۱۳۹۹، ۱۴:۴۴

من جوابم رو نگرفتم من در مورد استفاده کردن از کلاس‌ها پرسیدم مثلا من وقتی یک کاربر ثبت نام میکنه تابع زدم که اطلاعات رو میبره توی دیتابیس حالا یک تابعی هم هست که این کاربر رو لاگین میکنه و همچنین این کاربر با یک تابع توسط ایمیل گرفته میشه و سشن ست میشه برای ورودش حالا این‌ها همه توی یک کلاس نوششته میشه؟؟؟؟

 

ابراهیم محمدی ۳۰ آبان ۱۳۹۹، ۱۲:۵۰

سلام دوست عزیز من یه پروژه دانشجویی برای یه نفر نوشتم که توی گیت هاب گذاشتم شاید حرفه ای نباشه ولی ممکنه جواب سوالتو بده

https://github.com/m-mohammad-developer/online-shop/

البته یه پروژه cms هم داره ساختارشون مشابه هم هست

محل اصلی و شروع پروژه هم

/admin/includes/classes/

تعریف کلاس‌ها هم مسیرش اینطوریه

/admin/includes/classes/

 

محمد محمدی ۲۶ بهمن ۱۳۹۹، ۱۱:۲۶