Witajcie
Czy tworzac nowy kontroler, mam rozumiec, ze tworze nowa "pod strone", do ktorej tworze model i view ?
Powiedzialbym, ze raczej grupe podstron.
Jezli tak, to jak w takim razie rozumiec fakt, ze w kontrolerze moge miec kilka funkcji i do kazdej moge tworzyc view ?.
Wyobraz sobie, ze tworzysz sklep internetowy. Jak wiadomo w sklepie sa produkty - bardzo czesto sa tez uzytkownicy.
W takiej sytuacji klient powinien miec mozliwosc:
- zobaczenia listy produktow
- zobaczenia podstrony produktu, w ktorej beda szczegolowej informacje o produkcie (dane techniczne itd)
- dodanie produktu do koszyka
- usuniecie produktu z koszyka
- rejestracji nowego uzytkownika
- edycji swojego uzytkownika
Do tego dochodza inne rzeczy, ktore pominalem jak chocby zlozenie zamowienia - nie chcialem za bardzo komplikowac.
Dobrze byloby w takiej sytuacji zrobic trzy kontrolery:
- kontroler "produkty" zawierajacy metody "lista produktow" i "pokaz produkt"
- kontroler "koszyk" zawierajacy metody "dodaj produkt" oraz "usun produkt"
- kontroler "uzytkownicy" zawierajacy metody "rejestracja" i "edycja profilu"
Kazda z tych metod obsluguje inne podstrony. Kontroler w tym przypadku pelni role grupujaca - podczas dodawania nowych funkcjonalnosci bedziesz wiedzial intuicyjnie w jakim pliku nalezy dokonac zmian. Dla przykladu, jezeli chcesz stworzyc podstrone "polecane produkty" to nalezy rozbudowac kontroler produkty o metode "polecane produkty" (lub lepiej "polecane" bo wiadomo, ze chodzi o produkty skoro metoda jest w kontrolerze produkty - taka samo z innymi metodami, ktore omowilem). Jezeli bedziesz chcial rozszerzyc mozliwosci koszyka o edycje danych to dopiszesz metode "edycja" do kontrolera "koszyk".
Wychodziloby na to, ze na jednym kontrolerze mozna zbudowac cala aplikacje webowa.
Bo mozna, ale nie jest to dobra praktyka.