我有一个在多个地方使用的PHP函数(称为funcA),所以我将funcA(和一些相关的函数)放在一个单独的文件中,该文件在其他PHP中为require
d文件。 funcA对已经打开并由调用它的代码使用的数据库进行了大量查询。这些查询是通过MDB2对象完成的。从函数内部进行SQL调用
现在,在调用funcA的地方,调用例程将一个已经连接的MDB2对象指针传递给它。这工作正常。
我想知道的是,如果最好通过不传递MDB2object指针来创建funcA完全自包含,而是使用funcA require
MDB2并使用其自己的mdb2对象连接到数据库。这是更多的内存,更多的CPU周期和更多的网络流量,但这是一个更好的做法吗?
依赖注入也是一个很好的解决方案,但从OP的问题我假设他没有遵循任何OOP做法? – ChrisR
@ChrisR:你说得对。在这种情况下没有OOP,但依赖注入的概念(通过像parms这样简单的事情)甚至适用于OOP之外。 –
@JonathanM:绝对真实,你也应该努力做到这一点。唯一的问题是,在非OOP上下文依赖注入中的imo更难以追踪注册表或单身人士:)但是我很高兴你在正确的道路上,因为对我来说他们中的任何一个都是:) – ChrisR