停止在 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中文网其他相关文章!