在PHP MVC应用程序中查询查找列表的位置


Where to put queries for lookup lists in PHP MVC app

我有一个PHP MVC应用程序。我的"M"有域、映射器和工厂层,这些层通过服务层访问。

我经常需要为html选择框生成一个id/value对列表。到目前为止,我已经将查询放在Mappers中,并返回了简单的数组,但这感觉不对。映射器用于存储和检索对象,对吧?

我真的不想检索对象集合的开销,只想丢弃它们的大部分优点来生成一个简单的数组。我在考虑将查询转移到服务,甚至可能有一个专门用于查找的服务?这意味着我的应用程序中有两个地方有SQL代码,但感觉更整洁。

有更好的选择吗?

由于您将编写一个服务层,用于在获取记录时过滤出正确的记录集合,因此直接从Controller调用服务函数。该服务将调用mapper函数来检索和存储记录。

例如控制器->服务->映射器

通过这种方式,代码结构将保持整洁,并且您还将遵循DRY(不要重复自己)原则;不需要将SQL查询放在两个位置。