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 zaś zawiaduje komunikacją pomiędzy modelem a widokiem.
Poza MVC, Yii wprowadza również front-controller, nazwany aplikacją, który reprezentuje kontekst wykonywania podczas przetwarzania żądania. Aplikacja rozszyfrowuje żądania użytkownika oraz wysyła je do odpowiedniego kontrolera w celu późniejszego przetworzenia.
Następujący diagram pokazuje statyczna strukturę aplikacji napisanej w Yii:
Statyczna struktura aplikacji napisanej w Yii
Następny 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
. Na przykład, 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
, którego ID wynosi 1
z bazy danych.show
wraz z modelem Post
.Post
.
Signup or Login in order to comment.