A basic implementation of Model-View-Controller pattern in only 20 LOC of PHP

, ,

Sa revenim un pic la teorie. MVC presupune ca sunt date care tin de vizualizare (formulare daca vrei) si care nu se mapeaza exact peste structura bazei de date. Astfel aceste modele pot fi conectate de mai multe view-uri simultan contrlolate de Controller. Buuun, sa mai vedem ca acum zeci de ani tocmai de aia s-a inventat pentru ca era o problema cu modul in care datele “se vad” fata de cum sunt ele stocate, si nu exista web deci nici gand se se pomeneasca ceva despre browsere ca si client. Insa a inceput era moderna si s-a detasat view-ul de server dar problema a ramas si a fost rezolvata la fel: ai modele care isi schimba starea in functie de view si care sunt controlate de un controller (un pic fortat aici, e un controller per view la un moment dat) insa ce e important e ca starea obiectului se modifica si se salveaza urmand ca alt view sa observe modificarile. Da, la comanda utilizatorului si nu automat ar zice unii, insa se aplica la toate view-urile care sunt legate de acel model. Deci, e MVC.

Tocmai asta e problema, view-urile nu ar trebui să fie controlate de controller. Controller-ul updatează modelul, iar modelul trebuie să updateze view-urile conectate la el.