php keretrendszerek iv.

Avagy Zend vs Symfony I.

Sajnos igazán behatóan egyik rendszert sem ismerem, de egy-egy kisebb projektet már összeraktam a másik két rendszerrel is, a hivatalos tutorialokat végigcsináltam, így talán mondhatom, hogy rálátásom már van.

Érdemes megjegyezni, hogy a Zend Frameworköt nagyon sokan egy komponens-könyvtárnak tartják, de ez csak annyiban igaz, hogy akként is hibátlanul funkcionál. Ugyanakkor szerintem (majdnem) mindenre képes, amit egy modern MVC rendszertől elvárhatunk, ellenben ezt a struktúrát egyáltalán nem kényszeríti a felhasználókra.

Fejlesztés

Úgy érzem a Zend mellett szólhat, hogy amögött sokkal inkább konszenzus van, míg a Symfonyt egy egyszemélyes hadjáratként jellemzik. Az igazság viszont az, hogy Potencier elég jó programozó ahhoz, hogy ez ne okozzon túl nagy fejfájást. A két projekt fejlesztésére sem panaszkodhatunk, mindkettőhöz szinte hetente jönnek ki frissítések.

Sebesség

A jelenlegi Symfony verzió a legtöbb kritikát egyértelműen a sebessége miatt kapja, a fejlesztők viszont azt ígérték, hogy erre fogják a legnagyobb hangsúlyt fektetni a közeljövőben. Ígéretes benchmarkokat már mutattak, meglátjuk mi jön össze belőle. Az biztos, hogy egyszer-kétszer elkerekedett a szemem, amikor láttam egy futási fát Symfony alatt, valószínűleg tényleg van ott mit faragni. Érdemes megjegyezni, hogy a Zend is rendszerint alulmarad sebességben a kisebb rendszerektől, ami alighanem annyit jelent csupán, hogy több mindenre képes, valamint az is elgondolkoztató, hogy a PHP objektumkezelésén is talán lehet még csiszolni, még mindig elég költséges az objektum generálás. Mindezek ellenére egy kisebb weblapon sosem fog érződni, hogy ez most lassabb, mert Zendet/Symfonyt használ, ha csak a fejlesztő el nem baltáz valamit. Egy nagyobb projektnél viszont biztos hogy nagyon hamar meghálálja magát a jól átgondolt struktúra.

Tanulás

Szerintem ebben a kérdésben nincs egy ligában a két rendszer. A Zend elemei jól le vannak írva, de hogy hogy kéne a keretrendszert rendeltetése szerint használni az nem igazán. Van ugyan egy hivatalos tutorial, de mint korábban említettem, az is bugos. A bugot ugyan valószínűleg javították azóta, de azért ez azt is jelzi, hogy nem igazán foglalkozik a kérdéssel a fejlesztői gárda.

A Symfony ehhez képest már túlzás is. Nagyszerű leírások és tutoriálok tömkelegei, az egyetlen probléma, hogy nagyon-nagyon részletes. De legalább aki átrágja magát a végtelennek tűnő anyagon, az utána úgy érzi, hogy tud mindent. Ami persze nem igaz...

Kódgenerálás

Régebben irtóztam mindenféle kódgenerálós dologtól, de most már kezdem megszeretni. A két keretrendszer itt is hozza a róla kialakult képet. A Zend ad pár parancsot a fontosabb kódrészek generálásához, míg a Symfony eláraszt a különböző variációkkal. Nem mondom, biztos hasznos mindegyik, de egy kezdőnek szinte megtanulhatatlannak tűnik. Az új NetBeans viszont nagyban segít ezen a kérdésen, úgyhogy újoncoknak erősen ajánlott az új IDE. (Erről később szeretnék részletesebben is írni, jelezzétek ha komoly igény lenne rá.)

Külsős fejlesztések, pluginek

Ez a fejezet mindkét projekt esetében szinte fikciónak tűnik. Mindkettőről lehet tudni, hogy nagyon sokan használják, fejlesztenek vele ezerrel, ugyanakkor a nyílt forráskódú projektek amiket találtam, egytől-egyig kezdetlegesek és jellemzően hemzsegnek a hibáktól.

Ez alól talán csak a Magento kivétel, ami valóságos buzzword lett mostanában. Az is lassan vezető e-commerce megoldássá válik, ugyanakkor még ezt a rendszert se mondanám tökéletesnek, megszenvedtem vele mire feltelepítettem a gépemre.

Csalódás, hogy mostanában egész sok open source fejlesztést néztem át a sourceforge-on, de alig-alig akad olyan amelyik akár csak egy stabilabb béta szintet elérne és emellett bevált keretrendszert használna.

Konklúzió

Most még nincs, mert hamarosan jön egy folytatás, ahol az gyorsítótár kezelést, űrlap generálást, adatellenőrzést, hitelesítést és úgy általában a biztonságot szeretném egy kicsit górcső alá venni.

Talán annyit azért meg lehet már most állapítani, hogy a nagyon-nagyon jó programozóknak és/vagy nagyon nagy projekteknek inkább a Zend flexibilitása lesz a nyerő, aki viszont szereti ha minél több nyűgött levesznek a válláról vagy akinek nem világmegváltó gondolatai vannak, hanem gyorsan szeretne jó minőségű kódot létrehozni az talán jobban jár a Symfonyval. Mindenesetre a Jobeet tutorialt minden programozónak végig kéne olvasnia egyszer, aki nem tartozik a közvetlen programozói-elithez.

Címkék: php symfony zend framework keretrendszerek

A bejegyzés trackback címe:

https://szajtbilder.blog.hu/api/trackback/id/tr41446857

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Valaki2 2009.12.30. 10:34:33

Szia!

Én is java programozó vagyok, akinek néha php-ben is kell alkotnia. Épp ezért annó elkezdtem nézni a php-s keretrendszereket, és számomra a symfony volt a nyerő választás. Az egyik ok a nagyon jó dokumentáció (most jelent meg egy új advent calendar tutorial, amiben ez eddigi hiányosságokat is pótolják, pl. embed form részletes elmagyarázása), fórum és irc support, a másik, hogy elég átlátható a keretrendszer kódja, tehát viszonylag könnyen meg tudom nézni, mi-mit csinál.

Ami még nagyon szimpatikus a számomra, hogy kialakit egy könyvtárszerkezetet, ahol mindennek megvan a saját helye. Ez hihetetlen könnyebbséget ad a fejlesztéshez.

Ráadásul: a zend-framework cuccait is simán használom, pl. freetext search.

Thoer 2009.12.31. 16:48:21

Szia!

Nem tudom miért gondolod, hogy Java programozó vagyok, nem sok közöm van hozzá. Kimondottan webes fejlesztő vagyok: PHP, JavaScript, HTML, CSS. Hobbi szinten C++.

Ha PHP rendszereket nézel, akkor azért átláthatónak nem mondanám a Symfonyt, ahhoz túl bonyolult. Tény, hogy rendezett és logikus, úgyhogy ha valaki már ismeri, akkor hamar ki lehet igazodni, de külön meg kell szerintem tanulni. Viszont a dokumentáltsága páratlan és a közösség is elég jó. Mondjuk utóbbiban a kisebb rendszerek is sokkal jobbak vagy a komolyabb CMS rendszerek is.

Ha már Zend-Symfony, akkor azt érdemes még kiemelni, hogy azt is nagyon jól dokumentálják, hogy hogyan érdemes integrálni a Zend elemeit. Főleg a Symfony 2.0-hoz készülő "modulok" esetében van nagyon így.