Yii ist mithilfe des Model-View-Controller (MVC)-Entwurfsmusters organisiert. Das Modell stellt Daten, Geschäftslogik und Regeln dar; die Ansicht zeigt die Ausgabe des Modells an und der Controller akzeptiert Eingaben und wandelt sie in Modell- und Ansichtsbefehle um.
Zusätzlich zu MVC bestehen Yii-Anwendungen auch aus den folgenden Teilen:
Eingabeskript: ein PHP-Skript, auf das Endbenutzer direkt zugreifen können und das für den Start eines Anforderungsverarbeitungszyklus verantwortlich ist.
Anwendung: ein Objekt, auf das global zugegriffen werden kann und das Komponenten zum Abschließen von Anforderungen verwaltet und koordiniert.
Anwendungskomponente: ein in der Anwendung registriertes Objekt, das verschiedene Funktionen zum Abschließen von Anforderungen bereitstellt.
Modul: ein unabhängiges Paket, das eine vollständige MVC-Struktur enthält. Eine Anwendung kann aus mehreren Modulen bestehen.
Filter: Code, den der Controller benötigt, um die Ausführung vor oder nach der Verarbeitung der Anfrage auszulösen.
Widget: Ein Objekt, das in eine Ansicht eingebettet werden kann, Controller-Logik enthalten kann und von verschiedenen Ansichten wiederholt aufgerufen werden kann.
Das folgende Diagramm zeigt die statische Struktur einer Yii-Anwendung: