使用Doctrine作为我们的ORM处理MVC应用程序。目前,我们正在寻求改进我们在应用程序中使用对象关系的方式,并提出了一个问题:
我们应该直接将一个学说实体分配给视图还是只是一个数据数组?
每个人都有自己的优点和缺点。例如,设置实体使我们的前端开发人员能够查询我们的数据库,这不应该在视图中完成,并且可能不明智地使用。 另一方面,分配数据数组意味着我们必须首先查询他们可能想要的所有内容并将其作为数组获取。数组访问也不会给它们自动完成。
您认为哪种方法是我们最好的选择,以及最少的潜在并发症?
感谢您的时间。
答案 0 :(得分:1)
我认为答案主要是关于应用运行所需的效率/速度。如果“frontend devs”是指HTML / CSS devs,那么他们可能无法理解循环错误的事物(例如$object->getRelatedObject()
)可以在后台创建什么类型的查询。可以使用单个紧密查询返回数组数据执行的操作最终可能会生成10-15个查询,这些查询会使整个对象保持水平并显着降低应用程序的速度。
如果我不得不概括,我会说,如果你正在构建一个小型应用程序,其中扩展不是一个主要问题,它并不重要,因为你不会注意到速度和你的开发有更多的余地去做令人讨厌的事情。否则,我会去寻找阵列数据。
希望有所帮助。