Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

Dependency Injection ใน PHP คืออะไร?


Dependency Injection (DI) คือกระบวนการที่อ็อบเจกต์หนึ่งจัดหา dependencies (การพึ่งพา) ให้อ็อบเจกต์อีกตัวหนึ่ง Dependency Injection เป็นแนวทางออกแบบซอฟต์แวร์ที่ช่วยหลีกเลี่ยงการ hard-code dependencies และทำให้สามารถเปลี่ยน dependencies ได้ทั้งในขณะคอมไพล์และรันไทม์

มีหลายวิธีในการ inject อ็อบเจกต์ นี่คือวิธีที่นิยมใช้:

Constructor Injection

ในวิธีนี้ เราส่งอ็อบเจกต์ผ่าน Constructor ของคลาส

ตัวอย่าง

<?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 Injection

ส่งอ็อบเจกต์เข้าคลาสผ่านฟังก์ชัน Setter

ตัวอย่าง

<?php 
class Profile { 
    private $language; 
    public function setLanguage($language){ 
        $this->language = $language; 
    } 
} 
$profile = new Profile(); 
$language = array("Hindi","English","French"); 
$profile->setLanguage($language); 
?>

ประโยชน์ของ Dependency Injection

  • การเพิ่ม dependency ใหม่ง่ายเพียงแค่เพิ่ม setter method ใหม่ ซึ่งไม่รบกวนโค้ดเดิม