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

Zdroják » PHP » ORM test PHP frameworků – DooPHP, Jelix

ORM test PHP frameworků – DooPHP, Jelix

Články PHP

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.

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

DooPHP grafy

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

Jelix grafy

Komentáře

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

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?

Honza

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.

pavel.s

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 )

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.

Pocta C64

Za prvopočátek své programátorské kariéry vděčím počítači Commodore 64. Tehdy jsem genialitu návrhu nemohl docenit. Dnes dokážu lehce nahlédnout pod pokličku. Chtěl bych se o to s vámi podělit a vzdát mu hold.