我可以对所有依赖项使用依赖关系注入吗?


Can I use Dependency Injection for All Dependencies?

我所有的PHP都是对象命令,我想对所有依赖项使用依赖注入(即需要其他类才能工作的类)。 可以吗?

我想我发布了很多信息才能阅读......但是,如果您想要具体信息,请点击此处。

此外,如果这不会使问题过于复杂,我可以将工厂模式用于所有依赖项注入吗? - 具体内容在上面的链接中。

嗯,是的。

依赖注入的全部要点是抽象,为函数/方法/对象/类提供它需要的东西,并让它在内部解决。用于生成要传递给 DI 的对象和变量的工厂很好。

例如:

public function pdo_select(PDO $pdo_connection, $table, $where_condition)

在这里,我们传入我们需要的一切,连接对象,表名和WHERE MySQL子句。我们可以通过执行以下操作来进一步抽象此函数:

public function pdo_query(PDO $pdo_connection, $query)

现在,我们不再将函数限制为仅选择,我们可以执行各种查询。

但是您会看到,您绝对可以将对象传递给不同的函数来使用。

传递对象还为您提供了类型提示的良好触感,如果输入不同类型的参数,则会引发错误,从而帮助您进行调试。