私はOpencartを使用しています。私は本質的に同じものですが、私のモデルファイルにこれらの機能を持っています。これを行うより良い方法はありますか?コードの行を繰り返すのは無駄だと思われますが、これを処理する正しい方法が何であるかわかりません。これらのステートメントを何とか組み合わせることはできますか?それはこれを行う正しい方法ですか?私のPHPスキルはあまりよくありませんし、ここでいくつかのアドバイスをいただければ幸いです。ここに関数があります。モデル機能を組み合わせる適切な方法
public function getSum() {
$query = $this->db->query("SELECT SUM(amount) as amount_sum FROM " . DB_PREFIX . "donate Where date_added >= (CURDATE() - INTERVAL 12 MONTH) ");
return $query->row;
}
public function lastThirty() {
$query = $this->db->query("SELECT SUM(amount) as amount_sum FROM " . DB_PREFIX . "donate Where date_added >= (CURDATE() - INTERVAL 1 MONTH)");
return $query->row;
}
public function lastYearNow() {
$query = $this->db->query("SELECT SUM(amount) as amount_sum FROM " . DB_PREFIX . "donate Where date_added >= (CURDATE() - INTERVAL 12 MONTH) ");
return $query->row; //will be giving this time last year, not figured out yet.
}
public function lastYearTotal() {
$query = $this->db->query("SELECT SUM(amount) as amount_sum FROM " . DB_PREFIX . "donate Where date_added >= (CURDATE() - INTERVAL 1 MONTH)");
return $query->row; //will be total for last last year, not figured out yet.
}
私はこれをしません。これらは小さなメソッドです。コピーされるコードは大量ではありません。将来的にそれらを微調整する必要があるかもしれません(例えば、getSum()は特定のトランザクションを除外する必要があります)、それらを組み合わせた場合は苦痛になります。 –
ありがとうございました!私はいつも長い道のりをとっているように見えますが、時にはわからないショートカットがあります。 –
これらの関数に* logic *がある場合は、確かに[dry up](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself)と書いてありますが、これらはほんの些細な機能です。 –