تِرِیت ها (Traits)
تِرِیت (Trait) یعنی بسته رفتار قابل استفاده دوباره. PHP فقط «وراثت تکی» دارد. بنابراین، تِرِیت کمک می کند رفتارها را بین کلاس ها پخش کنیم. تمرکز ما «تِرِیت در PHP» است.
تِرِیت چیست و چگونه تعریف می شود؟
با کلمه trait یک مجموعه متد می سازیم. سپس کلاس ها آن را استفاده می کنند.
<?php
trait TraitName {
// some code...
}
?>
نکته: تِرِیت می تواند متد عمومی، خصوصی، یا محافظت شده داشته باشد.
استفاده از تِرِیت در کلاس
برای اضافه کردن تِرِیت به کلاس، از کلمه use داخل کلاس استفاده کن.
<?php
class MyClass {
use TraitName;
}
?>
نمونه ساده تِرِیت
این مثال یک پیام را از تِرِیت در کلاس چاپ می کند.
<?php
trait message1 {
public function msg1() {
echo "OOP is fun! ";
}
}
class Welcome {
use message1;
}
$obj = new Welcome();
$obj->msg1();
?>
هشدار: اگر دو تِرِیت متدی همنام داشته باشند، باید تعارض را مدیریت کنی.
استفاده از چند تِرِیت همزمان
می توانی چند تِرِیت را با کاما اضافه کنی. این کار کد تکراری را کم می کند.
<?php
trait message1 {
public function msg1() {
echo "OOP is fun! ";
}
}
trait message2 {
public function msg2() {
echo "OOP reduces code duplication!";
}
}
class Welcome {
use message1;
}
class Welcome2 {
use message1, message2;
}
$obj = new Welcome();
$obj->msg1();
echo "<br>";
$obj2 = new Welcome2();
$obj2->msg1();
$obj2->msg2();
?>
گام های عملی
- یک تِرِیت با یک متد بساز.
- دو کلاس بساز و تِرِیت را use کن.
- برای هر کلاس، متد تِرِیت را صدا بزن.
برای ادامه، صفحه اینترفیس ها را ببین. همچنین «تِرِیت در PHP» کنار متدهای استاتیک کاربردی است.
جمع بندی سریع
- PHP فقط وراثت تکی دارد.
- تِرِیت، رفتار مشترک را بازاستفاده می کند.
- می توانی چند تِرِیت را باهم use کنی.
- درباره تعارض نام متدها دقت کن.