Upload
andras-rutkai
View
592
Download
0
Embed Size (px)
DESCRIPTION
PHP alapú keretrendszerek összehasonlítása. A diplomamunka védésen vetített diasor. Keretrendszerek: Zend Framework, Symfony, Yii, Codeigniter http://phpframeworks.rutkai.hu/
Citation preview
PHP alapú keretrendszerek összehasonlításaKészítette: Rutkai András
A PHP alapú keretrendszerek fontossága
• A webes alkalmazások iránti érdeklődés egyre nő
– Felhő
– Vékony kliens
• A legtöbb esetben ezek PHP alapúak
• PHP alapú keretrendszerek
Miért nehéz választani?
Miért nehéz választani?
• Nincsenek jó összehasonlítások
– Rövidek
– Nem részletesek
– Többnyire a nyújtott funkciókat vetik össze
– …vagy a teljesítményt
A kiválasztott keretrendszerek
Felépítés
• Példaprogramok segítségével illusztrálva
• A felmerülő jellemző feladatok elkészítése
– CRUD
– Naplózás
– Fordítás
– Munkamenet
– REST (webszolgáltatások)
– Felhasználó kezelés
• Szempontok
– Telepítés
– Dokumentáció
– Belső felépítés
– Modularizáltság
– Sablonozás
– Adatbázis kezelés
– Űrlapok
– E-mail küldés
– Naplózás
– Nyelvi támogatás
– REST
– Jogosultság-kezelés
– Egyéb feladatok
– Hatékonyság
– Biztonság
– Közösségek, támogatás
Fejlesztői dokumentáció, közösségi aktivitás
• Codeigniter
– Dokumentáció nagyon jó
– Közösség és vállalati támogatás alig
• Symfony
– Dokumentáció nem teljes
– Pezsgő közösség
– Vállalati támogatás
• Yii
– Nehezen áttekinthető dokumentáció
– Kis közösségi aktivitás
• Zend Framework
– Gyenge dokumentáció
– Kiemelkedő vállalati támogatás
Belső felépítés, modularizáltság, hatékonyság
• Kódméret Szolgáltatások
• Codeigniterben nincs modularizáltság
• Symfony ésZend teljesmértékbenkomponensalapú
– Composer
0
100
200
300
400
500
600
0
50000
100000
150000
200000
250000
300000
350000
400000
Codeigniter Symfony Yii Zend framework
Keretrendszer mérete (kódsorok száma) Lekérdezések száma másodpercenként
Sablonozás
• Az egyszerű:Codeigniter
• A sokoldalú:Symfony
• A widgetes:Yii
• Az automatikus:Zend Framework
Fejléc
LáblécB
al p
an
el
Jo
bb
pa
ne
l
Tartalom
Adatbázis kezelés
• Yii kódgenerálás
LegsokoldalúbbLegegyszerűbb
Űrlapok készítése, biztonság
• Codeigniterben az űrlap és a nézet összeolvad, a validáció viszont különálló
• Modellből űrlap Yii
• Űrlaposztály Symfonyban és Zendben
• Biztonság:
SQL befecskendezésXSS (Oldalon Keresztüli
Scriptelés)CSRF (Oldalon Keresztüli
Kéréshamisítás)
Codeigniter
Symfony
Yii
Zend Framework /
Kapcsolattartás e-mail segítségével
• Codeigeniter
– Hibakeresés
– Nincs HTML mellé Text
• Yii
– Nincs beépített támogatás• Nincs sablonozás
• Symfony
– Kikapcsolható
– Ütemezhetőség
• Zend Framework
– Függőség befecskendezés
– Ütemezhetőség
Események rögzítése a naplózás segítségével
• Codeigniter: rögtön használható, de nem sokoldalú
• Yii: sok kimenet, furcsa hibaszintek
• Symfony: testreszabható formátum
• Zend: naplózás adatbázisba
Nyelvi támogatás
Codeigniterbenminden kézzel
Yiiben többes szám kezelés
Symfony a fájlformátumok királya
Zendben mindenhez van támogatás
Azonosítás és jogosultságkezelés
• Codeigniterben nincs beépített támogatás
• Yiiben ez is generált részben
• Zendben erős támogatás a keretrendszer oldaláról
• Symfonyban erős támogatás a közösség oldaláról
Nem szokványos feladatok
Codeigniter Symfony YiiZend
Framework
Parancssori interfész
Egységteszt támogatás
Profilozó
FTP (File Transfer Protocol) ()
Képmanipulálás
Mobil felület detektálása ()
Tömörítés
Fájlkezelés
Lapozó
Navigáció (menü, kenyérmorzsák, oldaltérkép)
Szerializálás
NoSQL adatbázis-kezelő támogatása
RSS (Rich Site Summary) /ATOM feed támogatás
PDF generálás ()
Tehát melyik a legjobb keretrendszer?
• Ahogy sejtettük: nincs legjobb keretrendszer
• A legtöbb kategóriának van győztese
• …de ez nem mindig ugyanaz!
• Akkor mi a konklúzió?
Eredmények
• A valódi kérdés: egy feladatra melyik a legjobb keretrendszer?
• Kis méretű alkalmazások fejlesztéséhez?Codeigniter
• Vállalati környezetben a vállalati igényekhez alkalmazkodva?
Yii, Zend Framework
• Ha gyorsan kell egy alkalmazást elkészíteni?Symfony
Köszönöm a figyelmet!