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

Zdroják » PHP » ORM test PHP frameworků – Yii, Zend Framework

ORM test PHP frameworků – Yii, Zend Framework

Články PHP

V této části se zaměřím na dva poslední frameworky, které byly zahrnuty do porovnávání. Jedná se o další velice známé nástroje Yii a Zend Framework.

Yii 1.1.13

Pod tímto jednoduchým názvem se ukrývá zkratka z anglického „Yes It Is!“, neboli ve volném překladu „Ano je!“, která má znázorňovat přesnou odpověď na nejčastější otázky pokládané při zjišťování vlastností tohoto frameworku. Dle oficiálního webu mezi ně patří například „Je Yii rychlý?“, „Je Yii spolehlivý?“ nebo „Je Yii bezpečný?“. Na všechny tyto dotazy by měl právě reagovat pouze název celého projektu. Mezi další klíčovou vlastnost celého jeho jádra patří obrovské využití objektového programování u základních komponent, které díky tomu lze využívat samostatně nebo velmi jednoduše k nim přidávat nové funkce. K nástrojům usnadňujících práci přímo při programování aplikace se řadí například generátor validního XHTML kódu nebo podpora grafických motivů a jednoduché změny celého vzhledu výsledného projektu. Aplikace napsaná pomocí Yii obsahuje ve svém základu výkonné zabezpečovací komponenty, které ji chrání před všemi různými typy útoků.

Vlastnosti:

  • využívá objektové programování
  • jednoduchá a rychlá tvorba aplikace
  • využívá návrhový vzor MVC       
  • dobré zabezpečení
  • generátor validního XHTML kódu
  • podporuje motivy a různé vizuální změny aplikace
  • vestavěná autentizace a autorizace

Požadavky pro použitou verzi:

  • HTTP server
  • PHP 5.1 (a vyšší)
  • Databáze MySQL, SQLite, Postgre SQL, SQL Server…

Dokumentace a podpora:

Tento framework je velmi přehledně a podrobně zdokumentován a na oficiálních stránkách je i dostatečné množství návodů a ukázkových kódů. Dokumentace je publikována i v podobě tištěných knih. Kvůli rozsáhlému zájmu programátorů z různých zemí je stránka podpory rozdělena do různých jazykových kategorií. Komunikace s ostatními programátory probíhá přes diskuzní fórum, IRC kanál nebo různé blogy.

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 1972 1973 159 5612 1919,7 606
2. Měření 3000 2173 2017 196 26994 1772,1 1269
3. Měření 3000 1931 2003 168 2820 1977,4 388
Průměr 3000 2025,3 1997,7 174,3 11808,7 1889,7 754,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 746 790 107 1357 72,6 187
2. Měření 3000 759 801 100 1328 71,8 188
3. Měření 3000 805 819 118 4410 70,5 384
Průměr 3000 770,0 803,3 108,3 2365,0 71,6 253,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 747 786 103 1657 72,2 197
2. Měření 3000 764 802 103 1528 71,5 193
3. Měření 3000 748 789 101 1454 72,4 198
Průměr 3000 753,0 792,3 102,3 1546,3 72,0 196,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 358 364 73 1320 97,7 137
2. Měření 3000 383 398 78 1042 96,4 134
3. Měření 3000 368 381 73 1151 96,9 127
Průměr 3000 369,7 381,0 74,7 1171,0 97,0 132,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 1019 807 82 3785 986,5 628
2. Měření 12000 1050 812 85 7442 953,1 732
3. Měření 12000 1014 805 82 3235 990,5 625
Průměr 12000 1027,7 808,0 83,0 4820,7 976,7 661,7

 

Grafické znázornění:

Yii grafy

Zend Framework 2.1.4

Zend framework je další oblíbený nástroj určený pro rychlou tvorbu robustních webových aplikací s pomocí jazyka PHP. V jeho struktuře je využito objektově orientované programování a návrhový vzor MVC a celé jádro je děleno na jednotlivé moduly, které lze využít samostatně. Implementovány jsou i užitečné autentizační a autorizační nástroje, které zprostředkovávají chráněný uživatelský přístup k aplikaci. Zajišťuje možnost komunikace s téměř všemi druhy nejčastěji používaných databází a v případě nekompatibility lze vytvořit nebo sehnat modul doplňující chybějící funkcionalitu.

Vlastnosti:

  • rozsáhlá komunita programátorů
  • využívá MVC návrhový vzor
  • v jádru jsou implementovány autentizační a autorizační nástroje
  • podpora pro multi-databázové systémy
  • jednotlivé moduly jsou samostatně použitelné
  • podporuje událostmi řízené systémy

Požadavky pro použitou verzi:

  • HTTP server
  • PHP 5.3.3 (a vyšší)
  • Musí být povolena funkce mod_rewrite
  • Databáze MySQL, SQLite, Postgre SQL, SQL Server…

Dokumentace a podpora:

Dokumentace je velmi podrobně a rozsáhle sepsána a lze se v ní snadno orientovat. K dispozici je velké množství jednoduchých návodů a ukázek kódu pro snadnější začátky a rychlé pochopení celé struktury. Náročnější programátor se může přihlásit i do různých výukových kurzů. Na domovských stránkách tohoto projektu lze s ostatními programátory komunikovat výhradně přes IRC kanál, ale díky jeho velkému rozšíření a oblíbenosti, je k dispozici mnoho stránek a článků věnovaných právě tomuto frameworku. 

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 1125 1178 91 1586 1086,2 222
2. Měření 3000 1378 1249 97 5798 896,2 613
3. Měření 3000 1139 1189 91 1460 1082,2 220
Průměr 3000 1214,0 1205,3 93,0 2948,0 1021,5 351,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 1640 1660 180 5125 46,4 406
2. Měření 3000 1604 1666 182 2139 47,4 282
3. Měření 3000 1603 1664 162 2112 47,3 269
Průměr 3000 1615,7 1663,3 174,7 3125,3 47,0 319,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 1661 1711 162 5226 45,6 435
2. Měření 3000 1657 1716 165 2196 46 288
3. Měření 3000 1653 1713 165 2197 46 286
Průměr 3000 1657,0 1713,3 164,0 3206,3 45,9 336,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 1461 1526 152 1980 51,7 266
2. Měření 3000 1458 1518 158 1894 51,7 262
3. Měření 3000 1450 1514 151 2133 51,7 275
Průměr 3000 1456,3 1519,3 153,7 2002,3 51,7 267,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 1730 1694 90 6517 224 455
2. Měření 12000 1912 1967 93 3436 203,4 424
3. Měření 12000 1528 1588 91 2760 253,3 268
Průměr 12000 1723,3 1749,7 91,3 4237,7 226,9 382,3

 

Grafické znázornění:

Zend grafy

Komentáře

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

…zajímavá statistická veličina. Tu nás ve statistice neučili…

yed_

Konecne! Ani jsem nemohl dospat, jak moc jsem se tesil na dalsi dil tohohle serialu .)

Ondřej Vašíček

Zdravím,
Yii je už 10 dní ve verzi 1.1.14. Ne že by to mělo nějaký extra vliv na výkon, ale z principu nevidím důvod, proč používat starší verzi.

A co se týče toho popisku. Nejsem s Yii nějaký expert, ale popis mi přijde strašně zavádějící. Jakobyste z kontextu vytrhl jen nějaké info a další, které nezmíníte, vypadá jakoby neexistovalo.

Dobře to jde vidět na zavádějící informaci, že Yii má generátor validního XHTML kódu. Ano, Yii umí generovat například formuláře, ale mnohem větší síla je, že generuje i samotný PHP kód. Umí vygenerovat objekt modelu ale i všechny soubory potřebné pro CRUD operace, což už je hodně podstatné info, které se s generováním XHTML nedá moc rovnat.

kaktuss

Prva cast serie vysla 3.7.2013. Predpokladam, ze uz vtedy mal autor testy urobene. Seria je len zbytocne roztahana, aby sme mali pocit, ze na Zdrojaku vychadza aspon raz za tyzden nejaky clanok ;-). Tato seria ma vela nedostatkov, na ktore bolo poukazane v predoslych diskusiach. Myslim, ze uz bolo povedane vsetko a vsetci s radostou ocakavame final clanok :-).

Jakub Polák

To je predsa uplne jedno, ci je to verzia 1.1.13 alebo 1.1.14, aj tak tam ziadne vyrazne rozdiely nebudu.

iiic

Co znamená „Musí být povolena funkce mod_rewrite“ u „Požadavky pro použitou verzi“ u Nette FW? Nette přeci nevyžaduje mod_rewrite, nebo to vyžaduje server? To jsem teď asi napsal blbost… fakt nevím, co to má být.

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.