Marek Brzeziński webmaster
Temat: Grube kontrolery i chude modele :)
Cześć,Chciałem was zapytać, czy macie jakieś strategie na częste akcje zapisu, edycji i usuwania z bazy danych ?
Chodzi mi o to, że bardzo często w kontrolerze używa się czegoś na styl ( tylko przykład z grubsza) :
$result = $this->Gallery->editGallery($id);
if (!$result) {
throw new NotFoundException('Nie ma takiej strony');
return false;
}
if ($this->request->is('post')) {
$this->Gallery->id = $id;
$this->Gallery->save($this->request->data);
return;
}
if (!$this->request->data) {
$this->request->data = $result;
}
Czyli za każdym razem sprawdzenie czy $this->request->data jest, czy to data('post, 'put') itd...
Ten kod w konrolerze wszystko sprawdza przez co model na pewno ma mniej pracy..
Pytanie jest takie, w jaki sposób przerzucacie część takiego kodu do modelu, bo jak ma się wiele akcji typu zapisz czy edytuj w kontrolerze, to strasznie puchnie, a ten kto powinien na siebie tą robotę wziąć jest chudy jak patyk.
Czy nie piszecie żadnych funkcji w modelu, tylko po to żeby mieć chudy kontroler i działacie jak opisuje to książka cakephp'a, tam za każdym razem jest ten sam schemat- kontroler sprawdza czy jest np $id, czy takie id jest w bazie, czy w końcu to edycja i następuje przypisanie $this->request->data = $wynik, czy nie ma $this->request->data i będzie wykonany zapis nowego rekordu...
Generalnie przez te request data w kontrolerze, mam długi kontroler który za każdym razem sprawdza, a model ma kilka linijek kodu typu walidacja itd...
Wiem,że model nie ma dostępu do $this->request->data.
Generalnie, wiadomo, kontroler podejmuje decyzję co robić, ale chciałbym mieć więcej kodu w modelu, do którego rzadziej zaglądam i moje kółko od myszki ma więcej wolnego.
Pozdrawiam.