私が取り組んでいる MVC プロジェクトのモデルを開発しています。1 つのタスクに複数の関数を用意する方がよいのか、それとも処理できる方法ごとに 1 つの関数を用意する方がよいのか疑問に思っていました。たとえば、次のようなものを用意した方がよいでしょうか。
public function get($identifiers = null, $limit = null, $offset = null)
{
if ($identifiers != null) {
if (is_array($identifiers)) {
$this->db->where($identifiers);
} else {
$this->db->where($this->_key, $identifiers);
$method = 'row'.($this->_return_array ? '_array' : '');
return $this->db->get($this->_table)->$method();
}
}
if ($limit != null) {
$this->db->limit($limit, $offset || null);
}
if (!count($this->db->ar_orderby)) {
$this->db->order_by($this->_order);
}
$method = 'result'.($this->_return_array ? '_array' : '');
return $this->db->get($this->_table)->$method();
}
複数のケースを処理するか、次のような個別の機能を持つ
get($id) {}
get_where($where) {}
get_all() {}
等々。