ORM test PHP frameworků – Seagull, Symfony

V tomto díle se dozvíte naměřené výsledky dalších populárních frameworků, a to Seagull a Symfony.
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:
Seagull 1.0.4
Seagull je framework využitelný k tvorbě nejen webových projektů, ale také ho lze využít při návrhu konzolových aplikací nebo grafického uživatelského rozhraní. Ve svém kódu se zaměřuje výhradně na objektově orientované programování jazyka PHP, propojené s návrhovým vzorem MVC. Jádro celého frameworku je velice úsporně navrženo a lze ho rozšířit o velké množství různých doplňků nebo podpůrných funkcí. Jednou z důležitých vlastností je možnost různých druhů výstupu aplikace nebo jednoduché propojení s kódem třetí strany.
Vlastnosti:
- malé jádro s možností rozšíření
- využívá objektové programování
- použití MVC vzoru
- jednoduché propojení s kódem třetí strany
- různé formáty vstupu a výstupu
- rychlé vytvoření celé aplikace
Požadavky pro použitou verzi:
- HTTP server
- PHP 5.1 (a vyšší)
- Databáze MySQL, Postgre SQL nebo Oracle
Dokumentace a podpora:
Na oficiálních stránkách je dostupná nejen podrobná dokumentace v podobě projektu wiki, ale i velké množství ukázkových příkladů a výukových kusů kódu. Veškeré tyto informace lze stáhnout v offline verzi. Podporu nebo informace od ostatních programátorů využívajících framework Seagull lze získat pouze přes dostupné sociální sítě nebo přes kontaktní formulář.
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 | 1028 | 914 | 93 | 4664 | 2983 | 511 |
2. Měření | 3000 | 1063 | 912 | 88 | 4212 | 2934 | 543 |
3. Měření | 3000 | 1007 | 863 | 97 | 4686 | 3005,9 | 543 |
Průměr | 3000 | 1032,7 | 896,3 | 92,7 | 4520,7 | 2974,3 | 532,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 | 591 | 632 | 47 | 1113 | 348,9 | 178 |
2. Měření | 3000 | 577 | 606 | 98 | 1335 | 353,3 | 171 |
3. Měření | 3000 | 578 | 613 | 103 | 1123 | 349,9 | 173 |
Průměr | 3000 | 582,0 | 617,0 | 82,7 | 1190,3 | 350,7 | 174,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 | 608 | 644 | 93 | 1075 | 342,8 | 170 |
2. Měření | 3000 | 594 | 616 | 101 | 1351 | 346,7 | 178 |
3. Měření | 3000 | 588 | 629 | 94 | 1023 | 347,3 | 162 |
Průměr | 3000 | 596,7 | 629,7 | 96,0 | 1149,7 | 345,6 | 170,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 | 603 | 643 | 95 | 1318 | 346,8 | 163 |
2. Měření | 3000 | 600 | 637 | 95 | 1580 | 349 | 177 |
3. Měření | 3000 | 588 | 619 | 85 | 1257 | 347,9 | 165 |
Průměr | 3000 | 597,0 | 633,0 | 91,7 | 1385,0 | 347,9 | 168,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 | 959 | 958 | 91 | 1895 | 1076 | 240 |
2. Měření | 12000 | 699 | 690 | 93 | 1273 | 1437,1 | 153 |
3. Měření | 12000 | 729 | 717 | 93 | 1774 | 1431,8 | 154 |
Průměr | 12000 | 795,7 | 788,3 | 92,3 | 1647,3 | 1315,0 | 182,3 |
Grafické znázornění:
Symfony 2.2.0
Tento framework vznikl odvozením od projektu Mojavi3-DEV, který již využíval objektové programování. Současně se vyvíjí ve dvou různých verzích, kde každá z nich má troch jiné vlastnosti. Z části se nechal inspirovat jinými projekty, jako například Ruby on Rails, Django nebo Spring. Je velice oblíbený zejména díky snadnému vytváření jednotlivých aplikací nebo velkým možnosem rozšíření. Kompletní struktura má velmi stabilní jádro řízené programovacím skriptovacím jazykem PHP s využitím jeho objektového programování. Obsahuje různé užitečné nástroje, s jejichž pomocí lze například komunikovat s nejpoužívanějšími druhy dostupných databází. Vzhledem k jeho vysoké popularitě se na tvorbě a úpravách celého projektu podílí veliké množství různých programátorů.
Vlastnosti:
- velká podpora komunity programátorů
- jednoduchá tvorba aplikace
- využívá objektové programování
- využívá velké množství nástrojů
- možnost rozšíření
- vysoká stabilita
Požadavky pro použitou verzi (2.1.3):
- HTTP server
- PHP 5.3.3 (a vyšší)
- Databáze MySQL, SQLite, Postgre SQL…
Dokumentace a podpora:
Celý oficiální web je sepsán velmi zajímavou a čtivou formou. Tento způsob je dodržen i v celé přehledně strukturované a podrobné dokumentaci, kterou lze stáhnout i v podobě PDF knihy. Avšak chybí zde vetší množství ukázkových příkladů nebo již hotových aplikací, ale díky rozsáhlé komunitě lze najít spousta webů věnovaných právě frameworku Symfony. Komunikace mezi programátory probíhá na běžně používaných portálech zahrnujících vše od sociálních sítí, přes IRC kanály a diskuzní fóra až po klasickou osobní domluvu pomocí emailu.
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 | 4469 | 4675 | 236 | 5753 | 329,7 | 773 |
2. Měření | 3000 | 3213 | 3257 | 237 | 5534 | 458,2 | 365 |
3. Měření | 3000 | 3170 | 3241 | 218 | 8306 | 461 | 567 |
Průměr | 3000 | 3617,3 | 3724,3 | 230,3 | 6531,0 | 416,3 | 568,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 | 4054 | 3864 | 618 | 6995 | 8,8 | 767 |
2. Měření | 3000 | 3622 | 3590 | 455 | 6075 | 9,6 | 590 |
3. Měření | 3000 | 3699 | 3599 | 319 | 7065 | 9,4 | 682 |
Průměr | 3000 | 3791,7 | 3684,3 | 464,0 | 6711,7 | 9,3 | 679,7 |
- 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 | 3800 | 3802 | 331 | 6198 | 9 | 571 |
2. Měření | 3000 | 3752 | 3719 | 301 | 6442 | 9,2 | 630 |
3. Měření | 3000 | 3844 | 3732 | 346 | 7614 | 8,9 | 766 |
Průměr | 3000 | 3798,7 | 3751,0 | 326,0 | 6751,3 | 9,0 | 655,7 |
- 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 | 3204 | 3212 | 267 | 5586 | 10,6 | 540 |
2. Měření | 3000 | 3235 | 3190 | 283 | 6927 | 10,6 | 627 |
3. Měření | 3000 | 3275 | 3183 | 296 | 7553 | 10,4 | 725 |
Průměr | 3000 | 3238,0 | 3195,0 | 282,0 | 6688,7 | 10,5 | 630,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 | 3526 | 3484 | 228 | 6550 | 113,5 | 541 |
2. Měření | 12000 | 3526 | 3465 | 242 | 6586 | 113,5 | 572 |
3. Měření | 12000 | 3548 | 3455 | 316 | 11826 | 112,9 | 643 |
Průměr | 12000 | 3533,3 | 3468,0 | 262,0 | 8320,7 | 113,3 | 585,3 |
Grafické znázornění:
Takže pokračujeme opět v nicneříkajícím seriálu, ve stále stejně nudné formě.
Když už má jít o srovnávaní, nešlo by aspoň trochu sjednotit používané výrazy? Proč třeba jen u PostgreSQL se používá od Postgres, Postgre SQL, až po Postgre SGL — což ani přes upozornění přes twitter a diskusi stále není po více jak měsíci opraveno.
U jednoho frameworku je jedna odrážka pro OOP a MVC zároveň, jinde to jsou odrážky dvě.
Uznávám chyba je na mé straně.
K editaci je nezbytné kontaktovat redakci, což jsem chtěl udělat až vyjdou najevo veškeré nedostatky, které je nezbytné opravit, abych je mohl předělat najednou. (špatná volba) ;-)
Este kolko nicnehovoriacich dielov (opis a vlastnosti FWkov pozname, merania nam samostatne nic nedaju) bude nasledovat? Kedy predpokladate zverejnenie zaverecneho dielu?
Vyjde ještě jeden „nudný“ článek s Yii a Zendem a poté závěrečný díl.
Merime vykon ORM a zase tu neni ani uvedeno, jake ORM je pro testovani pouzito v jednotlivych frameworcich.. Snad se dockame napravy aspon v zaverecnem dile, ktery bude davat smysl…
Nikdo uceny z neba nespadol, ale ucit sa tym ze clovek publikuje na weboch ktore maju byt urcene pre profesionalov je trosku pritiahnute za vlasy. Ako je mozne ze redakcia necha prechadzat taketo „skvosty“? To je to leto az tak zle?