راهنمایی درباره یک کلاس

پرسیده شده
فعالیت 1346 روز پیش
دیده شده 520 بار
0

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

فایل پیوست

ابراهیم محمدی
ابراهیم محمدی

2 شهریور 99

2
حذف شده

اول از همه interfaceهایی رو تعریف کن که می‌تونه متدهاش توی کلاس‌های دیگه استفاده بشه. بزا برات مثال بزنم.

طبق قوانین SOLID ما هر interface رو جوری تعریف می‌کنیم که فقط یک وظیفه داشته باشه.

یک interface تعریف کن که توش یک متد به اسم send داشته باشه که این متد رو میای تو کلاس فرزند توسعش میدی تا بتونی باهاش مثلا مقالتو توی دیتابیس ثبت کنی.

همین طور ادامه و فکر کن ببین چه متدهایی توی کلاس هایی که قرار همچین کاری رو بکنن مشترکه، مثلا برای ارسال مقالات یا همین کلاسی که اسمشو post گذاشتی متدهای send - show - delete - update و ... رو داره. پس بیا این متد هارو به inteface تعریف کن و اینا به عنوان یک قانون برای کلاسات قرار بده، که هر کلاسی که خواست همچین وظیفه ای رو داشته باشه باید این متدها رو توی خودش داشته باشه.

 

intefaceهات به شکل زیر باشن

interface send{
    protected function send();
}

interface update{
    protected function update();
}

interface delete{
    protected function delete();
}

interface show{
    protected function show();
}

// and more ...

 

حالا باید یک abstract کلی تعریف کنی که همه این متدهای interface رو توی خودش implement کرده تا توی بتونی راحت این کلاس abstract روی توی کلاس هایی مثل کلاس post خودت extends کنی و از همه ی متدهای implement کردش استفاده کنی

abstract class Controller implements send, update, delete, show
{
    // your custom properties or methods
}

حالا این کلاس Controller که اینجا تعریف کردیم میشه پدر تمامی کلاس هایی که میخوان کار مثلا وبلاگ رو انجام بدن، اینم بگم که الان این کلاس حاوی همه interface هایی که ما تعریف کردیم و هر کسی که کلاس Controller رو extends کنه به صورت اجبار باید متدها intrface ها رو هم توی کلاس خودش توسعه بده

class Post extends Controller
{

    public function send()
    {
        // implementation area
    }

    public function show()
    {
         // implementation area
    }

    public function delete()
    {
         // implementation area
    }

    public function update()
    {
         // implementation area
    }

}

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

 

این کانال youtube منه DevelopWithAmir دارم یه آموزش ضبط میکنم با همین موضوع که یه وبلاگ رو PHP OOP بزنیم، اگه دوست داشتی یه سر بزن جلسات جدید رو هم ضبط میکنم و قرار میدم 

فایل پیوست

امیر صالحی

توسط

امیر صالحی

3 شهریور 99

0
حذف شده

سلام و احترام

ابراهیم جان اگه امکانش هست بیشتر توضیح بده تا بتونم بهتر کمکت کنم.

یه جورایی میخوای کلاسی بنویسی که بتونی باهاش محتوا رو ثبت کنی و توی سایت به نمایش بزاری درسته؟

فایل پیوست

امیر صالحی

توسط

امیر صالحی

2 شهریور 99

0
حذف شده

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

فایل پیوست

ابراهیم محمدی

توسط

ابراهیم محمدی

3 شهریور 99