Yii je relativně mladým frameworkem pro PHP, který je open-sourcový a relativně výkonný. Slouží k vývoji rozsáhlých webových aplikací. Důraz klade především na pragmatičnost, znovupoužitelnost a jednoduchost použití. Jedná se o striktně objektové orientovaný systém. Všechny komponenty jsou nezávislé, konfigurovatelné i rozšiřitelné.
Momentálně je k dispozici stabilní verze, která byla uvolněna v květnu roku 2010. Vývoj frameworku vychází ze spolupráce mezinárodního týmu vývojářů, do kterého patří Qiang Xue z USA, Wei Zhuo z Austrálie, Kyle Ferreira z Kanady, Sebastian Thierer z Argentiny, István Beregszászi z Maďarska a Johan Turnquist z USA.
Původní návrh je dílem prvního jmenovaného a inspiroval se následujícími projekty:
Prado. Z něj bylo převzato komponentní a událostmi řízené paradigma, modulární aplikační architektura, vrstvy databázové abstrakce, lokalizace a systém internacionalizace.
Ruby on Rails. Odtud vyplývá zásada „konvence před konfigurací“ a inspirace při implementaci návrhového vzoru ActiveRecord.
Symfony. Inspirace v oblasti filtrů a architektury zásuvných modulů.
Joomla. Z ní byla převzata modulární architektura.
jQuery. Byla integrována v roli základní knihovny pro podporu JavaScriptu.
Typické vlastnosti Yii
Aplikační a prezentační logika jsou rozděleny na základě architektonického principu MVC. Ten umožňuje relativní nezávislost databázové, aplikační a prezentační vrstvy aplikace, což vede k lepší správě.
Ke zdrojům přistupuje za pomoci Database Access Objects (DAO) a Active Record.
Oblíbená javascriptová knihovna jQuery je integrovaná v roli základní knihovny.
Zpracování formulářů a validace vstupních dat jsou jednoduché a bezpečné.
Kontrolu přístupů z hlediska autentizace a autorizace zajišťují hierarchické role RBAC.
Podporuje motivy a rychlé vizuální změny aplikace.
Automaticky generuje specifikace a zpracování požadavků WSDL služeb.
Překlad zpráv, formátování čísel a údajů o datu a čase využívá lokalizace (L10N) a internacionalizaci (I18N).
Pro data, stránky, fragmenty stránek a dynamický obsah má vrstvenou cache, která umožňuje snížit reakční čas aplikace.
Zajišťuje zpracování, filtraci a archivaci chyb.
Chrání aplikaci vůči rozličným druhům útoků.
Generuje validní XHTML kód.,
Výhody použití Yii
Má CRUD generátory využívající Gii.
Nabízí uživatelů široké spektrum možností pro layouty a témata, která lze využít pro tvorbu unikátního designu webové stránky.
Obsahuje Ajax helpery.
Šetří opakované psaní stejného kódu.
Je to nejrychlejší dostupný Framework pro vývoj rozsáhlých aplikací. Má výborný výkon, což je vhodné především v případě tvorby fór, e-commerce nebo systémů na správu obsahu a dat.
Architektura napomáhá vývojářům vytvořit chytrou webovou stránku, která má svoje databázové servery izolované od uživatelů a pomáhá vývojářům stavět efektivní a čisté webové řešení.
Originálně navržený controller pomáhá propojit různé knihovny a balíčky, což snižuje programovací zátěž.
Změny v jedné řádce se promítnou napříč programem.
Ochrana citlivých dat proti hrozbám.
Serverová a klientská validace mohou být zapínány a vypínány podle potřeb aplikace.
Umožňuje propojení s interface třetí strany, což usnadňuje integraci s dalšími frameworky.
Chytré cashování a struktura založená na komponentách umožňuje šetřit práci vývojáře a udržet maximální výkon.
Dokáže zpracovat značné množství requestů za sekundu.
Nevýhody použití Yii
Nepodporuje AR queries.
Nemá příliš dobře integrované Ajax funkcionality, takže někdy musí vývojáři povinně využívat JavaScript.
Jediná chyba může způsobit široké důsledky napříč aplikací.
Yii vyžaduje relativně širokou znalost PHP, programování obecně a různých add-onů, které jsou na něj navázané.
Velmi závisí na statických metodách.