spájame
slovenskú
IT komunitu
pridaj sa
Registrácia · Login

Peter Payter Gašparík 5.9.2012
Hodnoť článok:
31 1

Veľký prehľad najpoužívanejších PHP frameworkov

Ste PHP programátor a plánujete sa v najbližšej dobe naučiť pracovať s nejakým frameworkom, no neviete si vybrať? Alebo už nejaký používate, no nie ste s ním spokojný a hľadáte alternatívu? Alebo netušíte, o čom je reč, no chceli by ste si rozšíriť obzory? Ak ste na niektorú z týchto otázok odpovedali "áno", tak tento prehľad je práve pre vás!

Čo je to ten framework a na čo to je dobré?

Podľa definície na Wikipédii

Framework je softwarová štruktúra, ktorá slúži ako podpora pri programovaní, vývoji a organizacii iných softwarových projektov. Môže obsahovať podporné programy, knižnice API, podporu pre návrhové vzory alebo doporučené postupy pri vývoji.

Ak sa bavíme o PHP a mám to vysvetliť po slovensky, tak v skratke to znamená, že sú to PHP skripty, v ktorých sú pre nás naprogramované často používané veci. Tieto skripty nám po stiahnutí a následnom používaní šetria čas a nervy ;)

Väčšina PHP frameworkov učí správnym návykom a odstraňuje programátorské stereotypy. Už v základnom balíčku ponúkajú kopu otestovaných komponentov, ako prihlasovanie používateľov, validáciu formulárov alebo majú prepracovaný šablónovací nástroj. Taktiež dopomáhajú k správnym návykom a sú postavené na tzv. MVC pattern. Na rozdiel od CMS framework nie je kompletný systém, ktorý stačí nainštalovať a stránka je hotová. Sú určené hlavne pre tvorbu aplikácií na mieru, pre ktoré by bola úprava nejakého CMS zbytočný zabijak. Takže, aby sme sa už nezdržiavali teóriou, poďme si rozobrať tie najpoužívanejšie:

Zoznam najpoužívanejších frameworkov

#Zend Framework [späť ↑]

História a vývoj

Ako prvý si predstavíme Zend Framework, nakoľko je globálne asi najznámejší. Značnou mierou to je aj tým, že ho má na svedomí Zend Technologies, ktoré vytvorilo a vyvíja samotné PHP. Dokonca na vývoji sa podieľajú fulltime platení zamestnanci, takže o kvalitu kódu a vývoj do budúcnosti netreba mať obavy.

Pod kapotou

  • Robustnosť: je veľmi robustný s množstvom prepracovaných kompomentov už v základnom balíku.
  • Výkon: kód je zastaralý a aj dosť pomalý, preto v reálnych aplikáciach pri využívaní veľkého množstva komponentov je nutné aplikáciu správne vyladiť pomocou cache. Značne vie výkon zvýšiť použitie PHP acclerátora.
  • Technológie a koncepty: má zastaralý autoloader, chýbajú mu moderné koncepty z novších konkurenčných FW.
  • Databázová vrstva: pre komunikáciu s databázou sa využíva vlastná trieda Zend_Db, ktorá je jednoduchým rozhraním pre komunikáciu s databázou.
  • Šablónovací nástroj: neobsahuje šablónovací nástroj, no je veľmi otvorený pre integráciu napr. SMARTY.
  • Modulárnosť: je veľmi flexibilný. Jeho komponenty sa dajú použiť jednoducho aj osamote. Taktiež je veľmi otvorený integrácii komponentov z 3. strán.
  • Magickosť: jeho filozofiou je hlavne use-at-will prístup, magickosti sa stráni.
  • Generátor kódu: má konzolový nástroj pre generovanie kódu, ten však v skutočnosti nie je veľmi nápomocný.

Dokumentácia a komunita

Má veľmi podrobnú dokumentáciu s množstvom príkladov. Dá sa v nej nájsť skutočne všetko, a ak aj nie, tak odpoveď bude určite na stackoverflow.com, kde má 12000+ otagovaných tém.

Krivka učenia

Patrí medzi ťažšie FW. Učenie zaberie mnoho času aj skúsenejšiemu programátorovi. Výhodou je už spomínaná dokumentácia a množstvo návodov, videotutoriálov, diskusií, čo dosť pomáha v učení.

Hodnotenie

Zend Framework patrí medzi tvrdšie oriešky na učenie, no dajú sa ním vytvoriť robustné aplikácie, akou je napríklad Magento. Do budúcna bude ale rozumnejšie prestúpiť na novšiu verziu Zend Framework 2, o ktorom si následne povieme.

#Zend Framework 2 [späť ↑]

História a vývoj

Jedná sa pochopiteľne o modernejšieho nástupcu staršej verzie. V dobe písania článku sa vývoj nachádza vo verzii RC6. Vývoj konceptom nadväzuje na staršiu verziu, no čo sa týka kódu, je kompletne prepísaný.

Pod kapotou

  • Robustnosť: na motívy predchodcu je aj jeho následník robustný s množstvom komponentov v základnom balíku.
  • Výkon: je podstatne rýchlejší ako predchodca vďaka modernému kódu, ktorý sa stále vylaďuje.
  • Technológie a koncepty: používa najmodernejšie techniky (alebo skôr moderné v PHP) ako menné priestory a dependency injection. Návrh si zakladá na používaní modulov, ktoré sa jednoducho pár riadkami "pripájajú" a používajú. Tieto balíčky vie dokonca spracovať zabalené!
  • Databázová vrstva: ako aj v staršej verzii o komunikáciu dbá Zend\Db (samozrejme vynovená). Tí, ktorým to nestačí, môžu jednoducho integrovať plnohodnotné ORM ako napríklad Doctrine 2.
  • Šablónovací nástroj: neobsahuje šablónovací nástroj priamo v balíku, no dá sa tiež ľahko integrovať.
  • https://github.com/doctrine/DoctrineModule

  • Modulárnosť: use-at-will prístup v kombinácii s modulmi je silná kombinácia, ktorá dáva flexibilite ešte širší rozmer ako to bolo u predchodcu.
  • Magickosť: žiadna, ešte viac dbá na flexibilitu
  • Generátor kódu: má vylepšený konzolový nástroj oproti predchodcovi.

Dokumentácia a komunita

Dokumentácia už existuje, ale ešte to nie je ono, treba si počkať. Vďaka tomu, že projekt prešiel na GitHub, bude zapojenie komunuty do tvorby ešte výraznejšie ako u predchodcu.

Krivka učenia

Učenie komplikuje zatiaľ slabšia dokumentácia a to, že sa ešte FW nezabehol medzi komunitou. Mal by byť ľahší na učenie ako bol predchodca, ale treba si počkať.

Hodnotenie

Zend Famework 2 kráča správne, ale veľmi pomaly. Určite príde jeho čas, ale zatiaľ (v dobe písania článku) si treba dobre premyslieť, či vytvoriť nejaký väčší projekt práve na jeho základe.

#CakePHP (1,2) [späť ↑]

História a vývoj

Vývoj CakePHP začal v roku 2005 Michal Tatarynowicz, neskôr tento vývoj prerástol v založenie spoločnosti Cake Software Foundation. Veľkou inšpiráciou pre jeho napísanie bolo Ruby on Rails a používa mnoho jeho konceptov. Verzia 1 a 2 sa veľmi od seba nelíšia, preto som sa rozhodol pokec o nich spojiť do jedného.

Pod kapotou

  • Robustnosť: je stredne veľký s dobrou výbavou komponentov v základnom balíku.
  • Výkon: patrí v testoch medzi pomalšie FW a cachovanie nie je až tak ideálne.
  • Technológie a koncepty: berie koncepty z Ruby on Rails, no až tak dobre nezafungovali v PHP. Návrh je ukrátený o PHP 5.3 vychytávky, keďže si snaží držať spätnú kompatibilitu so staršími verziami.
  • Databázová vrstva: má jednoduché ORM, ktoré funguje na active record pattern a validácia dát prebieha priamo v modeli.
  • Šablónovací nástroj: nemá šablónovací nástroj.
  • Modulárnosť: zakladá na pluginoch, ktoré sa inštalujú jednoducho, no je zložitejšie integrovať komponenty z 3. strán, ktoré niekto z komunity nepripravil.
  • Magickosť: je to to, na čom CakePHP najviac zakladá. Má mnoho magických metód uľahčujúcich volanie tried a helperov. Rozumie si s jQuery a AJAX volania sú s ním tiež veľmi zjednodušené.
  • Generátor kódu: má prepracovaný generátor kódu, čo ešte viac dopomáha magickosti a rapídnemu budovaniu aplikácií. Na pár príkazov sa dajú vytvoriť databázové tabuľky alebo kompletná CRUD štruktúra.

Dokumentácia a komunita

Dokumentácia je prehľadná, vecná, s príkladmi a pomocou searchu sa dá všetko nájsť v podstate ihneď. Komunitu má aktívnu, no pri riešení špecifických problémov je potrebné využiť skill v googlovaní.

Krivka učenia

Pomerne ľahko sa učí, hlavne jednoduché aplikácie sa človek naučí vytvárať rýchlo. Horšie je to so špecifickými požiadavkami, kvôli ktorým sa človek musí do toho zahrabať, aby dokázal spraviť niečo neštandardné.

Hodnotenie

CakePHP je vhodný pre rapídne budovanie aplikácií. Vďaka svojej náročnosti nie je vhodný pre väčšie projekty a tiež pre projekty, ktoré vyžadujú robiť mnoho vecí na mieru.

#Nette 2 [späť ↑]

História a vývoj

O vývoj českého Nette Frameworku sa stará Nette Foundation, no v pozadí je vývoj stále závislý hlavne od jedného človeka a to Davida Grudla. Je autorom samotného Nette a značnou mierou sa stále podieľa na vývoji.

Pod kapotou

  • Robustnosť: je to stredne veľký FW so štandardnou výbavou komponentov v základnom balíku a množstvom prídavných na stiahnutie.
  • Výkon: patrí medzi rýchle frameworky.
  • Technológie a koncepty: veľmi moderný koncept, využíva menné priestory v PHP 5.3, dependency injection, veľmi uľahčuje AJAXové volania.
  • Databázová vrstva: využíva upravený NotORM od Jakuba Vránu, ktorý je jednoduchý a rýchly nástroj pre prácu s databázou.
  • Šablónovací nástroj: ponúka šablónovací nástroj Latte, ktorý ponúka veľa skratiek a uľahčení.
  • Modulárnosť: integrácia cudzích kompotentov je pomerne jednoduchá, taktiež aj testovateľnosť.
  • Magickosť: obsahuje kopu skratiek a vylepšení jazyka PHP a nejedná sa len o šablónovací nástroj Latte. Dosť zjednodušuje prácu napríklad s AJAX volaniami.
  • Generátor kódu: nemá, aj keď boli pokusy, no neujalo sa to a asi sa ani neujme.

Dokumentácia a komunita

V naších končinách to je najpopulárnejší FW s najaktívnejšou komunitou. Komunita usporadúva stretnutia "Posledná sobota", ktoré sú neformálnym stretnutím priateľov Nette. Akcie sa konajú v rôznych mestách v ČR vždy v poslednú sobotu mesiaca. Dokumentácia však nie je taká kvalitná, hlavne kvôli často meniacemu sa kódu, zato odpovede sa dajú získať najčastejšie vo veľmi aktívnom fóre.

Krivka učenia

Naučiť sa pracovať s Nette je ľahké hlavne vďaka absencii jazykovej bariéry, aktívnej komunite a jednoduchému kódu.

Hodnotenie

Nette sa hodí pre tvorbu akýchkoľvek veľkých aplikácií a je veľmi vhodný pre začiatočníkov. Je to jednotka v týchto končinách, čo je plus, no zároveň aj veľké mínus, ak chcete vyvíjať aplikácie pre zahraničných klientov.

#CodeIgniter (1,2) [späť ↑]

História a vývoj

Prvá verejná verzia bola predstavená 28.02.2006. Od tejto doby sa vývoj prehupol cez verziu 2 a už mieri k verzii 3 (v dobe písania článku). Najviac sa oproti verzii 1 a 2 zmenilo však iba číslo v názve. V jednoduchosti je krása a hlavne na toto sa dbalo pri navrhovaní.

Pod kapotou

  • Robustnosť: je kompaktný a v základnom balíku obsahuje iba najžiadanejšie komponenty.
  • Výkon: patrí medzi rýchle FW.
  • Technológie a koncepty: vďaka niekdajšej prehnanej snahe o kompatibilitu s PHP4 je kód zastaralý a len pomaly napreduje. Koncept je však jednoduchý a ľahko pochopiteľný.
  • Databázová vrstva: má iba jednoduchý nástroj pre správu databázy založený na active record pattern. Nemá validáciu vstupných údajov, tá sa vykonáva v controlleri.
  • Šablónovací nástroj: neponúka šablónovací nástroj.
  • Modulárnosť: integrácia komunitných komponentov je ľahká, no vytváranie alebo integrácia komponentov z 3. strán je obtiažna.
  • Magickosť: nie.
  • Generátor kódu: štandardne nemá v sebe generátor kódu, existuje však alternatíva.

Dokumentácia a komunita

Má detailnú dokumentáciu s množstvom príkladov a aktívnu celosvetovú komunitu. Pre našinca je ďalšia výhoda v tom, že tu na Zajtra.sk je videotutoriál Nauč sa CodeIgniter od Yablka.

Krivka učenia

Vzhľadom na vyššie uvedené plusy a jeho jednoduchosť sa dá veľmi rýchlo naučiť a je vhodný pre začiatočníkov.

Hodnotenie

CodeIgniter je rýchly, kompaktný, ľahko sa učí, no je ideálny pre malé a stredne veľké projekty. Nie je vhodný pre rapídny vývoj aplikácií, je to skôr jednoduchý nenáročný pomocník.

#Kohana 3 [späť ↑]

História a vývoj

Kohana vznikol pôvodne z CodeIgniteru, na ktorom sa komunite nepáčilo, že sa stále dodržuje kompatibilita s PHP 4. Postupom času sa Kohana vzďaloval viac od pôvodného konceptu. Momentálne verzia 3 zdieľa málo čŕt s predchodcom.

Pod kapotou

  • Robustnosť: patrí medzi menšie frameworky s menšou nádielkou základných komponentov.
  • Výkon: podľa testov by mal byť o málo rýchlejší ako CodeIgniter.
  • Technológie a koncepty: čo sa týka návrhu, je o krok pred CodeIgniterom. Niekomu ale môže vadiť, že už nepodporovaná verzia 2 nie je kompatibilná s Kohana 3 a nastali tam väčšie zmeny. Oproti iným FW však neponúka nič prevratné.
  • Databázová vrstva: ORM je prerobené oproti pôvodnému bez spätnej kompatibility, no iba sa zjednodušila práca a veľa funkcií nepribudlo.
  • Šablónovací nástroj: neponúka šablónovací nástroj.
  • Modulárnosť: ponúka málo prídavných komponentov a integrácia iných je stále obtiažna, aj keď je ľahšia oproti CodeIgniteru.
  • Magickosť: nie.
  • Generátor kódu: nemá.

Dokumentácia a komunita

Narozdiel od CodeIgniteru má menej aktívnu komunitu a nedostačujúcu dokumentáciu. Veľa ľudí odradila hlavne slabá kompatibilita oproti starším verziám.

Krivka učenia

Vzhľadom na horšiu dokumentáciu je učenie náročnejšie oproti Codeigniteru, aj keď kód je veľmi jednoduchý.

Hodnotenie

Keby mal Kohana za sebou aktívnejšiu komunitu a kvalitnejšiu dokumentáciu, bol by lepšia voľba ako CodeIgniter, takto je však vhodný len na menšie projekty.

#Yii [späť ↑]

História a vývoj

Yii(vyslovuj "Yee") znamená akronym k "Yes It Is!" (áno je!). Vznikol pôvodne z PRADO Frameworku, ktorý mal problémy pri vykreslovaní komplexných stránok. Yii tieto problémy riešil a oddelil sa od pôvodného projektu.

Pod kapotou

  • Robustnosť: radí sa medzi robustnejšie FW s množstvom komponentov
  • Výkon: napriek tomu, že je robustný, je ale zároveň rýchly a má dobré cachovanie.
  • Technológie a koncepty: vďaka spätnej kompatibilite je kód zastaralejší a neponúka veľa moderných vychytávok.
  • Databázová vrstva: ORM je postavené na active record pattern s lazy loadingom. Má v sebe aj prepracovanú validáciu vstupných údajov.
  • Šablónovací nástroj: nemá vlastný tenplatovací nástroj.
  • Modulárnosť: výborne sa robí so základnými komponentami, no s integráciou cudzích je to trošku náročnejšie.
  • Magickosť: využíva v hojnej miere magické metódy a jQuery helpery.
  • Generátor kódu: áno a je to hlavná feature Yii. Narozdiel od iných FW sa s ním nekomunikuje cez konzolu, ale cez pekné webové rozhranie.

Dokumentácia a komunita

Začiatočníkov môže odradiť dokumentácia, ktorá nie je úplne ideálna. Má za sebou veľkú komunitu, ktorá sa nachádza na aktívnom fóre.

Krivka učenia

Učenie sťažuje dokumentácia a prílišná magickosť, ktorá zoberie čas pre výučbu a pochopenie. Dobrá správa je, že tu na Zajtra.sk sa dá nájsť seriál Ako sa stať PHP ninja s Yii Frameworkom v slovenčine. Tiež sa môžete sa učiť z reálnej open source aplikácie požič.si.

Hodnotenie

Yii je výborný nástroj pre rapídny vývoj aplikácií, no vyžaduje si pre rýchlejšiu výučbu skúsenejšieho programátora. A ešte pikoška, ak niekto nevie - zajtra.sk je postavené na Yii.

#Symfony [späť ↑]


O Symfony 1 povieme len v skratke. Je to predchodca Symfony 2, o ktorom si povieme nižšie. Podpora tohto frameworku končí v januári 2013, preto nemá zmysel sa o ňom rozpisovať a začínať vývoj aplikácií na jeho základe. Treba však spomenúť, že narozdiel od takého CakePHP alebo CodeIgniteru sú markantné zmeny medzi verziami 1 a 2, kedy došlo ku kompletnému prepísaniu kódu. Symfony 1 je rozbustný framework, ktorý je stále veľmi populárny, aj keď teraz už ustupuje. Na jeho komponentoch stavia napr. najrozšírenejšie open source fórum phpBB.

#Symfony 2 [späť ↑]

História a vývoj

Hlavná myšlienka pozostáva z rýchlosti, odstránení programátorkých stereotypov a ľahkej údržbe kódu. Sensio labs sa rozhodli svoj prvotný počin kompletne prepísať a vytvoriť moderný framework využívajúci v čo najväčšej miere nové schopnosti PHP 5.3.

Pod kapotou

  • Robustnosť: je to robustný framework, ktorý síce v základnom balíku neobsahuje veľa komponentov, no veľa toho sa dá stiahnuť od komunity, kde prispievajú aj tvorcovia Symfony 2.
  • Výkon: aj keď je robustný, rýchlosť je postačujúca. Je silne odporúčané používať PHP accelerator pre zvýšenie výkonu vo väčších aplikáciách.
  • Technológie a koncepty: koncept zakladá na tom, že všetko v ňom je brané ako bundle (batôžtek). Je veľmi moderný a na svoj chod vyžaduje minimálne PHP 5.3. V plnej miere využíva menné priestory a dependency injection.
  • Databázová vrstva: používa už v základnom balíku populárny Doctrine 2, ktorý sa ako jediný v PHP najviac priližuje k 5vrstvovej architektúre. Takýto modelový návrh sa už roky používa napr. v Jave.
  • Šablónovací nástroj: priamo v sebe má šablónovací nástroj TWIG. Je rýchly, výkonný a maximálne flexibilný pomocník.
  • Modulárnosť: modulárnosť a testovateľnosť je v ňom na vysokej úrovni.
  • Magickosť: nezakladá si na magickosti, no kde neutrpí flexibilita, tam autori ponúkli uľahčenie.
  • Generátor kódu: obsahuje kvalitný generátor kódu, ktorý je veľmi nápomocný hlavne pri synchronizovaní databázovej štruktúry s entitami v Doctrine 2.

Dokumentácia a komunita

Celá komunita sa točí hlavne okolo GitHubu, čo je veľké plus, ale tiež sa dajú ľahko získať odpovede na stackoverflow.com. Dokumentácia je prehľadná a pochopiteľná, no chýba v nej jednoduchšie vyhľadávanie.

Krivka učenia

Patrí medzi náročnejšie FW na učenie vďaka svojmu striknému OOP návrhu. Chce to čas, trpezlivosť a na škodu nie sú ani vedomosti a skúsenosti z iných frameworkov alebo iných vyšších programovacích jazykov.

Hodnotenie

Symfony 2 je výborný nástroj pre stredne veľké a veľké aplikácie. Má skvelý návrh, výborné ORM, no na malých projektoch to je zbytočný overkill. Naučenie si vyžaduje čas, nie je vhodný pre úplnych začiatočníkov. Problém tiež môže nastať na hostingoch bez nainštalovaného PHP accelerátora, aplikácie sú poznateľne pomalšie.

Na záver...

Tak čo, vybrali ste si už svojho favorita? Alebo v tom máte ešte väčší zmätok ako pretým? To nevadí, lebo nabudúce si povieme o tom, podľa akých kritérií je vhodné framework vyberať.

> Pokračovanie tu <

Peter Payter Gašparík Peter Payter Gašparík

Som freelancer na plný uväzok ;)


Hodnoť článok:
31 1

58 komentárov k článku:

Komentovať môžu iba prihlásení

Zaregistruj sa cez bezplatnú registráciu alebo použi login cez Facebook (FB Connect)

Prihlás sa tu, ak už máš profil na Zajtra.sk:


Zabudol som heslo

3 1 Peter Payter Gašparík 6.9.2012 12:01:00
Horúca novinka Zend Framework 2 je už STABLE! http://framework.zend.com/blog/zend-framework-2-0-0-stable-released.html :)
1 1 Peter Payter Gašparík 6.9.2012 02:34:58
Je to myslené tak, že framework má v sebe zabudovanú funkcionalitu, ktorá na pozadí vykonáva niečo čím ti pomáha vyhýbať sa nejakým zložitým konštruktom pri programovaní, ponúka ti skratky a sa snaží vylepšiť PHP ako jazyk. Trebarz si predstav, že máš naprogramovať nejaký AJAXový include do stránky, štandardne si musíš naprogramovať javascript, potom zvlásť PHP script a potom nejak volať napr. na event window ready. Napr. Nette k tomu ponúka ľahké riešenie http://doc.nette.org/cs/ajax. Tebe to ušetrí robotu no musíš sa takúto srandu naučiť používať. Môže to mať tiež dopad na flexibilitu a výkon (nie vždy).
0 0 Andrej Badin 5.9.2012 23:46:01
@sokoliar ak som po rýchlom prečítaní pochopil správne, ide aj! o využívanie php "magic" metód. Rád si počkám na odpoveď od autora :)
0 0 sokoliar 5.9.2012 22:40:09
pekny clanok :)

Ale mam jednu otázočku, čo mám chápať pod pojmom magickosť? :)
0 0 Marek Hubacek 5.9.2012 21:32:57
@Peter Payter Gašparík Toto je take strucne vysvetlenie http://slides.seld.be/?file=2012-06-07+Dependency+Management+with+Composer.html#1 (daj dvojklik, aby ti dalo dasli slide), ale v podstate podla toho co som pozeral, tak je to o tom ze specifikujes zavislosti na projektoch na ktorych zavisi tvoj kod, a composer vyhlada urcene projekty, pozrie ci v nich nie su dalsie zavislosti atd...
0 0 Peter Payter Gašparík 5.9.2012 21:06:28
@Marek Hubacek composer som zatiaľ nevyužil (hanba mi), stahoval som bundle pomocou deps, tuším to ale bude v 2.1 deprecated, čí?

môžeš mi pls dať nejaký schopný článok ohľadom toho dependency management ako to je celé myslené? z googlu som dostal zatial iba nejake blbosti, dík
0 0 Marek Hubacek 5.9.2012 20:56:10
@Peter Payter Gašparík Ahaaaa, takze takto je to myslene, no ano, symfony tasky cez command line su teda dost namakane :-)
Inak neviem ako su na tom dalsie frameworky, ale sf2 ma composer, co vyzera by dost silna vec na deploying a dependency managment, mohlo by byt spomenute ako vyhoda ;-)
0 0 Peter Payter Gašparík 5.9.2012 20:50:12
@Marek Hubacek napríklad generovanie Bundle http://symfony.com/doc/current/bundles/SensioGeneratorBundle/commands/generate_bundle.html

pravda je, že hlavný význam má generovanie kodu v Doctrine 2 ale kopu užitočných príkazov má aj FW napr. pre premazanie cache alebo dumpnutie assets
0 0 Marek Hubacek 5.9.2012 20:38:38
Len na doplnenie, generator kodu sf2 myslim ze ziadny nema. Osobne vyuzivam sonatu admin bundle, ale o ziadnom generatori neviem. SF1 mala admin generator, dost pokrocily, ale tak ako cely sf1 bol silno orientovany na konfiguracne volby.
Celkovo sa mi zda sf2 ovela ohybnejsi a priamociarejsi ako sf1. Este jedna poznamka, doctrine je samostatny projekt, ktory mozete,ale nemusite vyuzit. Jeho pouzivanie si ale treba velmi zvazit, pretoze niekedy to prinesie viac starosti ako uzitku. Osobne sa mi na projekty typy backend + frontend osvedcila kombinacia doctrine orm na backende a doctrine dbal na fronte (resp namiesto dbal nejaky jednoduchy objektovy wrapper nad datami z databazy). Pri aplikaciach ktore maju skor charakter informacneho systemu sa ale oplati vyuzit orm naplno, pretoze tam sa prejavi jeho sila
0 0 Jack Jackm Man 5.9.2012 19:58:49
David není Grundl, ale Grudl.
0 0 tester 5.9.2012 18:34:58
no to si namna napisal moc technicky ale verim ti :)

ps: robil by som ja osobne 2 testy, jeden s default nastavenim a jeden s max nastavenim - teda vsetko co dokaze ten FW :)
0 0 Peter Payter Gašparík 5.9.2012 18:22:27
@tester no šak a to si možno týždeň aj málo napísal :) a s tými requestami to nebude objektívne, poviem príklad, mal by som projekt v Symfony 2 a Codeigniter, mal by som vypnutu cache a S2 by z toho vyšiel ako fail. Keby som zapol a ešte dodal srandy ako APC tak by tam bol malý rozdiel. Alebo dotazy z DB, napr Doctrine 2 v S2 má lazy loading, jednu entitu natiahne iba raz a potom už do DB nezasahuje. Keby som to porovnával s menšími ORM pri málo dotazoch tak by prehrával. Keby mám veľkú stránku s opakujúcimi sa dotazmi tak možno aj vyhrá D2.
0 0 tester 5.9.2012 18:11:15
oki, tak sa tesim na tie kriteria a som zvedav :) ja som si uz nejake kriteria zadefinoval (zase z pohladu nedevelopera), uvidime co zvolis ty :)

btw: ak pises pocty, staci dat do zatvorky datum (tak som robil aj diplomovku :) ).

ked sa jedna o rychlost, zase raz ako nie developer: ja by som asi skusil spravit jednu stranku, hodit na server pod roznymi FW, nech tam je aj prepojenie na nejaku db proceduru a ratat cas v browseri na 1 request. potom by som spustil perf test cez aplikaciu napr. Selenium, 100 / 1000 / 10 000 / 100 000 requestov a porovnal casy. na druhej strane, preco by si zabil tyzden prace len kvoli tomu aby si testol vykonnost 9 FW do clanku zadarmo ? :) + este licencia na zend, server atd.
0 0 Peter Payter Gašparík 5.9.2012 17:53:18
@Patrik Votoček dík, doplnené, toto info som nenašiel :)
0 0 Peter Payter Gašparík 5.9.2012 17:50:07
@tester dík za dotaz :) súhlasím s tým, že tam je veľa vágnych viet, ale takéto konkrétne špecifikácie, že koľko má presne komponentov dnes napíšem, že 50 a zajtra ich môže byť 60... zámerne som písal vágne, lebo ako napr. by si zmeral fakt objektívne, že o koľko je jeden FW rýchlejší od druhého?

To, že si si nevybral je v poriadku, aj v závere článku som to napísal. Chcem napísať ďalši, ktorý práve pomôže niekomu vo výbere. Napr. použitie šablónovacieho nástroja nemusí byť nutne dobré, ani nutne zlé, je to relatívne a výhody a nevýhody rozoberiem tam.

Neurazil som sa, popravde bol som pripravený na tvrdšiu kritiku , podľa toho čo som tu videl diskusie :) Rozsah sa dá samozrejme natiahnuť aj celú jednu stránku a stále to nebude stačiť, išlo mi o výcuc.

Ešte k tým skúsenostiam. Sám mám za sebou hotové projekty postavené na Zend Framework 1, CakePHP a Symfony 2. Ostatné som aspoň vyskúšal stiahnuť a pohrať sa s nimi, popozeral dokumentáciu, hľadal názory na fórach, dokonca aj nejaké tutoriály som si pozrel (napr. tu na Zajtra.sk CodeIgniter a Yii)
2 2 tester 5.9.2012 17:22:09
vdak za clanok, ako laik v developmente ti musim napisat ze pouzivas velku kopu vseobecnych formulacii, ktore mne nic nehovoria zial. napr:

"v základnom balíku obsahuje iba najžiadanejšie komponenty" to su ake ?

" v základnom balíku neobsahuje veľa komponentov" to je kolko ? ake tam chybaju ? su tam tie, ktore su nutne na beh napr eshopu ? alebo len take ktore vyuzijem pri osobnej prezentacii ..

"patrí medzi rýchle FW." podla vsetkeho to ostatnym nieco hovori, ale mne zial nic

"nemá vlastný tenplatovací nástroj" a to je zle ci dobre ? ja ako laik to neviem posudit. mozeme povedat ze to nemusi byt vyhradne zle ?

" ponúka málo prídavných komponentov a integrácia iných je stále obtiažna, aj keď je ľahšia oproti CodeIgniteru." co znamena obtiazna integracia ? kolko hodin navyse ? v com su zadrhely ? je nutne byt pokrocily aby to developer zvladol ? poradi si s dokumentaciou ?

"FW ... sa dá veľmi rýchlo naučiť" to je kolko ? z mojho pohladu by som chcel vediet ci je to tyzden, mesiac, 2 mesiace aby som vedel spravit odhad v pripade ze najmem na projekt cloveka, ktory s tym nema skusenost. takto podana informacia mi zial vobec nepomoze.

podobnych formulacii je tam mnoho, musim priznat ze som prestal citat po opisani prveho FW kedze mi tam chybali info, tak som ti sem par takych viet nahodil.

neber moje dotazy ako nieco zle, len ti pisem pohlad laika, nie developera :) ja osobne by som sa nevedel rozhodnut resp. podla clanku najst dovod nakolko mi tam chybaju fakty.

ps: neviem s ktorymi fw si sa aj stretol, ako dlho si ich pouzival etc. alebo je to kompilacii informacii z netu ? zase raz, mne to nevadi ak si to dal dokopy z viacerych zdrojov. osobne by som uvital na uvod info, s cim mas skusenost a ako si clanok dal dokopy.

dikes .. dufam ze som ta neurazil :) cenim si pracu na clanku. mam mensie skusenosti tak viem, ze to trva dost dlho :/

ps2: osobne by som uvital daleko viac, keby si popisal 1 framework v rozsahu celeho clanku, mno boli by tam konkretne info, hmatatelne fakty od ktoreho sa moze niekto odrazit. dalej to uz pre citatelna nebude tak narocne ked si aj bude googlit info o konkurencnych FW .. (zase moj pohlad)
3 0 Jose Zdimera 5.9.2012 17:10:11
ja sa prihovorim za yii, mam uz za sebou tri mensie komercne projekty v tomto frameworku, teraz robim na stvrtom trochu vacsom a je pravda ze sa stale ucim nove veci, ale nieje to s tou dokumentaciou az take zle - existuju dve celkom dobre knizky (agile dev with yii a yii cookbook) + definitive guide to yii, v ktorom su priklady. (na rozdiel od klasickej strohej dokumentacie) ..okrem yii som sice z PHP-fw realne vyskusal iba codeigniter ale urcite si ma yii ziskal viac, hoci do buducna rozmyslam o presedlani na RoR.
2 0 Patrik Votoček 5.9.2012 17:09:57
Mno musím konstatovat že po předchozím fiasku (článek pokoušející se o srovnání PHP Frameworků). Je tento jako z jiné planety. Pěkné srovnání!

Jen bych poupravil u Nette "Vo vývoji od: 2008" což je chybný údaj. Ve vývoji je / bylo Nette už od roku 2004. Roku 2008 bylo uvolněno pro veřejnost. :-)
0 0 Ján Žitniak 5.9.2012 16:58:13
@Michal Obeda - vďaka za názor
2 0 Michal Obeda 5.9.2012 16:43:04
@Peter Payter Gašparík - Doctrine nechajme tak, argumenty obidvoch strán by zabrali viac, než je rozsah tohto článku (pamätám si, ako som sa presne na tú tému hádal s kolegom. Bola to diskusia minimálne na hodinu a pol).

Porovnanie na roote poznám, problém je, že je staršieho dáta. Chýba mi tam CI, nette je odvtedy v novej verzii, porovnanie s RoR ma nezaujíma (chcem porovnanie php frameworkov).
Zajtra.sk > Programovanie > PHP > Veľký prehľad najpoužívanejších PHP frameworkov


Kritika

Vieš ako robiť veci lepšie? Pomôž našim odvážnejším členom a skritizuj im projekty!

Reklama

Seriály zo Zajtra.sk

Reklama