Aplikasi Yii diorganisir berdasarkan pola arsitektur model-view-controller (MVC). Model merepresentasikan data, pengaturan dan proses bisnis; view adalah output yang merepresentasikan model; dan controller mengelola input dan merubahnya menjadi perintah-perintah untuk model dan view.
Selain MVC, aplikasi Yii juga memiliki entitas berikut:
- entry scripts: Ini adalah skrip PHP yang diakses secara langsung oleh pengguna. Ini bertugas untuk memulai siklus penanganan request.
- applications: Ini adalah objek yang dapat diakses secara global, yang mengelola component aplikasi dan mengaturnya untuk memenuhi sebuah request.
- application components: Ini adalah objek-objek yang didaftarkan pada objek application dan menyediakan beragam layanan untuk memenuhi request.
- modules: Ini adalah paket (package) mandiri yang berisikan MVC lengkap. Sebuah aplikasi boleh diistilahkan sebagai module-module yang telah diorganisir.
- filters: Ini merepresentaikan kode yang mutlak untuk dijalakan sebelum dan sesudah penanganan dari tiap-tiap request yang dikelola oleh controller.
- widgets: Ini adalah objek-objek yang dapat ditanam kedalam views. Ini dapat mengandung logika controller dan dapat digunakan berulang-ulang pada view yang berbeda.
Diagram dibawah ini menunjukkan struktur statis dari sebuah aplikasi: