Model-View-Controller (MVC)

Yii implementerar designmönstret model-view-controller (MVC), vilket är brett antaget inom webbprogrammering. MVC syftar till att separera överväganden om affärsregler (business logic) från sådana som avser användargränssnitt (user interface), så att utvecklare lättare kan ändra det ena utan att påverka det andra. Inom MVC, representerar modellen information (data) samt affärsregler; Vyn (view) innehåller element ur användargränssnittet såsom text och inmatningsfält; kontrollern ombesörjer kommunikation mellan modell och vy.

Utöver MVC, introducerar Yii även en förgrundskontroller (front-controller), Application, som representerar en exekveringsomgivning för bearbetning av inkomna request. Application samlar information om en request från användare och skickar sedan denna vidare till relevant kontroller för fortsatt behandling.

Följande diagram visar den statiska strukturen hos en Yii-applikation:

Statisk struktur hos Yii-applikation

Statisk struktur hos Yii-applikation

1. Typiskt bearbetningsflöde

Följande diagram visar det typiska bearbetningsflödet för en Yii-applikation när den hanterar en request från användare:

Typiskt bearbetningsflöde för en Yii-applikation

Typiskt bearbetningsflöde för en Yii-applikation
  1. En användare skickar en request med URL:en http://www.example.com/index.php?r=post/show&id=1 och webbservern hanterar denna request genom att köra startskriptet index.php.

  2. Startskriptet skapar ett applikationsobjekt, en instans av Application samt kör denna.

  3. Applikationsobjektet skaffar sig den detaljerade informationen om användarens request från applikationskomponenten request.

  4. Applikationen avgör vilken controller resp. action som efterfrågas, med hjälp av applikationskomponenten urlManager. I detta exempel är kontrollern post, vilket motsvarar klassen PostController; åtgärden (action) är show, vars faktiska innebörd bestäms av kontrollern.

  5. Applikationen skapar en instans av den begärda kontrollern för fortsatt hantering av användarens request. Kontrollern avgör att åtgärden show refererar till metoden actionShow i kontrollerklassen. Därefter skapar och exekverar den filter (t.ex. tillträdeskontroll, prestandamätning) som associerats till denna åtgärd. Åtgärden exekveras sedan om detta tillåts av filtren.

  6. Åtgärden läser en Post-modell vars ID är 1 från databasen.

  7. Åtgärden renderar vyn show med innehåll från modellen Post.

  8. Vyn läser och presenterar attributen från modellen Post.

  9. Vyn exekverar några widgets.

  10. Resultatet från vyrenderingen bäddas in i en layout.

  11. Åtgärden slutför renderingen och det färdiga resultatet presenteras för användaren.

$Id: basics.mvc.txt 3321 2011-06-26 12:54:22Z mdomba $

Be the first person to leave a comment

Please to leave your comment.