1
1
克里斯有一个有效的建议。 它部分依赖于代码的上下文,但是依赖关系将存储库注入到您创建的数据映射器实例中,即:
以后,只要您想使用findall(),就不用再传递$repo了。IE:
我发现,当参数成为我正在进行的每个函数调用中普遍存在的一部分时,考虑将它们转换为实例变量是有意义的(尤其是当它们每次都相同时)。 如果您的存储库在上下文/实例之间有所不同,那么注入就更有意义了。如果您发现您总是在创建一个repo实例,并且希望回收它,那么使用单例可能是合适的。 依赖注入的好处在于它确实澄清了这种依赖概念(讽刺!)。如果要强制执行它,可以执行如下操作:如果$repo对象为空,或者不是存储库实例,则在uConstruct()方法中引发异常。 |
2
1
我可能会做得有点不同。我将添加setrepository(repository$repos)方法和getrepository()方法。然后,在findall方法中,调用getRepository()。如果尚未调用setrepository(),则getrepository可以返回默认的存储库实例。 我还可能为知识库类创建一个接口,以便在datamapper类中使用不同的知识库实现。 所以get方法看起来像
而set方法可能看起来像
|
Jacco · 未能格式化我的日期以在php中正确工作 1 年前 |
jay ram · 如何在URL核心php中从API获取JSON? 1 年前 |
Ishwarya A · php电子表格在浏览器中显示多张excel 1 年前 |