ORM test PHP frameworků – Yii, Zend Framework

V této části se zaměřím na dva poslední frameworky, které byly zahrnuty do porovnávání. Jedná se o další velice známé nástroje Yii a Zend Framework.
Seriál: ORM test PHP frameworků (9 dílů)
- Spouštíme letní ORM test PHP frameworků 3. 7. 2013
- ORM test PHP frameworků – CakePHP, CodeIgniter 10. 7. 2013
- ORM test PHP frameworků – DooPHP, Jelix 17. 7. 2013
- ORM test PHP frameworků – Kohana, Laravel 26. 7. 2013
- ORM test PHP frameworků – Nette, Prado 31. 7. 2013
- ORM test PHP frameworků – Qcodo, Recess 7. 8. 2013
- ORM test PHP frameworků – Seagull, Symfony 14. 8. 2013
- ORM test PHP frameworků – Yii, Zend Framework 21. 8. 2013
- ORM test PHP frameworků – PHP, závěr 28. 8. 2013
Nálepky:
Yii 1.1.13
Pod tímto jednoduchým názvem se ukrývá zkratka z anglického „Yes It Is!“, neboli ve volném překladu „Ano je!“, která má znázorňovat přesnou odpověď na nejčastější otázky pokládané při zjišťování vlastností tohoto frameworku. Dle oficiálního webu mezi ně patří například „Je Yii rychlý?“, „Je Yii spolehlivý?“ nebo „Je Yii bezpečný?“. Na všechny tyto dotazy by měl právě reagovat pouze název celého projektu. Mezi další klíčovou vlastnost celého jeho jádra patří obrovské využití objektového programování u základních komponent, které díky tomu lze využívat samostatně nebo velmi jednoduše k nim přidávat nové funkce. K nástrojům usnadňujících práci přímo při programování aplikace se řadí například generátor validního XHTML kódu nebo podpora grafických motivů a jednoduché změny celého vzhledu výsledného projektu. Aplikace napsaná pomocí Yii obsahuje ve svém základu výkonné zabezpečovací komponenty, které ji chrání před všemi různými typy útoků.
Vlastnosti:
- využívá objektové programování
- jednoduchá a rychlá tvorba aplikace
- využívá návrhový vzor MVC
- dobré zabezpečení
- generátor validního XHTML kódu
- podporuje motivy a různé vizuální změny aplikace
- vestavěná autentizace a autorizace
Požadavky pro použitou verzi:
- HTTP server
- PHP 5.1 (a vyšší)
- Databáze MySQL, SQLite, Postgre SQL, SQL Server…
Dokumentace a podpora:
Tento framework je velmi přehledně a podrobně zdokumentován a na oficiálních stránkách je i dostatečné množství návodů a ukázkových kódů. Dokumentace je publikována i v podobě tištěných knih. Kvůli rozsáhlému zájmu programátorů z různých zemí je stránka podpory rozdělena do různých jazykových kategorií. Komunikace s ostatními programátory probíhá přes diskuzní fórum, IRC kanál nebo různé blogy.
Výsledky testů:
- Test výběr (SELECT)
Test | Požadavků | Průměr [ms] | Medián [ms] | Min [ms] | Max [ms] | Prům. rychlost [KB/s] | Odchylka [ms] |
1. Měření | 3000 | 1972 | 1973 | 159 | 5612 | 1919,7 | 606 |
2. Měření | 3000 | 2173 | 2017 | 196 | 26994 | 1772,1 | 1269 |
3. Měření | 3000 | 1931 | 2003 | 168 | 2820 | 1977,4 | 388 |
Průměr | 3000 | 2025,3 | 1997,7 | 174,3 | 11808,7 | 1889,7 | 754,3 |
- Test vložení (INSERT)
Test | Požadavků | Průměr [ms] | Medián [ms] | Min [ms] | Max [ms] | Prům. rychlost [KB/s] | Odchylka [ms] |
1. Měření | 3000 | 746 | 790 | 107 | 1357 | 72,6 | 187 |
2. Měření | 3000 | 759 | 801 | 100 | 1328 | 71,8 | 188 |
3. Měření | 3000 | 805 | 819 | 118 | 4410 | 70,5 | 384 |
Průměr | 3000 | 770,0 | 803,3 | 108,3 | 2365,0 | 71,6 | 253,0 |
- Test úprava (UPDATE)
Test | Požadavků | Průměr [ms] | Medián [ms] | Min [ms] | Max [ms] | Prům. rychlost [KB/s] | Odchylka [ms] |
1. Měření | 3000 | 747 | 786 | 103 | 1657 | 72,2 | 197 |
2. Měření | 3000 | 764 | 802 | 103 | 1528 | 71,5 | 193 |
3. Měření | 3000 | 748 | 789 | 101 | 1454 | 72,4 | 198 |
Průměr | 3000 | 753,0 | 792,3 | 102,3 | 1546,3 | 72,0 | 196,0 |
- Test smazání (DELETE)
Test | Požadavků | Průměr [ms] | Medián [ms] | Min [ms] | Max [ms] | Prům. rychlost [KB/s] | Odchylka [ms] |
1. Měření | 3000 | 358 | 364 | 73 | 1320 | 97,7 | 137 |
2. Měření | 3000 | 383 | 398 | 78 | 1042 | 96,4 | 134 |
3. Měření | 3000 | 368 | 381 | 73 | 1151 | 96,9 | 127 |
Průměr | 3000 | 369,7 | 381,0 | 74,7 | 1171,0 | 97,0 | 132,7 |
- Test vše zároveň (ALL)
Test | Požadavků | Průměr [ms] | Medián [ms] | Min [ms] | Max [ms] | Prům. rychlost [KB/s] | Odchylka [ms] |
1. Měření | 12000 | 1019 | 807 | 82 | 3785 | 986,5 | 628 |
2. Měření | 12000 | 1050 | 812 | 85 | 7442 | 953,1 | 732 |
3. Měření | 12000 | 1014 | 805 | 82 | 3235 | 990,5 | 625 |
Průměr | 12000 | 1027,7 | 808,0 | 83,0 | 4820,7 | 976,7 | 661,7 |
Grafické znázornění:
Zend Framework 2.1.4
Zend framework je další oblíbený nástroj určený pro rychlou tvorbu robustních webových aplikací s pomocí jazyka PHP. V jeho struktuře je využito objektově orientované programování a návrhový vzor MVC a celé jádro je děleno na jednotlivé moduly, které lze využít samostatně. Implementovány jsou i užitečné autentizační a autorizační nástroje, které zprostředkovávají chráněný uživatelský přístup k aplikaci. Zajišťuje možnost komunikace s téměř všemi druhy nejčastěji používaných databází a v případě nekompatibility lze vytvořit nebo sehnat modul doplňující chybějící funkcionalitu.
Vlastnosti:
- rozsáhlá komunita programátorů
- využívá MVC návrhový vzor
- v jádru jsou implementovány autentizační a autorizační nástroje
- podpora pro multi-databázové systémy
- jednotlivé moduly jsou samostatně použitelné
- podporuje událostmi řízené systémy
Požadavky pro použitou verzi:
- HTTP server
- PHP 5.3.3 (a vyšší)
- Musí být povolena funkce mod_rewrite
- Databáze MySQL, SQLite, Postgre SQL, SQL Server…
Dokumentace a podpora:
Dokumentace je velmi podrobně a rozsáhle sepsána a lze se v ní snadno orientovat. K dispozici je velké množství jednoduchých návodů a ukázek kódu pro snadnější začátky a rychlé pochopení celé struktury. Náročnější programátor se může přihlásit i do různých výukových kurzů. Na domovských stránkách tohoto projektu lze s ostatními programátory komunikovat výhradně přes IRC kanál, ale díky jeho velkému rozšíření a oblíbenosti, je k dispozici mnoho stránek a článků věnovaných právě tomuto frameworku.
Výsledky testů:
- Test výběr (SELECT)
Test | Požadavků | Průměr [ms] | Medián [ms] | Min [ms] | Max [ms] | Prům. rychlost [KB/s] | Odchylka [ms] |
1. Měření | 3000 | 1125 | 1178 | 91 | 1586 | 1086,2 | 222 |
2. Měření | 3000 | 1378 | 1249 | 97 | 5798 | 896,2 | 613 |
3. Měření | 3000 | 1139 | 1189 | 91 | 1460 | 1082,2 | 220 |
Průměr | 3000 | 1214,0 | 1205,3 | 93,0 | 2948,0 | 1021,5 | 351,7 |
- Test vložení (INSERT)
Test | Požadavků | Průměr [ms] | Medián [ms] | Min [ms] | Max [ms] | Prům. rychlost [KB/s] | Odchylka [ms] |
1. Měření | 3000 | 1640 | 1660 | 180 | 5125 | 46,4 | 406 |
2. Měření | 3000 | 1604 | 1666 | 182 | 2139 | 47,4 | 282 |
3. Měření | 3000 | 1603 | 1664 | 162 | 2112 | 47,3 | 269 |
Průměr | 3000 | 1615,7 | 1663,3 | 174,7 | 3125,3 | 47,0 | 319,0 |
- Test úprava (UPDATE)
Test | Požadavků | Průměr [ms] | Medián [ms] | Min [ms] | Max [ms] | Prům. rychlost [KB/s] | Odchylka [ms] |
1. Měření | 3000 | 1661 | 1711 | 162 | 5226 | 45,6 | 435 |
2. Měření | 3000 | 1657 | 1716 | 165 | 2196 | 46 | 288 |
3. Měření | 3000 | 1653 | 1713 | 165 | 2197 | 46 | 286 |
Průměr | 3000 | 1657,0 | 1713,3 | 164,0 | 3206,3 | 45,9 | 336,3 |
- Test smazání (DELETE)
Test | Požadavků | Průměr [ms] | Medián [ms] | Min [ms] | Max [ms] | Prům. rychlost [KB/s] | Odchylka [ms] |
1. Měření | 3000 | 1461 | 1526 | 152 | 1980 | 51,7 | 266 |
2. Měření | 3000 | 1458 | 1518 | 158 | 1894 | 51,7 | 262 |
3. Měření | 3000 | 1450 | 1514 | 151 | 2133 | 51,7 | 275 |
Průměr | 3000 | 1456,3 | 1519,3 | 153,7 | 2002,3 | 51,7 | 267,7 |
- Test vše zároveň (ALL)
Test | Požadavků | Průměr [ms] | Medián [ms] | Min [ms] | Max [ms] | Prům. rychlost [KB/s] | Odchylka [ms] |
1. Měření | 12000 | 1730 | 1694 | 90 | 6517 | 224 | 455 |
2. Měření | 12000 | 1912 | 1967 | 93 | 3436 | 203,4 | 424 |
3. Měření | 12000 | 1528 | 1588 | 91 | 2760 | 253,3 | 268 |
Průměr | 12000 | 1723,3 | 1749,7 | 91,3 | 4237,7 | 226,9 | 382,3 |
Grafické znázornění:
…zajímavá statistická veličina. Tu nás ve statistice neučili…
Konecne! Ani jsem nemohl dospat, jak moc jsem se tesil na dalsi dil tohohle serialu .)
Zdravím,
Yii je už 10 dní ve verzi 1.1.14. Ne že by to mělo nějaký extra vliv na výkon, ale z principu nevidím důvod, proč používat starší verzi.
A co se týče toho popisku. Nejsem s Yii nějaký expert, ale popis mi přijde strašně zavádějící. Jakobyste z kontextu vytrhl jen nějaké info a další, které nezmíníte, vypadá jakoby neexistovalo.
Dobře to jde vidět na zavádějící informaci, že Yii má generátor validního XHTML kódu. Ano, Yii umí generovat například formuláře, ale mnohem větší síla je, že generuje i samotný PHP kód. Umí vygenerovat objekt modelu ale i všechny soubory potřebné pro CRUD operace, což už je hodně podstatné info, které se s generováním XHTML nedá moc rovnat.
Prva cast serie vysla 3.7.2013. Predpokladam, ze uz vtedy mal autor testy urobene. Seria je len zbytocne roztahana, aby sme mali pocit, ze na Zdrojaku vychadza aspon raz za tyzden nejaky clanok ;-). Tato seria ma vela nedostatkov, na ktore bolo poukazane v predoslych diskusiach. Myslim, ze uz bolo povedane vsetko a vsetci s radostou ocakavame final clanok :-).
To je predsa uplne jedno, ci je to verzia 1.1.13 alebo 1.1.14, aj tak tam ziadne vyrazne rozdiely nebudu.
Co znamená „Musí být povolena funkce mod_rewrite“ u „Požadavky pro použitou verzi“ u Nette FW? Nette přeci nevyžaduje mod_rewrite, nebo to vyžaduje server? To jsem teď asi napsal blbost… fakt nevím, co to má být.