停止在 PHP 中依賴全域:擁抱依賴注入以獲得更簡潔的程式碼
為什麼應該避免使用全域?
全域變數在函數和全域範圍之間建立隱藏的依賴關係,使您的程式碼緊密耦合且難以維護。依賴注入提供了一種更好的方法,透過明確傳遞所需資料作為參數。
依賴注入範例
不要使用全域來存取function.php 中的配置,而是注入它作為參數進入函數:
function conversion($Exec, $Param = array(), $Log = '') { // Inject the configuration data as $config $config = $this->getConfig(); $cmd = $config['phppath'] . ' ' . $config['base_path'] . '/' . $Exec; // ... (rest of the function) }
實現ConfigManager資料庫驅動的配置
要從資料庫載入配置,請建立一個ConfigManager 類別:
class ConfigManager { public function loadConfigurationFromDatabase(Database $db) { $result = $db->query('SELECT ...'); $config = array(); while ($row = $result->fetchRow()) { $config[$row['name']] = $row['value']; } return $config; } }
合併其他變數和相依性
使用依賴注入將任何附加變數或相依性(例如$db、$language等等)傳遞到函數和類別中,如下所示
依賴注入的好處
以上是為什麼要放棄 PHP 中的全域變數並採用依賴注入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!