我想让在我的系统中创建从数据库填充的下拉菜单变得容易(例如,用户组列表)。对于这个系统,我通常遵循领域驱动的设计方法,包括稍微适应版本的存储库模式。(系统是 PHP 的。)
由于检索给定域对象类的下拉列表是一种常见操作,我想知道getDropDownList()
在相关存储库上创建方法是否合适。
例如,假设有问题的域对象称为“类别”。我的提议是创建一个CategoryRepository::getDropDownList()
方法,该方法将返回类别 ID 和标题的关联数组,准备好用于创建 HTML<select>
列表。
在过去的一个项目中,当我在getDropDownList()
类似存储库的类上创建一个方法时,其他开发人员之一说这样的方法不属于该类,说它与视图有关,而不是与模型有关。但我不这么认为,因为该方法的目的只是返回列表的原始数据。它甚至不需要用于创建下拉列表;它可以转换为 JSON 数据或任何其他数量的东西。
我的主要问题是:
- 像我描述的那样的方法是否
getDropDownList()
属于存储库类?如果没有,它应该去哪里? - 这可能只是一个命名问题吗?
getSimpleList()
如果我称它为或getArrayForList()
表示它正在返回一个数组而不是已经呈现的 HTML,也许会更好?
继续类别示例,从此方法返回的数据将返回类别 ID 作为键和类别名称作为值的关联数组,例如:
array(
1 => 'Category A',
2 => 'Category B',
...
)