php – 使用Doctrine EntityRepository中的魔术查找方法是否合适
我在symfony框架的背景下问.
我想知道这是一个使用魔术查找方法(如find($id),findByField($value)等)的好习惯. 这些方法既没有返回类型也没有定义.这导致我的IDE在它们周围标记警告.此外,我必须在使用这些方法的同时标记返回值的类型,以使代码完成处理这些变量. 作为一种解决方案,我通常在自定义存储库类中编写getter.在symfony docs中有一个这样的getter的例子,它重载了一个魔法findBy方法的变体. 我对这种重载魔法查找方法也有不好的看法,因为它将我自己的repo实现与父EntityRepository混合. 所以我最终编写了使用“get”前缀而不是“find”的自定义getter. 现在,有人可以告诉我最新的做法是什么?为什么? 编辑 最近我正在寻找一些优化学说的方法,我发现建议不要使用魔术探测器,所以它是另一个反对魔术探测器的论据. 我还阅读了有关魔术探测器的学说文档,并发现:
所以我终于为魔术发现者制定了自己的观点(和用例).仅将它们用于加速编码,并始终使用TODO标记它们,以便在清理代码时将它们重写为自定义存储库方法. 解决方法
在我看来,这也是一个不好的做法.我建议你使用findBy([])和findOneBy([])方法.我相信当我开始学习symfony时,我遇到了一个魔术方法根本不起作用的情况,因为我的实体的属性是用下划线命名的.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |