@radzik_w
Ogólnie to jest rozdzielenie na trzy niezależne warstwy.
Czyli model pobiera dane, ma swój interfejs getNews add itd. ale wszystko co odwołuje się do źródła danych, najczęściej baza ale właśnie nie zawsze musi być, jak również strukturę danych ukrywa pod interfejsem.
Kontroler wie skąd brać dane (z którego modelu/i) i czy coś musi spr. jak poprawność, czy wszystko wprowadzone weryfikacje osoby (choć to już zależy jak się to robi) i przekazuje dane do widoku/modelu (w zależności czy zapisuje czy wyświetla, lub oba naraz).
Widok wie tylko jak ma te dane wyświetlić, kontroler nawet nie wie czy widok będzie xml, html czy czymś innym. (właśnie zdałem sobie sprawę ze to co ostatnio robiłem do tworzenia pdfów to powinno istnieć jako widok

, a ma różne widoki bo zostało specjalnie właśnie do elastycznego podmiany generacji... ale to juz inny temat) czy zapisania do pliku.
Czyli kontroler zbiera dane obrabia
dane i je przekazuje do widoku i go nie obchodzi co widok z nimi robi, tak jak nie obchodzi go skąd model bierze.
(Widok to można powiedzieć że piszemy artykuł tytuł treść wrzucamy przez szparę w drzwiach i nie wiemy czy pójdzie to do gazety czy telewizji czy radia a może do kosz:D)
Dzięki takiemu podziałowi można łatwo zmienić skąd są pobierane dane, jak również jak są prezentowane.
Bo zmienię że zamiast do szablony smarty wysyłam do generatora pdf ale tylko to czyli w sumie jedną zmienną, a zmienia nam się zupełnie co otrzymujemy. Dzięki temu zmiana wyglądu strony to kwestia chwili, jak już mamy odpowiednie szablony, bo tylko je zmieniamy nic więcej. Jak zmieni nam się źródło danych to kopiemy w modelu, zachowujemy interfejs i też na modelu się kończy.
Chcemy aby na głównej stronie były dodatkowo ostatnie komentarze, tworzymy (jeśli nie ma) w modelu lastcoment (lub mamy sortowane po dacie i podajemy ile, w ten sposób jest uniwersalne) i w kontrolerze pobieramy, w widoku wyrzucamy, tak na prawdę to tylko kontroler i widok się zmienia (bo w modelu najczęściej mamy odpowiednie metody)
ups, zbyt się rozpisałem