ORM test PHP frameworků – Qcodo, Recess

Tento další díl seriálu věnovanému testování PHP frameworků je zaměřen na výsledky projektů vytvořených pomocí frameworků Qcodo a Recess.
Seriál: ORM test PHP frameworků (9 dílů)
- 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
Nálepky:
Qcodo 0.4.22
Qcodo je PHP framework, ve kterém lze jednoduše vytvořit jako malou, tak i robustní webovou aplikaci. Při tvorbě se používá metoda přetváření existujícího datového modelu na model objektově relační, ke kterému jsou přidávány doplňkové funkce. Obsahuje snadné generátory kódu využívající výhradně vlastností PHP a AJAX. V jádru jsou zabudovány nástroje pro práci s databází využívající techniku objektově relačního mapování neboli ORM.
Vlastnosti:
- využívá ORM
- obsahuje generátory kódu
- kompletní podpora PHP a AJAX
- zabudovány nástroje pro práci s databází
- jednoduchá instalace
Požadavky pro použitou verzi:
- HTLM server
- PHP 5.2.x (a vyšší)
- Databáze MySQL, Postgre SQL, MSSQL, SQLite…
Dokumentace a podpora:
Stránky pro dokumentaci jsou celkem nepřehledně umístěny a jsou chaotické a ne příliš obsáhlé. Ale na druhou stranu je na domovských stránkách k dispozici větší množství ukázkových kódů a nalezneme zde i hotové aplikace a ukázková videa. Podpora je zprostředkována přes diskuzní fórum a oficiální blog, naneštěstí mi přišly stejně nepřehledné jako dokumentace.
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 | 2708 | 2703 | 249 | 3541 | 1002,7 | 457 |
2. Měření | 3000 | 2747 | 2830 | 228 | 3169 | 996,3 | 364 |
3. Měření | 3000 | 2803 | 2840 | 220 | 10205 | 973,6 | 706 |
Průměr | 3000 | 2752,7 | 2791,0 | 232,3 | 5638,3 | 990,9 | 509,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 | 279 | 286 | 68 | 736 | 51,3 | 105 |
2. Měření | 3000 | 275 | 285 | 65 | 649 | 51,9 | 102 |
3. Měření | 3000 | 271 | 276 | 66 | 1058 | 51,3 | 112 |
Průměr | 3000 | 275,0 | 282,3 | 66,3 | 814,3 | 51,5 | 106,3 |
- 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 | 284 | 294 | 71 | 673 | 50 | 104 |
2. Měření | 3000 | 292 | 298 | 69 | 607 | 50,2 | 103 |
3. Měření | 3000 | 308 | 280 | 75 | 4093 | 47 | 379 |
Průměr | 3000 | 294,7 | 290,7 | 71,7 | 1791,0 | 49,1 | 195,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 | 290 | 297 | 78 | 704 | 54,5 | 93 |
2. Měření | 3000 | 276 | 282 | 69 | 736 | 51,9 | 98 |
3. Měření | 3000 | 288 | 295 | 74 | 603 | 52,5 | 97 |
Průměr | 3000 | 284,7 | 291,3 | 73,7 | 681,0 | 53,0 | 96,0 |
- 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 | 1021 | 378 | 72 | 5909 | 688,5 | 1192 |
2. Měření | 12000 | 1052 | 387 | 40 | 8999 | 656,4 | 1292 |
3. Měření | 12000 | 927 | 344 | 69 | 3524 | 741,9 | 1068 |
Průměr | 12000 | 1000,0 | 369,7 | 60,3 | 6144,0 | 695,6 | 1184,0 |
Grafické znázornění:
Recess 0.20
Tento framework využívá ke svému chodu jádro s velmi nízkou paměťovou náročností, které ve výsledné aplikaci zanechává jen malý otisk použitého projektu. Lze ho rozšířit o velké množství funkcí a nástrojů usnadňujících celý proces programování. V základní konfiguraci jsou zahrnuty velmi užitečné ladící a diagnostické nástroje, které pomáhají tvořit bezchybný a plně funkční kód. Návrh celé aplikace se řídí vlastnostmi objektového programování skriptovacího jazyka PHP, s využitím deklarací v poznámkách. Pro komunikaci s různými typy databází je použito objektově relační mapování, které automaticky propojuje výsledky se strukturou objektového programování. Využívá návrhový vzor MVC, díky kterému je velice přehledná i celá výsledná struktura aplikace. K bezchybnému přesměrovávání za běhu Recess doporučuje mít povolen modul mod_rewrite, který usnadňuje práci s URL adresami.
Vlastnosti:
- využívá deklarace v poznámkách
- využívá ORM pro práci s databází
- obsahuje nástroje pro diagnostiku a ladění
- využívá MVC strukturu
- malá velikost celkového jádra
Požadavky pro použitou verzi:
- Apache server
- PHP 5.2.4 (a vyšší)
- Doporučeno je využít mod_rewrite
Dokumentace a podpora:
Veškeré návody a vysvětlení jednotlivých funkcí jsou zpracovány v podobě přehledné online dokumentace dostupné na domovských stránkách nebo ve formě tištěné knihy. Případné dotazy nebo nové nápady lze sdílet s ostatními programátory webových aplikací prostřednictvím diskuzního fóra (bohužel v době testu bylo nefunkční), blogu a oficiálního IRC kanálu.
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 | 1459 | 1505 | 142 | 2097 | 2527,1 | 294 |
2. Měření | 3000 | 1455 | 1514 | 148 | 2137 | 2539 | 276 |
3. Měření | 3000 | 1464 | 1510 | 133 | 2553 | 2529,1 | 304 |
Průměr | 3000 | 1459,3 | 1509,7 | 141,0 | 2262,3 | 2531,7 | 291,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 | 433 | 447 | 74 | 926 | 12,4 | 146 |
2. Měření | 3000 | 440 | 465 | 84 | 1187 | 12,4 | 139 |
3. Měření | 3000 | 444 | 465 | 80 | 1506 | 12,2 | 146 |
Průměr | 3000 | 439,0 | 459,0 | 79,3 | 1206,3 | 12,3 | 143,7 |
- 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 | 489 | 518 | 80 | 988 | 11,9 | 154 |
2. Měření | 3000 | 468 | 497 | 76 | 1015 | 11,9 | 142 |
3. Měření | 3000 | 469 | 493 | 78 | 912 | 11,8 | 141 |
Průměr | 3000 | 475,3 | 502,7 | 78,0 | 971,7 | 11,9 | 145,7 |
- 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 | 473 | 500 | 74 | 1346 | 12,2 | 146 |
2. Měření | 3000 | 468 | 499 | 79 | 1038 | 12,4 | 141 |
3. Měření | 3000 | 434 | 462 | 79 | 980 | 12,4 | 138 |
Průměr | 3000 | 458,3 | 487,0 | 77,3 | 1121,3 | 12,3 | 141,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 | 761 | 545 | 73 | 2120 | 1229,8 | 469 |
2. Měření | 12000 | 762 | 543 | 75 | 2789 | 1231,8 | 472 |
3. Měření | 12000 | 757 | 541 | 76 | 2063 | 1231,7 | 471 |
Průměr | 12000 | 760,0 | 543,0 | 74,7 | 2324,0 | 1231,1 | 470,7 |
Grafické znázornění:
Bezcenny a zle postaveny test. Ako keby ho pisal nejaky studentik.
Ano jsem student to nepopírám, mám to napsané i v informacích u tohoto účtu.
Nicméně nikdo není přes noc odborník a někde se musí naučit nové poznatky a kde by to šlo lépe, než na portále plném moudrých programátorů komentátorů;-)
Vazne ti prijde tenhle zpusob vyuky nejlepsi? Neco hrozne sprasit a nechat si od internetu nadavat :) ? Neni spravny postup naucit se nejakou technologii (nebo aspon pochopit to, co merim) a pak o tom napsat clanek?
> Nicméně nikdo není přes noc odborník
To nikdo nepopírá. Ale ne každý publikuje na odborném serveru :)