2010-08-05 33 views
0

我有一個抽象的數據映射器類:通過文件名,而不是ID數據映射類查找

<?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,我需要一個列,它是不是主要找一個排鍵,具體爲:'文件名'。

最好是實施一種像findByFilename($filename)這樣的方法,還是有另一種更簡單的方法嗎?我覺得我只是增加了不必要的複雜性。

回答

1

通常我去getBySpecificKeyX方法(因此getById()/getByParentId()這樣的家庭),和一般的search()方法,這需要多個searchterms和查詢的結構/陣列動態。但這是個人選擇。

1

您可以在find()內添加支票。如果參數是一個字符串,然後再打一個私人findByFileName()否則,findById()

+2

把這個和Wrikken結合起來,這樣你就可以傳入'array('fieldName'=>'searchTerm')'等等。然後你可以檢查它是否是'int' - >'findById()',否則做一個搜索。 – 2010-08-05 17:47:28

相關問題