Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Dependency Injection (Tiêm phụ thuộc) trong PHP

Dependency Injection là kỹ thuật một đối tượng cung cấp phụ thuộc cho đối tượng khác. Đây là mẫu thiết kế phần mềm tránh hard-code phụ thuộc, cho phép thay đổi phụ thuộc tại runtime và compile time.

Các cách tiêm phổ biến

Constructor Injection

Tiêm qua constructor của lớp.

<?php
class Programmer {
    private $skills;
    public function __construct($skills) {
        $this->skills = $skills;
    }
    public function totalSkills() {
        return count($this->skills);
    }
}
$skills = ["PHP", "JQUERY", "AJAX"];
$p = new Programmer($skills);
echo $p->totalSkills(); // 3
?>

Setter Injection

Tiêm qua phương thức setter.

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

Lợi ích

  • Thêm phụ thuộc mới dễ dàng bằng setter mới, không ảnh hưởng code cũ.
  • Dễ test (mock dependency).
  • Giảm coupling giữa các lớp.