【发布时间】:2009-09-02 01:48:46
【问题描述】:
我正在使用 CodeIgniter,并且我有一个模型可以获取所有可以设置偏移量和限制的食谱。我应该扩展该功能以检索单个食谱吗?这是个好习惯吗?
【问题讨论】:
标签: php codeigniter
我正在使用 CodeIgniter,并且我有一个模型可以获取所有可以设置偏移量和限制的食谱。我应该扩展该功能以检索单个食谱吗?这是个好习惯吗?
【问题讨论】:
标签: php codeigniter
您的目标应该是最大限度地减少代码重复,同时最大限度地提高可理解性。这两个经常发生冲突。你可以得到最少的代码重复,但一个函数有 12 个可选参数。所以一些一般提示:
对于您的具体情况,我想您最终希望得到以下结果:
function get_recipes($offset, $limit) {
// execute query and get resource
$ret = array();
while ($row = mysql_fetch_assoc($rs)) {
$ret[] = build_recipe($row);
}
return $ret;
}
function get_recipe($id) {
// execute query and get row object
return build_recipe($row);
}
function build_recipe($row) {
// construct a recipe object from the row
}
【讨论】:
get_recipe 与 get_recipes 分开。维护您的代码的人会更容易理解您的代码。
一般来说,为了清楚起见,一个函数应该执行一个任务。但是,“获取 N 行”是一项任务——即使 N==1;所以我会说这种情况是合格的,即该功能并不是真正的“多用途”!-)
【讨论】:
这个问题的答案很简单。
【讨论】: