การฉีดการพึ่งพาเป็นขั้นตอนที่วัตถุหนึ่งให้การพึ่งพาของวัตถุอื่น Dependency Injection เป็นแนวทางการออกแบบซอฟต์แวร์ที่ช่วยให้หลีกเลี่ยงการขึ้นต่อกันแบบฮาร์ดโค้ด และทำให้สามารถเปลี่ยนการขึ้นต่อกันทั้งที่รันไทม์และเวลาคอมไพล์ได้
มีหลายวิธีในการฉีดวัตถุ ซึ่งโดยทั่วไปรู้จักกันดีอยู่แล้ว –
คอนสตรัคเตอร์ฉีด
ในแนวทางนี้ เราสามารถฉีดวัตถุผ่านตัวสร้างคลาสได้
ตัวอย่าง
<?php
class Programmer {
private $skills;
public function __construct($skills){
$this->skills = $skills;
}
public function totalSkills(){
return count($this->skills);
}
}
$createskills = array("PHP", "JQUERY", "AJAX");
$p = new Programmer($createskills);
echo $p->totalSkills();
?> ผลลัพธ์
3
เซ็ตเตอร์ฉีด
ที่คุณฉีดวัตถุไปยังชั้นเรียนของคุณผ่านฟังก์ชัน setter
ตัวอย่าง
<?php
class Profile {
private $language;
public function setLanguage($language){
$this->language = $language;
}
}
$profile = new Profile();
$language = array["Hindi","English","French"];
$profile->setLanguage($language);
?> ประโยชน์ของการพึ่งพาการฉีด
- การเพิ่มการพึ่งพาใหม่ทำได้ง่ายเหมือนกับการเพิ่มเมธอด setter ใหม่ ซึ่งไม่รบกวนโค้ดที่มีอยู่