استفاده از اینترفیس‌ها در PHP

php interfaces tutorial
20 آبان 1403

تو دنیای برنامه‌نویسی، یکی از مفاهیمی که شاید کمتر به گوشمون خورده باشه، اینترفیس‌ها (Interfaces) هستن. اینترفیس‌ها به ما کمک می‌کنن که یک قرارداد مشترک بین کلاس‌ها تعریف کنیم بدون اینکه جزئیات پیاده‌سازی رو مشخص کنیم. به زبون ساده، اینترفیس تعیین می‌کنه که چه متدهایی باید درون کلاس وجود داشته باشن.

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

مثلا فرض کنید یک فروشگاه اینترنتی داریم با چندین نوع حساب کاربری مثل مشتری، مدیر و تامین کننده. هر کدوم ممکنه متدهای خاص خودشون رو داشته باشن اما همه باید یک متد مشترک برای خرید داشته باشن. اینجا می‌تونیم از یک اینترفیس برای تعریف اون متد استفاده کنیم.

به کمک اینترفیس‌ها، می‌تونیم اطمینان حاصل کنیم که تمامی کلاس‌های ما به شکل یکسانی نقاط مشترک خود رو پیاده‌سازی می‌کنن. این موضوع به شدت به ما در مدیریت و نگهداری کدها کمک می‌کنه و باعث می‌شه که از اشتباهات ناشی از عدم پیاده‌سازی صحیح جلوگیری بشه.

مثالی از کد در PHP


interface Buyable {
public function buy();
}

class Customer implements Buyable {
public function buy() {
echo "Customer is buying something";
}
}

class Admin implements Buyable {
public function buy() {
echo "Admin can manage the purchases";
}
}

توضیح خط به خط کد

interface Buyable: اینجا داریم یک اینترفیس به نام Buyable تعریف می‌کنیم که فقط یک متد buy رو تعیین می‌کنه.

public function buy(): اینجا متدی تعریف شده که تمامی کلاس‌هایی که این اینترفیس رو پیاده‌سازی می‌کنن باید داشته باشن.

class Customer implements Buyable: کلاس Customer اینترفیس Buyable رو پیاده‌سازی کرده و الزاماً باید متد buy رو پیاده‌سازی کنه.

class Admin implements Buyable: کلاس Admin هم مشابه کلاس قبلی باید متد buy رو پیاده‌سازی کنه اما به شکل خودش.

سوالات متداول

؟

اینترفیس در PHP چیست؟

؟

چرا باید از اینترفیس استفاده کنیم؟

؟

آیا اینترفیس در PHP می‌تواند شامل خصوصیات (properties) باشد؟