Autor Zpráva
piwik
Profil
Dobrý deň,

Riešim otázku ohľadom výberu php frameworku pre prácu.
Nette alebo CodeIgniter ?
Viem, že na internete nájdem veľa porovnaní, pre a proti…no chcel by som vedieť názory skúsených programátorov.
Budem programovať pomerne malé web aplikácie, časom príde aj niečo väčšie….určite budem chcieť vyvíjať vlastné cms, prípadne eshopy.
Hľadám hlavne kvalitu, bezpečnosť a rýchlosť pri vývoji…a určite aj efektívnosť.

Ďakujem za prípadné rady a pripomienky.
dRaGen
Profil
Nette alebo pokud chceš něco ze zahraničí tak Symfony
__construct
Profil
piwik:
Doporúčam Nette - česká komunita, veľká bezpečnosť, trieda Debug aka Laděnka je bezkonkurenčná, mňa osobne dosť zaujal objektový prístup ktorý veľa PHP FW nemá, a šablóny v Nette sú tiež skvelá vec.

CodeIgniter je neuveriteľne jednoduchý, má dosť príkru kryvku učenia, takže npísať v ňom nejakú webovú prezentáciu je otázka chvíle, je pomerne dosť rýchly (o trošku rýchlejší ako Nette), avšak jeho objektový prístup je v súčasnej verzi 1.7.2 ešte stále s ohľadom na PHP 4 čo ho dosť obmedzuje. S CodeIgniterom som nejaký čas dozadu pracoval a prešiel som od neho k Nette.


dRaGen:
pokud chceš něco ze zahraničí tak Symfony
Dôvod ?
Nox
Profil
Pokud bys přemýšlel o CI je dobrý mrknout na framework Kohana (používám), ve většině srovnání (stačí dát "codeigniter kohana") se jako jediná nevýhoda uvádí dokumentace, což je pravda (ještě je trochu použitelnější neoficiální dokumentace), na druhou stranu k ní funguje aktivní fórum i IRC, takže není problém cokoli zjistit. Přijde mi, že většina lidí se v debatě CI x K kloní k druhé jmenované

Nette se mi určitě líbilo, ale když jsem zjišťoval co za FW si vybrat, vzal jsem radši zahraniční/"celosvětový", Nette je sice (nejspíš velmi) kvalitní, ale - jak už (tu?) někdo poznamenal - není známé jinde a asi se tehle fakt zatím moc nemění - což je ale rozhodně škoda (protlačení do NetBeans by pomohlo, ale zatim to moc nevidim...kruhový problém)

S ohledem na zaměstnání je možná výhodnější Zend (ZCE; odradila mě ale jeho údajná mohutnost), Symfony (možná CakePHP? nevim) (obě (Z,S) mj. spešl podporované v NetBeans)
srigi
Profil
Zabudni na Codeigniter. Je to tak strasne jednoduchy framework, ze behom jedneho vecera vycerpas jeho moznosti a nebudes moct dalej. Strasne ta bude obmedzovat, az sa rozhodnes vsetok kod c CI zahodit a prejst inam. Usetri si toto zbytocne kolecko. Vyberaj iba z velkej 4-ky: Zend, Symfony, Nette, Cake.
joe
Profil
První a zároveň poslední zkušenst mi s CodeIgniter stačila. Dokumentace - pokud tím myslejí ten jejich User guide (o ničem jiném totiž nevím) se mi zdá nekvalitní. Plno textu, žádný popis typů, co jaké funkce potřebují a co vracejí.

Dělám v Nette, jsem spokojený.
Ze zahraničních Symfony nebo Zend - a jak píše Nox - oba jsou podporované v NetBeans a to je hodně dobré IDE, vlastně nevím o lepším.
piwik
Profil
vďaka za reakcie, rozhodujem sa medzi Zendom a Nette....počul som, že Zend je trochu pomalší...je to pravda?
dRaGen
Profil
__construct:
Viděl jsem na webexpu přednášku o symfony a hodně se mi líbilo. Je to takový nette z francie a v některých věcech je ještě o trošku dál než nette (třeba co se týče cachování).
Majk
Profil *
Záleží na tom, k čemu budeš framework potřebovat. Podle mě je Codeigniter je lepší než Nette (což ti samozřejmě programátoři Nette popřou).
Proč si to myslím?

- rychlost učení: bezkonkurenčně nejrychlejší ze všech frameworků
- funkce: všechny základní funkce jsou k dispozici. Nechápu poznámku Srigiho, že je za večer vyčerpáš a nevíš potom kam. Framework ti má ulehčit programování, takže se vyčerpat nemůže. Pokud ti něco chybí, doprogramuj si to.
- nebazíruje na MCV - můžeš vynechat vrstvy modelů i controllerů a později se k nim vrátit a doplnit.
- skvělá kompatibilita
- dokumentace je přehledná, hodně odpovědí najdeš ve fóru nebo Wiki, zbytek vygůglíš

Jde o stabilní framework, ve kterém se na rozdíl od Nette nemění základní pravidla a dokumentace neexistuje pouze jen jako seznam vzorových řešení. Navíc se ti u Nette snadno stane, že musíš nějakou část dokomuntace dohledávat, protože se příklad změnil podle pravidla "teďka se to bude dělat takhle". CI je již mnoho let stabilní, změny jsou implementovány poměrně pomalu, což je výhoda oproti Hurá řešením. Na rozdíl od všech frameworků jej spravuje soukromá firma, která jej používá pro svůj komerční produkt, má tedy k dispozici feedback z produkčního nasazení.
AM_
Profil
Majk:
můžeš vynechat vrstvy modelů i controllerů a později se k nim vrátit a doplnit.
viděl jsi to někdy v praxi? nebo si jen dodnes říkáš "jednou si tam doplním model a controller"? chtěl bych vidět, jak efektivně rozdělíš aplikaci, kde je vše spatlané dohromady, na MVC vrstvy (tedy efektivněji, než že to vpodstatě celé odznova přepíšeš)

skvělá kompatibilita
s čím? poběží i na palubním počítači audi tt?

Tím nijak nekomentuji kvalitu CI, popravdě jsem se s ním nikdy nesetkal a na Nette mi také některé věci docela vadí (ikdyž jiné jsou zase dost super), jen tyto dva tvé argumenty mi přijdou dost zvláštní
Majk
Profil *
Ad vrstvy: Já to tak v praxi používám a přijde mi to jako výhoda. V první fázi mám zhruba 80 % kódu v šabloně. Většinu pak přenesu zpětně do Controlleru. Modely vytvářím jen pro opakující se dotazy, obvykle pokud se z nich generují třeba bloky do sloupců. Ten zpětný přechod do Controlleru není tak náročný, protože ten kód je již jednou napsaný. Spíše jde o přehlednost, kdy poté skrze jedno pole předám zpětně do šablony všechny údaje pro její generování.

Ad kompatibilita: mám na mysli hlavně sdílené hostingy a jejich specifika. A s tím palubním počítačem to také souvisí, protože framework je hodně populární mezi lidmi, kteří dělají služby pro mobilní zařízení nebo sociální sítě.

Ale nechci samozřejmě tvrdit, že CI je vhodný pro všechny. Je určen pro ty, co chtějí rychle vytvořit webovou službu svých snů. Pokud si chcete jako programátor usnadnit vývoj zakázek pro klienty, tak je Nette asi vhodnější. Asi.
__construct
Profil
Majk:
všechny základní funkce jsou k dispozici
Pomenoval si to celkom presne - „funkce“ CodeIgniter vzhľadom k tomu že je napísaný pre PHP 4 (čo som už písal) má s objektový modelom (myslím principiálne) spoločné len pramálo - objekty v ňom sú v podstate súbor funkcií. Skús si napísať v CI aplikáciu kde budeš mať nejaký „Admin“ Base_Controller (v Nette je Base Presenter) Bez toho aby si zasahoval do jadra frameworku to nejde (môžeš napísať MY_Controller ale to je dosť všeobecné) … Nič v zlom ale od človeka ktorý používa MVC FW a odrádza od samotného jeho princípu by som si poradiť nenechal …
AM_
Profil
Majk:
mám na mysli hlavně sdílené hostingy a jejich specifika
teď už je to alespoň jasné tvrzení, zkrátka slovo "kompatibilní" nemůže stát bez předmětu, nebo alespoň bez něj nedává smysl.

V první fázi mám zhruba 80 % kódu v šabloně. Většinu pak přenesu zpětně do Controlleru.
O tom slyším poprvé, ale možná ti to tak na malých projektech opravdu vyhovuje. Velké aplikace se takhle ale moc psát nedají, to se v tom dříve nebo později ztratíš. Správně by si člověk měl nejdříve navrhnout strukturu a pak začít psát.
Majk
Profil *
__construct:
K tomu nenabádám jenom já, ale i autoři CI. Využívání všech tří částí je možnost, nikoliv povinnost a někdy je to prostě kontraproduktivní.

Ad base controller: To co jsi uvedl slouží k NAHRAZENÍ funkcí z jádrových knihoven. Mimo to jde samozřejmě vytvářet vlastní knihovny, které ROZŠIŘUJÍ jádrové. Navíc lze knihovny přiřazovan v určitých částech procesu přes hooks (pre_system, pre_controller, post_controller_constructor atd.).
__construct
Profil
Majk:
To co jsi uvedl slouží k NAHRAZENÍ funkcí z jádrových knihoven
Nič v zlom, ale pravdepodobne CI nepoznáš tak dobre ako si myslíš.
Nahradenie by bolo v prípade že by si vytvoril application/libraries/Email.php, a deklaroval svoju triedu takto:
class CI_Email {
…
}
Keď ale vytvoríš application/libraries/MY_Email.php tak ako som napísal v predošlom príspevku a deklaruješ ju takto, tak ju rozširuješ:
class MY_Email extends CI_Email {
    function __construct(){
        parent::__construct();
    }
    …
}
Čo sa týka hooks tak to sú v podstate triggre, takže sa spúšťajú automaticky a ako náhrada abstraktných tried (Nette → Base_Presenter) sa to použiť nedá …

K tomu nenabádám jenom já, ale i autoři CI. Využívání všech tří částí je možnost, nikoliv povinnost a někdy je to prostě kontraproduktivní.
Kde k tomu nabádajú ? Z dokumentácie aktuálnej verzie to vyzerá opačne:
CodeIgniter is based on the Model-View-Controller development pattern. MVC is a software approach that separates application logic from presentation. In practice, it permits your web pages to contain minimal scripting since the presentation is separate from the PHP scripting.
Čiže: CI je založený na MVC ktorý vedie k oddeleniu aplikačnej logiky od prezentácie. V praxi to znamená, že Vaše webové stránky obsahujú minimum skriptov pretože prezentácia je oddelená od PHP skriptovania
Teda bastliť všetko dokopy je tak trochu opak MVC vzoru.
Nox
Profil
Dost přemýšlim že nakonec zkusim Nette... třeba budu moct dát časem nějaké srovnání s Kohanou, na netu jsem toto konkrétně (KxN) nenašel vůbec nikde (což není až tak překvapivý...)
wizard
Profil
CodeIgniter používám dlouho a rád bych skočil na Nette. Vypadá lépe a schopněji pro větší projekty, ale v CI jsem vždy naprogramoval co jsem potřeboval.

- opravdu velmi strmá křivka učení, zkouknete jeden screencast a chápete to všechno. Nette leckdo ani "nenainstaluje"
- dokumentace mi přišla vždy v pohodě, vše jsem dohledal.
- Nette má parádní českou komunitu, ale english je nezbytná pro programátory čehokoli

Nette mě láká a asi u něj skončím, snad to David zas nebude moc měnit ;)

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0