رابط (interface)
«رابط (Interface)» در PHP فقط «فهرست متدها» را مشخص می کند. یعنی می گوید کلاس چه متدهایی باید داشته باشد. مثل قرارداد تیم که وظایف هر بازیکن را می نویسد.
تعریف و کاربرد رابط در PHP
کلمه کلیدی interface یک رابط می سازد. سپس کلاس ها با implements قول می دهند این متدها را داشته باشند. بنابراین کد یک دست و قابل تعویض می ماند.
نمونه کد: ساخت رابط و پیاده سازی آن
<?php
interface Machine {
public function activate();
public function deactivate();
public function isActive();
}
class Kettle implements Machine {
private $isOn = false;
public function activate() {
$this->isOn = true;
}
public function deactivate() {
$this->isOn = false;
}
public function isActive() {
return $this->isOn;
}
}
$machine = new Kettle();
$machine->activate();
if ($machine->isActive()) {
echo "The machine is on";
}
else {
echo "The machine is off";
}
echo "<br>";
$machine->deactivate();
if ($machine->isActive()) {
echo "The machine is on";
}
else {
echo "The machine is off";
}
?>
گام های عملی
- یک رابط با متدهای لازم تعریف کن.
- در کلاس از
implementsاستفاده کن. - تمام متدهای رابط را کامل پیاده سازی کن.
نکته: برای «پیاده سازی می کند (implements)» به صفحه implements برو. همچنین بررسی نوع با instanceof مفید است.
هشدار: بدنه متدها در رابط وجود ندارد؛ فقط امضاها هستند.
جمع بندی سریع
- رابط، لیست متدها را تعیین می کند.
- کلاس با implements متعهد می شود.
- کدها قابل تعویض می مانند.
- بدنه متد در interface نیست.