ORM test PHP frameworků – Kohana, Laravel

V této části se dozvíte, jakých výsledků v porovnávacím zátěžovém testu dosáhly frameworky Kohana a Laravel.
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:
Kohana 3.3.0
Jedná se o velmi rozšířený, komunitou vytvořený aplikační framework, odvozený od původního CodeIgniter projektu. Ve své struktuře a návrhu aplikací využívá návrhový vzor MVC, přesněji HMVC. Jedná se o téměř stejný model, s tím rozdílem, že HMVC má pevně danou hierarchickou strukturu a přímou návaznost jednotlivých členů. Kohana nabízí možnost tvořit aplikace s BSD licencí, která umožňuje psát komerční aplikace. Jádro obsahuje velké množství užitečných ladících nástrojů, díky kterým lze jednoduše vyhledávat a odstraňovat problémy při tvorbě aplikace. Také je všechen „předepsaný“ kód velmi podrobně okomentován, díky tomu je v něm snadná orientace a není vždy nezbytné vyhledávat vysvětlení některých funkcí v dokumentaci. Hlavní podporovanou databází je MySQL, ale lze najít rozšiřující balíčky umožňující komunikaci s jinými formáty.
Vlastnosti:
- jednoduchá a rychlá tvorba aplikace
- možnost psát komerční aplikace (užívá BSD licenci)
- velmi dobře komentovaný kód
- jednoduchá práce s objekty
- užitečné ladící nástroje
- možnost rozšíření o další knihovny
Požadavky pro použitou verzi:
- HTTP server
- PHP 5.0. x (a vyšší)
- MySQL
Dokumentace a podpora:
Dokumentace se může zprvu zdát chaotická, ale časem si na ni čtenář zvykne a zjistí, že je celkem obsáhlá. Některé části nebo ukázky se při jejím studování nezobrazovaly, což mohlo být způsobeno krátkodobým výpadkem nebo jejich absencí. Ostatní programátory lze kontaktovat přes IRC kanál nebo diskuzní fórum, vše je dostupné na oficiálních stránkách.
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 | 737 | 754 | 69 | 1527 | 1043,7 | 215 |
2. Měření | 3000 | 935 | 875 | 72 | 4036 | 844,5 | 395 |
3. Měření | 3000 | 1159 | 1246 | 66 | 1720 | 700,8 | 304 |
Průměr | 3000 | 943,7 | 958,3 | 69,0 | 2427,7 | 863,0 | 304,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 | 229 | 232 | 66 | 631 | 24,6 | 80 |
2. Měření | 3000 | 207 | 212 | 64 | 464 | 23,2 | 75 |
3. Měření | 3000 | 208 | 210 | 64 | 589 | 22,8 | 79 |
Průměr | 3000 | 214,7 | 218,0 | 64,7 | 561,3 | 23,5 | 78,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 | 251 | 255 | 70 | 669 | 22,7 | 85 |
2. Měření | 3000 | 255 | 265 | 70 | 567 | 22,7 | 82 |
3. Měření | 3000 | 223 | 229 | 63 | 631 | 21,9 | 82 |
Průměr | 3000 | 243,0 | 249,7 | 67,7 | 622,3 | 22,4 | 83,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 | 242 | 249 | 68 | 580 | 23,2 | 79 |
2. Měření | 3000 | 225 | 231 | 65 | 581 | 22,1 | 80 |
3. Měření | 3000 | 223 | 231 | 61 | 472 | 22 | 76 |
Průměr | 3000 | 230,0 | 237,0 | 64,7 | 544,3 | 22,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 | 388 | 290 | 66 | 1272 | 533,3 | 236 |
2. Měření | 12000 | 377 | 279 | 65 | 1223 | 533,3 | 233 |
3. Měření | 12000 | 373 | 273 | 66 | 4020 | 521,4 | 244 |
Průměr | 12000 | 379,3 | 280,7 | 65,7 | 2171,7 | 529,3 | 237,7 |
Grafické znázornění:
Laravel 3.2.13
Laravel patří mezi jedny z nejpodrobněji zdokumentované frameworky. Struktura a návrh kódu je velmi intuitivní a pochopení jeho syntaxe je celkem jednoduché. Celé jádro obsahuje jen základní, i když rozsáhlou funkcionalitu, a lze ho rozšířit celou řadou přídavných balíčků, které jsou k dispozici přímo z domovské stránky. Samozřejmostí je i využití objektového programování a MVC návrhového vzoru.
Vlastnosti:
- velice rozsáhlá a podrobná dokumentace
- možnost rozšíření o různé typy balíčků
- jednoduchý a srozumitelný kód
- využití objektového programovaní
- využívá MVC strukturu
Požadavky pro použitou verzi:
- HTTP server
- PHP 5.3.x (a vyšší)
- MySQL, SQLite, Postgre SQL, SQL Server
Dokumentace a podpora:
Laravel poskytuje velmi rozsáhlou a přehlednou dokumentaci, která je doplněna o velké množství názorných příkladů, ukázkových aplikací nebo dokonce výukových videí. Také lze zakoupit knihu věnovanou právě tomuto frameworku a tím i trochu přispět k jeho dalšímu vývoji. Pro řešení témat, která nelze najít v dokumentaci, slouží velice frekventované diskuzní fórum a oficiální IRC kanál.
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 | 1134 | 1211 | 69 | 1818 | 941,8 | 315 |
2. Měření | 3000 | 826 | 845 | 73 | 2398 | 1245,7 | 276 |
3. Měření | 3000 | 1131 | 1183 | 72 | 2895 | 946,4 | 315 |
Průměr | 3000 | 1030,3 | 1079,7 | 71,3 | 2370,3 | 1044,6 | 302,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 | 232 | 231 | 61 | 631 | 77,2 | 85 |
2. Měření | 3000 | 239 | 244 | 67 | 565 | 76,5 | 83 |
3. Měření | 3000 | 309 | 305 | 67 | 933 | 62,6 | 117 |
Průměr | 3000 | 260,0 | 260,0 | 65,0 | 709,7 | 72,1 | 95,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 | 272 | 277 | 70 | 550 | 77,2 | 91 |
2. Měření | 3000 | 269 | 278 | 63 | 541 | 78,3 | 85 |
3. Měření | 3000 | 230 | 232 | 68 | 612 | 76,4 | 86 |
Průměr | 3000 | 257,0 | 262,3 | 67,0 | 567,7 | 77,3 | 87,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 | 229 | 236 | 67 | 544 | 77,7 | 80 |
2. Měření | 3000 | 267 | 275 | 66 | 709 | 79,1 | 85 |
3. Měření | 3000 | 235 | 237 | 64 | 664 | 77,1 | 83 |
Průměr | 3000 | 243,7 | 249,3 | 65,7 | 639,0 | 78,0 | 82,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 | 416 | 305 | 65 | 1182 | 691 | 259 |
2. Měření | 12000 | 557 | 415 | 68 | 2052 | 519,8 | 353 |
3. Měření | 12000 | 394 | 284 | 64 | 1905 | 695,4 | 252 |
Průměr | 12000 | 455,7 | 334,7 | 65,7 | 1713,0 | 635,4 | 288,0 |
Grafické znázornění:
Nekdo ma teda nervy ze zeleza…
Autor asi necita komentare k svojim clankom, inac neviem pochopit, ze preco nespravil nejake zmeny …
Autor komentáře čte, ale změny moc dělat nejdou.
Vím, že vše co je v jednotlivých částech uvedeno je nudná omáčka. Ale nelze vydat všechny části najednou a doufám, že až vyjde poslední díl, tak někteří čtenáři ocení i tyto, podle většiny zbytečné, části.
V tom pripade by bolo asi lepsie nudnu omacku vynechat (kedze aj tak ju asi nikto necita) a vysledky merani zhrnut v jednom clanku do prehladnych grafov.
Este poznamka – „Hlavní podporované databáze jsou MySQL a PDO“. – PDO nie databaza.
Grafy budou v posledním článku…
A děkuji za to PDO, to mělo být jako další odrážka. Nemohu to již upravit, ale požádám redakci.
Mozna by se hodilo zobrazit statisticke rozlozeni („percentily“), napr. 25%, 50%=median, 90%, 99% nebo jeste lepe histogram :-)
„Kohana nabízí možnost tvořit aplikace s BSD licencí, která umožňuje psát komerční aplikace.“ Wat?! „Hlavní podporované databáze jsou MySQL a PDO, ale lze najít rozšiřující balíčky umožňující komunikaci s jinými formáty.“ WAT?!
Jsem teprve u prvního odstavce a skoro se bojím číst dál…
Nemuzu si pomoc, tenhle serial je hrozne zlo… Jednak se testuji jen ORM (to uz koukam po moji minule pripomince dorazilo do titulku), druhak se testuji nejvic naivne (kde jsou joiny apod.), tretak se ani u tech frameworku snad nepise, jake ORM pouzivaji (nebo jsem to prehledl?) a navic je to hrozna nuda, cisla nevypovidajici o nicem a srovnani v poslednim dile… tohle se melo udelat v jednom clanku, minimalne by bylo mene hejtu :)
Myslím, že ten seriál mohl být hodně zajímavý, ale bohužel bez zdrojáků (a na Zdrojáku!) je ta informační hodnota nízká. Nebylo by možné zveřejnit zdrojáky a trochu je okomentovat? Mohlo to být něco jako TodoMVC pro PHP, tedy velmi jednoduchá todo aplikace postavená v různých frameworcích. Pak by bylo možné diskutovat odlišnosti frameworků.