Citat:
Originalno napisao Marko Medojevic
Mislim da je upotreba $_POST u modelu loša sa aspekta ponovne upotrebljuvosti koda.
Uzmimo recimo primer gde se post koristi u modelu:
Kôd:
public function addUser() {
$this->db->insert($_POST['username'], $_POST['password'],$_POST['email']);
}
i primer gde se prosleđuju parametri:
Kôd:
public function addUser($username, $password, $email) {
$this->db->insert($username, $password, $email);
}
Prvi metod, koji koristi post, lako možeš upotrebiti iz kontrolera koji prima POST od forme sa očekivanim podatcima.
Međutim, da li možeš prvu metodu koristiti da upišeš podatke koji ne dolaze iz POST forme, recimo iz neke migracije koja uzima podatke iz stare baze i upisuje u novu?
Ili recimo, možda ćeš želeti da metodu addUser() testiraš kroz unit testove, gde ćeš sam prosleđivati podatke u kodu.
Mislim da je ponovna upotrebljivost druge metide daleko veća, za razliku od prve koja je zakucana za POST kontekst.
|
Nešto se nismo razumelli, ja nisam rekao da $_POST ide direktno u model nego sam rekao da se u modelu vrši validacija ulaznih podataka, bez obzira na poreklo
Po meni treba ovako:
Kôd:
public function addUser($data) {
// $data validacija
$this->db->insert(... whatever here .. );
}
A $data može da bude $_POST iz controllera ili bilo koji drugi array iz nekog drugog objekta
a ovo sa 17 parametara funkcije ne bih sada komentarisao osim da je to loša praksa