วิธีการนามธรรมของ Traits ใน OOP ใน PHP
ใน Traits สามารถประกาศบางวิธีเป็น นามธรรมได้ ในกรณีนี้ คลาสที่ใช้ Trait นี้ จะต้องทำการนำวิธีดังกล่าว ไปใช้ วิธีการนามธรรมของ Trait ไม่สามารถเป็นแบบส่วนตัวได้
ลองดูตัวอย่าง สมมติว่าเรามี Trait ดังต่อไปนี้:
<?php
trait TestTrait
{
public function method1()
{
return 1;
}
abstract public function method2();
}
?>
สมมติว่า Trait ของเราใช้งานโดยคลาส Test
การมีวิธีการนามธรรมใน Trait จะบังคับให้
โปรแกรมเมอร์ต้องนำไปใช้ในคลาส มิฉะนั้น
จะเกิดข้อผิดพลาด PHP
มาสร้างคลาส Test พร้อมกับ
วิธี method2 กัน:
<?php
class Test
{
use TestTrait; // ใช้ Trait
// นำวิธีการนามธรรมไปใช้:
public function method2()
{
return 2;
}
}
new Test;
?>
คัดลอกโค้ด Trait ของฉัน TestTrait
และโค้ดคลาสของฉัน Test ลบ
วิธี method2 ออกจาก
คลาส ตรวจสอบให้แน่ใจว่า
การไม่มีวิธีนี้นำไปใช้จะทำให้เกิด
ข้อผิดพลาด PHP