ORM test PHP frameworků – Nette, Prado

V této části našeho seriálu se zaměřím na další dva velice známé frameworky, a to Nette a Prado.

Seriál: ORM test PHP frameworků (9 dílů)

  1. Spouštíme letní ORM test PHP frameworků 3.7.2013
  2. ORM test PHP frameworků – CakePHP, CodeIgniter 10.7.2013
  3. ORM test PHP frameworků – DooPHP, Jelix 17.7.2013
  4. ORM test PHP frameworků – Kohana, Laravel 26.7.2013
  5. ORM test PHP frameworků – Nette, Prado 31.7.2013
  6. ORM test PHP frameworků – Qcodo, Recess 7.8.2013
  7. ORM test PHP frameworků – Seagull, Symfony 14.8.2013
  8. ORM test PHP frameworků – Yii, Zend Framework 21.8.2013
  9. ORM test PHP frameworků – PHP, závěr 28.8.2013

Nette 2.0.8

Českého programátora jistě zaujme značně populární framework Nette, který vznikl jako projekt českého tvůrce webových aplikací v PHP. Jedná se o framework využívající MVC strukturu a objektové programování s velkým důrazem na bezpečnost aplikace. Obsahuje mnoho ladících nástrojů, které pomáhají programátorovi tvořit bezchybný kód. Pro práci s databází využívá Nette\Database, NotORM nebo Dibi knihovny, které podporují téměř všechny nejpoužívanější databázové formáty. Práce pomocí těchto knihoven je opravdu snadná a velmi rychlá.  Pro návrh celé aplikace se využívá velmi srozumitelný a přehledný kód.

Vlastnosti:

  • kvalitní ladící nástroje
  • dobré zabezpečení
  • podpora HTML 5, SEO, AJAX
  • využívá objektové programování a MVC
  • podpora v českém jazyce
  • rychlá práce s databází
  • srozumitelný a přehledný kód
  • využití Nette\Database, NotORM databáze nebo Dibi

Požadavky pro použitou verzi:

  • HTTP server
  • PHP 5.3 (a vyšší)

Dokumentace a podpora:

Dokumentace je velice jasně a přehledně napsána a pro českého programátora je příjemná změna, že je kompletně v českém jazyce. Je v ní obsaženo veliké množství ukázek a příkladů, což velmi usnadní pochopení celkového programu. Díky velké popularitě je zde k dispozici i rozsáhlá komunita programátorů webových aplikací, kteří komunikují přes oficiální diskuzní fórum a IRC kanál dostupné na domovských stránkách. K dispozici je i stránka Planette, ve které lze nalézt mnoho ukázkových příkladů v podobě již hotových aplikací nebo podrobných návodů.

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 887 943 67 1647 561,2 223
2. Měření 3000 891 963 69 1785 558,9 239
3. Měření 3000 925 991 69 5303 554,2 254
Průměr 3000 901,0 965,7 68,3 2911,7 558,1 238,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 556 591 84 996 65,5 154
2. Měření 3000 586 626 96 1277 65,4 156
3. Měření 3000 753 785 98 1561 50,7 209
Průměr 3000 631,7 667,3 92,7 1278,0 60,5 173,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 556 591 87 1011 67,8 148
2. Měření 3000 559 596 88 1071 68 153
3. Měření 3000 757 783 83 1434 51,9 210
Průměr 3000 624,0 656,7 86,0 1172,0 62,6 170,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 550 593 97 973 65,5 153
2. Měření 3000 552 588 86 1244 64,9 146
3. Měření 3000 735 769 93 1596 50,4 205
Průměr 3000 612,3 650,0 92,0 1271,0 60,3 168,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 719 687 68 1311 232,4 186
2. Měření 12000 523 552 43 926 67,3 163
3. Měření 12000 922 896 68 1977 178,3 256
Průměr 12000 721,3 711,7 59,7 1404,7 159,3 201,7

 

Grafické znázornění:

Nette grafy

PRADO 3.2.1

Název PRADO vznikl jako zkratka z anglického „PHP Rapid Application Development Object-oriented“, což vystihuje jeho základní vlastnosti, a to rychlý vývoj objektově orientovaných aplikací pomocí programovacího skriptovacího jazyka PHP. Rychlý vývoj samostatného projektu je podporován množstvím již implementovaných funkcí a nástrojů. Jedním z nich je například zabudovaná možnost pro autorizaci nebo autentifikaci, která je velice stabilní a připravená k okamžitému použití nebo užitečné validační funkce kontrolující správnost získávaných dat. Aplikace jsou řízeny pomocí událostí a používají komponentový přístup. Také využívají asynchronní funkce JavaSriptu a XML, neboli AJAX, díky kterému je stránka schopná měnit svůj obsah bez nutnosti obnovování a tím zrychlit interaktivnost s uživatelem.

Vlastnosti:

  • možnost různých přístupů k databázi
  • rychlý vývoj aplikace
  • obsahuje validační funkce
  • využívá XML
  • zabudovaná možnost autentifikace a autorizace
  • využívá AJAX

Požadavky pro použitou verzi:

  • HTTP server
  • PHP 5.3.3 (a vyšší)
  • Databáze SQLite, MySQL …

Dokumentace a podpora:

Celý framework je velmi dobře zdokumentován a obsahuje různé podpůrné zdroje. V jedné části se dokumentace zabývá prvními kroky a podrobnou výukou vývoje aplikace a v druhé je zaměřena na detailnější vysvětlení jednotlivých funkcí a struktury. Na domovských stránkách jsou k dispozici i výuková videa a ukázkové aplikace. Samozřejmě je zde obsaženo diskuzní fórum sloužící pro komunikaci s ostatními programátory a řešení specifických problé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 12826 12923 900 13722 74,96 810
2. Měření 3000 12907 12712 1045 17463 74,4 1079
3. Měření 3000 13315 12979 1004 22633 72,2 1927
Průměr 3000 13016,0 12871,3 983,0 17939,3 73,9 1272,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 973 1032 117 1428 17,98 220
2. Měření 3000 970 1018 130 1921 18 206
3. Měření 3000 956 1009 122 1518 18,3 214
Průměr 3000 966,3 1019,7 123,0 1622,3 18,1 213,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 980 1034 122 1463 17,86 221
2. Měření 3000 976 1034 112 1588 18,1 218
3. Měření 3000 967 1019 123 1419 18,1 212
Průměr 3000 974,3 1029,0 119,0 1490,0 18,0 217,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 984 1035 115 1517 17,88 214
2. Měření 3000 958 1007 119 1447 18,3 209
3. Měření 3000 953 1006 131 1458 18,3 216
Průměr 3000 965,0 1016,0 121,7 1474,0 18,2 213,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 4031 1097 154 14776 63,2 5188
2. Měření 12000 4028 1064 124 14856 63,1 5230
3. Měření 12000 5018 1421 136 25050 50,7 6781
Průměr 12000 4359,0 1194,0 138,0 18227,3 59,0 5733,0

 

Grafické znázornění:

Prado grafy

Student magisterského oboru Informační technologie na TUL. Jeho hlavní zálibou je programování webových aplikací nebo programů pro počítače a telefony. Oblíbené jazyky C#, Java, PHP. Velmi rád se učí novým věcem a nedokáže se od projektu odpoutat, dokud není dokončen. Pokud zrovna nepracuje vyráží na pěší výlety nebo na kolečkové brusle.

Komentáře: 19

Přehled komentářů

pepca
Jaroslav Jakoubě Re:
pavel.s Re:
Jaroslav Jakoubě Re:
Jakub Polák Re:
janek Re:
Jakub Polák Re:
Hmm Re:
Jan Jíša
Robert Jelen ORM
BB Re: ORM
Jaroslav Jakoubě Re: ORM
David Fake
frosty22 Výsledky testu
Moist LOL
bene Objektivita/smysl/relevance?
Jaroslav Jakoubě Re: Objektivita/smysl/relevance?
kaktuss
Jaroslav Jakoubě Re:
Zdroj: https://www.zdrojak.cz/?p=8846