Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: model MVC
Forum PHP.pl > Forum > PHP > Pro > Archiwum Pro
AcidBurnt
Witam!!

Zabieram się właśnie za napisanie CMS'a na pewna stonkę WWW, i ponieważ jest to któryś z kolei bardzo podobnego typu mój projekt, zacząłem się zastanawiać nad jakimś rozwiązaniem, które będę mógł później wykorzystać w następnych projektach, w ręce wpadł mi gdzieś przelotem jakiś numer „php solutions” był tam artykuł właśnie p frameworku opartego na modelu MVC, niestety nie miałem czasu zaznajomić się z tym artykułem dokładnie może też dla tego mam kilka problemów.

Całość "systemu" ma być rozdzielona miedzy warstwy:
  • widok
  • model
  • kontroler
rozumiem ze klasa widok, no to, jeśli dobrze rozumiem no to, co "wypluwa" nam przeglądarka lub też cokolwiek innego PDF, czyli to, co widzimy już po wygenerowaniu www. Czyli konkretnie w moim projekcie były by jakieś szablony temlates, wiec przerobienia zebranych danych na gotowa stronę www, tak?

warstwa modelu, tutaj ma być pobranie danych, czyli zainicjowanie powiedzmy połączenia z baza danych wybranie powiedzmy nowości, i zapisanie ich do jakieś tablicy, aby później przekazać to do warstwy widoku, która nam to wyświetli, tak?

warstwa modelu… no i tutaj to już nie rozumiem….

może ktoś mnie naprostować w moim rozumowaniu?
NuLL
A czytałeś http://php.pl/artykuly/aplikacje_interneto...wadzenie_do_mvc questionmark.gif
bela
Ja osobiście robię to w taki sposób.
  • Inicjuje kontroler podając mu plik konfiguracyjny
  • Kontroler na podstawie URLa wykonuję akcje
  • Akcja jest najmniejszą jednostką, odwołuje się do modelu
  • Model to takie API na dane, w praktyce na bazę danych
  • Akcje wypluwają co muszę i to trafia z powrotem do kontrolera, który wybiera widok w jakim mają zostać wyświetlone dane
  • Widok robi 'print' ;]
Tak to mniej więcej wygląda :]
AcidBurnt
Cytat(NuLL @ 2005-06-12 20:59:49)

nie, umknoł mi ten art...

więc po przeczytaniu Arta z php wiem chyba więcej proszę mnie poprawić jeśli się mylę,przedstawię całość na prostym przykładzie.

prosta strona zajmująca się wyświetlaniem i dodawaniem nowości.

więc tak user wydaję żądanie wyświetlenia nowości poprzez http://www.moja-domena.pl/index.php/nowosci

w pliku index.php analizuje żądanie:

  1. <?php
  2. $modules = explode( '/', substr( $_SERVER['PATH_INFO'], 1) );
  3. ?>


i tutaj urchamia się sterownik, który poprzez analize zawartości tablicy $modules stwierdza ze chce wyświetlic nowosci, więc uruchamiam wodok dla nowosci

./viev/nowosci.php

ten zatem uruchamia model

./viev/model.php

model uruchamia klase odpowiedzialna za połaczenie z baza danych, pobiera nowosci i zapisuje je do powiedzmy tablicy $nowosci
i tutaj konczy swoje zadanie, tak?

teraz widok

./viev/nowosci.php ma tablice $nowosci z wszystkimi nowosciami, i on uruchamia szablon który generuje gotowy kod strony.

dobrze rozumiem snitch.gif

tylko nie wiem gdzie tutaj zgubiłem akcjie smile.gif

no albo przykład z dodaniem usera

żądanie http://www.moja-domena.pl/nowosci/dodaj

sterownik stwierdza ze uzytkownik chce dodac usera więc co.. uruchamia akcje

./actions/dodajusera.php

no i co ta akcja uruchamia vidok dla dodawania usera, czyli jakis tam formulaz... tworzy sie nam www, wypelnamy formulaz, przesylamy dane poprzez POST spowrotem na http://www.moja-domena.pl/nowosci/dodaj

sterownik stwierdza ze ma juz dane do dodania usera, wiec uruchamia akcje

./action/dodajusera.php

i tutaj co? wywolanie widoku dla dodawania usera, pozniej wywolanie modelu i dodawanie z modelu? czy dodawanie przebiega teraz z poziomu akcji która łaczy sie z baza i dodaje.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.