5
如何在简单的php函数中使用“依赖注入”,我应该打扰吗?
我一直听到人们在谈论依赖注入及其带来的好处,但是我并不真正了解它。 我想知道这是否是“我一直将数据库连接作为参数传递”的解决方案。 我尝试阅读有关Wikipedia的条目,但是该示例是用Java编写的,因此我不太了解它试图阐明的区别。(http://en.wikipedia.org/wiki/Dependency_injection)。 我读了这篇php-dependency-injection-in文章(http://www.potstuck.com/2009/01/08/php-dependency-injection/),看来目标是不将依赖项传递给对象直接,但要封锁对象的创建及其依赖项的创建。我不确定如何在使用php函数的上下文中应用它。 此外,是否存在以下依赖关系注入,是否应该在功能上下文中尝试进行依赖关系注入? 版本1 :(我每天创建但不喜欢的那种代码) function get_data_from_database($database_connection){ $data = $database_connection->query('blah'); return $data; } 版本2 :(不必通过数据库连接,但也许不必进行依赖注入?) function get_database_connection(){ static $db_connection; if($db_connection){ return $db_connection; } else { // create db_connection ... } } function get_data_from_database(){ $conn = get_database_connection(); $data = $conn->query('blah'); return $data; } $data = get_data_from_database(); 版本3 :(“对象” /数据的创建是分开的,并且数据库代码仍然是,所以也许可以算作依赖注入?) …