在数据映射器类中按文件名而不是ID查找

时间:2010-08-05 17:37:59

标签: php datamapper

我有一个抽象的数据映射器类:

<?php
abstract class ADataMapper
{
    abstract public function addNew($dataObj);
    abstract public function update($dataObj);
    abstract public function find($primaryKey);
    abstract public function delete($dataObj);
}
?>

ADataMapper的子类中,我需要通过不是主键的列找到一行,特别是:'filename'。

最好是实施像findByFilename($filename)这样的方法,还是有另一种更简单的替代方法?我觉得我只是增加了不必要的复杂性。

2 个答案:

答案 0 :(得分:1)

您可以在find()内添加支票。如果参数是字符串,则调用私有findByFileName(),否则调用findById()

答案 1 :(得分:1)

通常我选择getBySpecificKeyX方法(所以getById() / getByParentId()类似的家庭),以及一个通用search()方法,它采用多个搜索项的构造/数组动态查询。这是个人选择。