ORM test PHP frameworků – DooPHP, Jelix

V tomto díle srovnávání frameworků se podíváme na výsledky projektů psaných s pomocí DooPHP a francouzského frameworku Jelix.
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:
DooPHP 1.4.1
DooPHP obsahuje jádro s menší paměťovou náročností, z čehož vyplývá, že v základě nepoužívá nadbytečné knihovny. Jedná se o framework s otevřeným kódem určeným pro rychlou tvorbu robustních aplikací. Je zaměřený výhradně na využívání objektového programování jazyka PHP. Vytvořené aplikace následně patří do skupiny s malým otiskem použitého frameworku.
Vlastnosti:
- jednoduchá struktura
- snadno pochopitelný kód
- zanechává malý „otisk“
- malá paměťová náročnost
- dobrá flexibilita
Požadavky pro použitou verzi:
- PHP 5.1.x a vyšší
- Apache server
- MySQL, Postgre SQL
Dokumentace a podpora:
Na oficiálních stránkách lze nalézt celkem rozsáhle zpracovanou dokumentaci, ovšem s trochu nepřehledným uspořádáním. Je jednodušší v ní najít vysvětlení nějaké funkce, než návod do začátků. To je způsobeno, alespoň pro mě, nelogickým umístěním odkazů na jednotlivé stránky. Na stránkách jsou dostupné i již hotové ukázkové aplikace. Pro případné dotazy, nebo k řešení témat neobsažených v návodech, lze využít IRC kanál, diskuzní fórum nebo oficiální blog.
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 | 236 | 237 | 24 | 722 | 1329,2 | 107 |
2. Měření | 3000 | 274 | 267 | 27 | 656 | 1232,5 | 110 |
3. Měření | 3000 | 238 | 259 | 24 | 469 | 1335 | 92 |
Průměr | 3000 | 249,3 | 254,3 | 25,0 | 615,7 | 1298,9 | 103,0 |
- 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 | 155 | 149 | 59 | 845 | 41,9 | 64 |
2. Měření | 3000 | 133 | 121 | 56 | 694 | 41,4 | 52 |
3. Měření | 3000 | 180 | 151 | 58 | 590 | 34 | 94 |
Průměr | 3000 | 156,0 | 140,3 | 57,7 | 709,7 | 39,1 | 70,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 | 181 | 180 | 53 | 613 | 38,5 | 64 |
2. Měření | 3000 | 154 | 149 | 53 | 368 | 37,5 | 55 |
3. Měření | 3000 | 229 | 202 | 59 | 583 | 29 | 116 |
Průměr | 3000 | 188,0 | 177,0 | 55,0 | 521,3 | 35,0 | 78,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 | 179 | 184 | 60 | 441 | 39 | 61 |
2. Měření | 3000 | 153 | 142 | 55 | 467 | 38,2 | 59 |
3. Měření | 3000 | 236 | 213 | 60 | 616 | 29 | 115 |
Průměr | 3000 | 189,3 | 179,7 | 58,3 | 508,0 | 35,4 | 78,3 |
- 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 | 192 | 187 | 24 | 651 | 573,6 | 73 |
2. Měření | 12000 | 173 | 166 | 24 | 1024 | 569,1 | 66 |
3. Měření | 12000 | 271 | 251 | 24 | 878 | 389,6 | 125 |
Průměr | 12000 | 212,0 | 201,3 | 24,0 | 851,0 | 510,8 | 88,0 |
Grafické znázornění:
Jelix 1.5.0
Tento francouzský framework využívá programovací skriptovací jazyk PHP s doplněním o vlastní šablonovací systém s příponou *.jTpl. Obsahuje také podporu MVC návrhového vzoru a dalších moderních nástrojů. Jeho velká výhoda je podpora různých formátů výstupu obsahujících nejen standardní (X)HTML, ale také například RSS, ZIP, PDF, RDF, XUL… Od většiny ostatních se tento projekt liší tím, že pro vytvoření celého projektu nebo potřebných DAO objektů je zapotřebí využít příkazový řádek. Velikou výhodou je možnost výběru z různých jednoduchých grafických rozhraní, která jsou již předdefinována a stačí je jen propojit s požadovanou funkcionalitou. K dispozici je i snadná rozšiřitelnost celého jádra o nové doplňkové nástroje.
Vlastnosti:
- snadné vytvoření aplikace pomocí příkazové řádky
- využívá MVC a DAO objekty
- jednoduchá rozšiřitelnost
- různé formáty výstupů ((X)HTML, ATOM, RSS, ZIP, PDF, RDF, XUL…)
- využívá vlastní šablonovací systém jTpl
Požadavky pro použitou verzi:
- PHP 5.3 nebo vyšší
- DOM api pro práci s XML
- Databáze MySQL 4.1(a vyšší), Postgre SQL 8.0(a vyšší), SQLite
Dokumentace a podpora:
Komunita podporující Jelix není příliš rozsáhlá, a to se projevuje i na dokumentaci. I přes její přehlednost zde chybí názorné návody a podrobnější příklady u novějších dostupných verzí. Sice na oficiálních stránkách jsou k dispozici návody pro starší distribuce, ale ty někdy využívají funkce, které již nejsou dostupné a byly nahrazeny novějšími. Z těchto důvodů je zde velmi užitečná podpora ostatních příznivců Jelix frameworku, která je k dispozici v podobě oficiálního blogu, IRC kanálu, diskuzního fóra nebo stránek věnovaných rozšiřujícím doplňkům.
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 | 480 | 452 | 41 | 2183 | 2884,7 | 258 |
2. Měření | 3000 | 554 | 534 | 44 | 2272 | 2618,5 | 257 |
3. Měření | 3000 | 537 | 512 | 39 | 1951 | 2643,7 | 251 |
Průměr | 3000 | 523,7 | 499,3 | 41,3 | 2135,3 | 2715,6 | 255,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 | 430 | 435 | 75 | 1117 | 1114,7 | 151 |
2. Měření | 3000 | 534 | 519 | 79 | 1534 | 956,8 | 214 |
3. Měření | 3000 | 443 | 445 | 79 | 1634 | 1026,6 | 175 |
Průměr | 3000 | 469,0 | 466,3 | 77,7 | 1428,3 | 1032,7 | 180,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 | 450 | 456 | 82 | 1284 | 1113,3 | 141 |
2. Měření | 3000 | 626 | 589 | 83 | 3428 | 799,5 | 333 |
3. Měření | 3000 | 492 | 478 | 86 | 1640 | 941,3 | 196 |
Průměr | 3000 | 522,7 | 507,7 | 83,7 | 2117,3 | 951,4 | 223,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 | 414 | 421 | 83 | 1093 | 1110 | 142 |
2. Měření | 3000 | 530 | 510 | 89 | 1613 | 951,3 | 211 |
3. Měření | 3000 | 427 | 423 | 81 | 3210 | 1077,3 | 188 |
Průměr | 3000 | 457,0 | 451,3 | 84,3 | 1972,0 | 1046,2 | 180,3 |
- 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 | 452 | 450 | 40 | 1682 | 1768,9 | 154 |
2. Měření | 12000 | 387 | 376 | 46 | 1356 | 2031,2 | 133 |
3. Měření | 12000 | 443 | 442 | 43 | 1894 | 1766,4 | 157 |
Průměr | 12000 | 427,3 | 422,7 | 43,0 | 1644,0 | 1855,5 | 148,0 |
Grafické znázornění:
Docela by mne zajímalo, kolik čtenářů ty tabulky se spoustou čísel čte. A kolik je prostě přeskočí k nějaké zajímavé informaci, třeba nějaké závěry z těchto čísel. Co takhle defaultně schovat ony tabulky se jednotlivými měřeními a zobrazit je až na vyžádání?
Jinak když už se dělá opakování měření, nestálo by za to uvést i statistickou odchylku? A udělat těch měčení třeba aspoň pět, nebo deset?
Nešlo by se trochu zamyslet nad formou grafů? Třeba aspoň přidat nějaké referenční hodnoty — buďto celkový průměr napříč frameworky, nebo jeden vyvolený framework?
Nikdo. A proč? Podle komentářů od autora od prvního článku: protože nevěděl, jak frameworky porovnat, tak se rozhodl udělat srovnání něčeho, co změří. Chvályhodné, ale bohužel místo založení mimo veřejně dostupné prostory z toho udělal velký letní seriál. Bude z něj dobrý vysokoškolský učitel, dělat zbytečné tabulky už umí… Ale nejde vinit jen autora, protože tady zaspala redakce. Už i jí to asi dochází, protože na Twitteru nejsou zprávy o nových úžasných dílech.
Souhlasím, je to nudná „dlouhá“ šeď. Nic neříkající grafy, žádné srovnání, žádné ukázky kódu, prostě nic.. Nejlepší by bylo to vydat jako jeden článek kde by se vše shrnulo, porovnalo,atd.. takhle tu máme každý týden jeden článek který nikomu nic nedá. ( bohužel )