Přejít k navigační liště

Zdroják » PHP » ORM test PHP frameworků – Kohana, Laravel

ORM test PHP frameworků – Kohana, Laravel

Články PHP

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.

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í:

Kohana grafy

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í:

Laravel grafy

Komentáře

Subscribe
Upozornit na
guest
9 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Fe

Nekdo ma teda nervy ze zeleza…

Jakub Polák

Autor asi necita komentare k svojim clankom, inac neviem pochopit, ze preco nespravil nejake zmeny …

Jakub Polák

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.

diverman

Mozna by se hodilo zobrazit statisticke rozlozeni („percentily“), napr. 25%, 50%=median, 90%, 99% nebo jeste lepe histogram :-)

vaclav.sir

„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…

Petr Prchal

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 :)

Jakub Mrozek

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ů.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.