Yii implementuje wzorzec projektowy model-widok-kontroler (MVC), który jest powszechnie stosowany w programowaniu webowym. MVC ma na celu oddzielenie logiki biznesowej od interfejsu użytkownika, biorąc pod uwagę to, że developer może dzięki temu w łatwy sposób zmienić każdą część bez oddziaływania na inną. W MVC model reprezentuje informacje (dane) oraz reguły biznesowe. Widok zawiera elementy interfejsu użytkownika takie jak tekst, formularze. Kontroler zarządza komunikacją pomiędzy modelem a widokiem.
Poza implementacją MVC, Yii wprowadza również front-controller, nazywany aplikacją, który hermetyzuje wykonywanie kontekstu przetwarzanego żądania. Aplikacja zbiera pewne informacje o żądaniu użytkownika a następnie przekazuje je do odpowiedniego kontrolera w celu późniejszego przetworzenia.
Poniższy diagram pokazuje statyczną strukturę aplikacji napisanej w Yii:
Statyczna struktura aplikacji napisanej w Yii
Poniższy diagram pokazuje typowe sterowanie kolejnością zadań w aplikacji Yii podczas przetwarzania żądania użytkownika:
Typowe sterowanie kolejnością zadań dla aplikacji napisanej w Yii
http://www.example.com/index.php?r=post/show&id=1
a serwer webowy przetwarza żądanie poprzez wykonanie skryptu rozruchowego
(ang. bootstrap script) index.php
.request
.urlManager
aplikacja ustala żądany
kontroler oraz akcję .
W podanym przykładzie, kontrolerem jest post
, który reprezentuje
klasę PostController
; akcją jest show
, której aktualne znaczenie jest determinowane
przez kontroler.show
odpowiada metodzie nazwanej actionShow
w klasie kontrolera. Następnie tworzy on i wywołuje filtry (np. filtr kontroli dostępu, benchmarking)
powiązane z tą akcją. Akcja jest wykonywana, jeśli zezwalają na to filtry.Post
z bazy danych o ID równym 1
.show
wraz z modelem Post
.Post
.
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.