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.