如何實現 PHP 函數的依賴注入
簡介
依賴注入 (DI) 是一種設計模式,它允許我們根據需要將依賴項注入函數,而無需顯式創建它們。這使代碼更具模塊化和可測試性。
語法
在PHP中,我們可以使用匿名函數來實現函數的DI:
function doSomething(Closure $dependency) { // 使用 $dependency 作為依賴項 }
登錄后復制
實戰案例
假設我們有一個函數 sendEmail(),它需要一個 Mailer 依賴項。我們可以使用DI來注入這個依賴項:
use PHPMailer\PHPMailer\PHPMailer; function sendEmail(Closure $mailer) { $mailer = new PHPMailer(); // ... 發送郵件 ... }
登錄后復制
現在,我們可以像這樣使用 sendEmail() 函數,傳入 PHPMailer 實例:
sendEmail(function () { return new PHPMailer(); });
登錄后復制
結論
通過使用函數的依賴注入,我們可以提高代碼的可維護性和可測試性。這種技術對于復雜或依賴于多個外部依賴項的函數尤為有用。