我有一个PHP MVC应用程序。我的"M"有域、映射器和工厂层,这些层通过服务层访问。
我经常需要为html选择框生成一个id/value对列表。到目前为止,我已经将查询放在Mappers中,并返回了简单的数组,但这感觉不对。映射器用于存储和检索对象,对吧?
我真的不想检索对象集合的开销,只想丢弃它们的大部分优点来生成一个简单的数组。我在考虑将查询转移到服务,甚至可能有一个专门用于查找的服务?这意味着我的应用程序中有两个地方有SQL代码,但感觉更整洁。
有更好的选择吗?
由于您将编写一个服务层,用于在获取记录时过滤出正确的记录集合,因此直接从Controller调用服务函数。该服务将调用mapper函数来检索和存储记录。
例如控制器->服务->映射器
通过这种方式,代码结构将保持整洁,并且您还将遵循DRY(不要重复自己)原则;不需要将SQL查询放在两个位置。