![]() |
PHP frameworks, again
nismo skoro o frameworcima :D
gledao sam popularnije php frameworks pre nekoliko godina i resio da mi je zivot lepsi kad koristim svoj kod (gledao = koristio u 1-2 projekta) imao sam projekat na kome je bilo radjeno i trebalo je da se odrade neke sitnice samo korisceni framework je bio PRADO tad sam se setio zasto u pocetku nisam otisao ka .NET-u ... zend framework je tad bio jos mlad i menjali su stalno strukturu i API - neozbiljno. ok, bili su beta, sad koliko cujem opet ima problema izmedju poslednjih 2 minor verzija symphony - previse automatizovano mi se cinilo tad. a i ne volim da pored PHP-a (koji je idealan za templates, ako se koristi pametno), pored smarty-ja (koji koristim), sad ucim i neki .yml koristio cake 1.1 u 2 projekta najvise mi se dopao, ali nije imao neke stvari tipa pravi multilanguage, koji mi je napravio takve probleme da sam se naljutio i opet se vratio na licne biblioteke proslo je neko vreme ja postao lenj programer, frameworks postali bolji (mozda) nisam sad puno gledao, uglavnom ZF mi je malo tezak, uzeo sam neki shop da pregledam - shvatih da ja od programiranja ne razumem nista :D cake je izgleda dosta ok, a i blizak je mom nacinu rada symphony bi trebao pokriti ono za lenjost tako da je opet u igri :D ko sta koristi, zasto je izabrao to resenje, neke prednosti i mane iz prve ruke? |
U se' i u svoje kljuse ... i evolucija :)
Koristim svoj framework koji odavno guram i vremenom stalno evoluira kako dozvoljavaju mogućnosti i potrebe. |
trenutno CI
|
CodeIgniter
- vrlo fleksibilan, sve je prosirivo i ne prisiljava na striktno kodiranje - eksremno mali footprint, zato vazi i za jedan od najbrzih - godisnje svega 2-3 nove verzije - odlican help - odlican komjuniti - kriva ucenja vise nego dobra - raspakujes i radi :) Mozda deluje poprilicno subjektivno ovako napisano ali eto ja ga koristim gotovo 3 god. i tesko mi da se odlepim. |
Koristio ZF, ali posle problema sa nekompatibilnoscu izmendju dve minor verzije koji su se desavali skoro redovno odustao sam od njega.
Sada CI. Odlicna stvar. Nije idealan ali da li postoji takav? Uvek u potrazi za necim boljim, ali sada zavrsavam nekoliko projekata u CI pa cemo da vidimo sta ce se u medjuvremenu desavati. |
Ja sam nedavno presao na Cake i mogu reci da sam prezadovoljan. Veliki komuniti, dosta vec gotovih helpera i komponenti, ok dokumentacija, lepo formatiran kod. Uglavnom lako je snaci se u njemu. Svaka preporuka.
Off Topic: Inace, u zadnje vreme imam prilike dosta da radim sa magentom koji je pisan u ZF-u, i mogu reci da mi nikad ne bi palo na pamet da predjem sa Cake-a na ZF. |
CodeIgniter
- brz, lak, jednostavan, minimalisticki - veliki community, perfektna dokumentacija, dobar forum - gomila vec gotovih uradjenih spremnih pluginova/helpera/biblioteka (bilo da je captcha, paypal ili googleMaps..) - standardan i dosta prosiren, tako da je lako naci nove kolege i kvalitetne programere, a samim tim je i cistiji kod jedino "bolje" od CodeIgnitera bi "trebalo" da bude Kohana, sto je ustvari samo fork CI-ja, ali je to framework optimizovan samo za PHP5, ima nesto manji community, mozda diskutabilniju dokumentaciju, ali overall - ovde ga svi hvale, tako da cu i ja vrlo verovatno dosta skoro da ga probam i stavim na 'pravi test'. :) cheers, dootzky |
Cekajte samo da izadje novi CI :1059:
|
ok, znaci da je vreme da pogledam i CI :)
hvala |
Kohana i CI su super, najblizi mojoj logici, ali mi je malo glupo da prelazim na tudji kad vec imam svoj kod za vecinu osnovnih stvari...
|
stvar je u tome sto sam resio da prenapisem moj base (nije framework)
da reorganizujem malo stvari, sakupljalo se tu godinama ponesta a nema se uvek vremena da se skocka nije samo to, naravno, tokom vremena shvatim da neke stvari mogu i bolje itd itd pa rekoh pre nego krenem, da overim kakvo je stanje |
Lično, koristim svoj framework (koji je u stvari CMS).
Nekako mi se Kohana čini rešenjem u kome bih mogao da se oprobam. Ono što je problem kao i kod CI jeste nedostatak imena koje stoji iza toga, a to zanči da se ne zna dokle će to kao projekat da živi. Zend je nešto što ima ime (brand), ali je ogroman, za neke stvari spor, za učenje težak... Malo me je iznenadilo što kažete da ima razlike u minnor verzijama... Ali je logično rešenje sa menadžerske strane. |
CI ce sigurno dugo trajati jer nije od juce. Pogotovo sto ispred sebe ima odlican komercijalni proizvod koji su velike narodne mase prihvatile i cija ce v2 biti kompletno uradjena u CI.
|
Citat:
Citat:
Kada smo se već dotakli teme framework sistema mogu da se "pohvalim" da sam od ostalih imao prilike da probam CakePHP i da se detaljnije pozabavim ZendFrameworkom. Prvi mi se jednostavno nije svideo zbog "pečenja" skriptova iz konzole kao i donekle konfuznog OOP modela. Što se tiče "Zend Frameworka" u njega sam polagao najviše nade ali posle intenzivnog upoznavanja sa ovim razvojnim okruženjem jednostavno sam odustao. Naime, iako ima poprilično dobar i fleksibilan OOP model Zend je po meni previše bloatovan framework koji uz to zahteva da aplikacije pisane u njemu budu dodatno optimizovane pre nego što se postave na produkcione servere. Stvar koja je konačno prevagnula na stranu odluke da dobro razmislim pre nego što ikada Zend razmotrim kao opciju za neki ozbiljan projekat je prevelik stepen neozbiljnosti razvojnog tima koji iz revizije u reviziju neprekidno menja koncepciju nekih bitnih stavki frameworka. To bukvalno znači da se pojavljuju situacije u kojima aplikacija pisana u prethodnoj verziji frameworka mora da se ispravlja da bi funkcionisala sa novom verzijom. Da su u pitanju razlike u punim verzijama onda bih i razumeo ali raditi ovakve stvari u revizijama je po meni smešno i veoma neozbiljno. Naravno to ne znači da Zend treba potpuno izbaciti kao opciju jer postoje situacije kada je njegovo učenje neophodno s obzirom da postoje kompanije koje u svojim PHP sektorima zahtevaju poznavanje Zend Frameworka. Da li je to dobro ili nije je stvar koju moraju same kompanije da razmotre ali svakako ne smeta upoznati se sa načinima na koje Zend implementira neke stvari iz samog PHPa (design patterni itd.) |
Ja sam gledao par frameworkova i odlucio da malo dublje oprobam CodeIgniter. Ima relativno dobar (i opsiran) help. Zajednica na forumu je Ok, takodje.
Ono sto bih kod njega izdvojio je da se brzo moze poceti sa razvojem, jer za upoznavanje CI "sistema" nije potrebno mnogo vremena. A druga stvar je to da se sve klase mogu vrlo lako prosiriti. Ima solidne helpere i biblioteke. Izdvojite dan-dva po par sati i probajte. |
Ja stvarno ne vidim svrhu tih frameworka... programiram u PHP-u vec 4-5 godina i nikada nisam osjetio potrebu da koristim tako nesto.
Svi ti framevokovi :) gore nabrojani u biti vise odmazu nego sto pomazu, da bi se neka komplikovana stvar uradila jednostavno neke druge stvari se zato koplikuju do boli. Bas nekidan pomazem prijatelju i on radi sa tim Prado fw, znaci katastrofa. Da uhvati nesto GET metodom, obradi, povuce iz baze i izvrti treba more sintakse tipa Kôd:
$x = $nesto->drugo->pa_trece->mozda->jelTako(); Jel ima neko ovde iskusan (iskusniji od mene, bar) da koristi neki FW u nekom zivom, vecem projektu i da je zadovoljan? Da kaze realne prednosti (mozda neko parce koda, daj kod jebes pricu)... U zadnje vrijeme svi bruje o frameworku ovom onom, a ja idalje koristim neki svoj FW koji je u biti skup od 5-6 klasa i organizacija direktorija ... |
Nisam koristio navideni FW, ali u CI-u je to sto si pitao relativno prosto.
A GET je recimo $this->input->get(); Pozivanje neke f-je koja radi sa bazom: $this->db->get_my_entry(); Ne znam, ali moje subjektivno misljenje je da je CI vrlo dobra stvar. Razloge sam naveo u prethodnoj poruci, a naveli su ih i drugi iznad. Sto se primene CI-a tice, evo liste ko ga sve koristi: http://codeigniter.com/projects/ |
Za timski rad je svakako bolje koristiti poznati framework. Lakse je naci programera koji ima iskustva sa recimo Zendom, nego ga priucavati da koristi nekakvu kucnu sklepaniju sa losom (ako uopste postoji) dokumentacijom, i kodom sumnjive kvalitete.
Za ovo se naravno racuna da pricamo o tipicnim web aplikacijama osrednje velicine. Ako ste bas naumili da pravite novi facebook :), onda verovatno imate i kapital za par dobrih inzenjera. Sto se tice CodeIgnitera, licno mi se ne svidja iz nekoliko razloga: - php 4 - EllisLab - pogledajte samo njihov ExpressionEngine, slobodno bubreg da prodate ako zelite da platite sve features koje nudi. To pokazuje stav ove firme. - spor razvoj Mnogo vise mi se dopada Kohana, fork CI-a. PHP5, poprilicno dobra dokumentacija, dobra licenca, dosta dobrih modula koji mogu da ubrzaju razvoj tipicne web aplikacije, itd. Mana: previse brzo prave ogromne izmene na projektu, tako da nakon par meseci morate iznova pravite kompletan projekat ako zelite biti up to date. Mislim da bi bilo vredno spomenuti jos ova dva fw-a: - Yii - Recess! |
A zend? Jel koristi neko njih, posto koliko vidim svi preferiraju CI/kohanu ?
Navodno je Zend postao daleko brzi u zadnjih par godina i znam da se neki njihovi moduli koriste na mnogim velikim projektima (samo moduli bez ostatka FW), ali nemam nikakvog licnog iskustva sa Zendom, osim malo igranja u lokalu... |
prado je posebna prica
to je nesta kao .NET na PHP nacin (tako su mi objasnili neke mega nelogicnosti) :D imas klas za sve za tabelu za input za input tipa reset i sve to sa sobom nosi plusove i minuse kao ideja, nije to skroooooz lose, ali je (meni) muka pisati u tako necemu zend je postao "previse enterprise" za moj ukus stoji to sto zidoo kaze za PHP FW: sve je lepo dok ti ne zatreba nesto custom posto imam drugare koji pisu u drugim jezicima i tamo koncepcija FW-a postoji vec neko duze vreme, pitam sta tamo rade. odgovore oni meni: pa nista, not supported feature :D |
Citat:
Ono što ti FW omogućava je da 90% funkcionalnosti ne radiš pešaka, kao što radiš npr. u čistom PHP-u, to jest drastično skraćuje vreme i broj linija koda za 90% funkcionalnosti. 10% funkcionalnosti nije moguće ostvariti prečicama koje nudi FW i onda to praktično odradiš pešaka, tj. kao i da ne korisiš FW. (Procenti su naravno odokativni, ali je ideja ta.) E sad, tačno je to da kad u 90% elegantnog high-level koda treba da ubaciš 10% prljavštine (banalan primer, neki custom SQL upit), nije ti prijatno i to đubre dosta bode oči, ali kad uporedim to sa 100% koda koji je "custom", naravno da ću se opredeliti za prvu varijantu (ili, eto, reći "not supported" ako me baš mrzi ;))... Da rezimiram, nema razloga da i za PHP frejmvorke ne važi ista logika - ne uvode nikakav penalty, a donose baš dosta ušteda. Naravno, pored brzine razvoja, frejmvorci donose dosta drugih koristi: standardizovana arhitektura aplikacije, lakše održavanje i uvođenje novih programera, veća sigurnost kroz out-of-the-box sisteme za sanitizaciju i validaciju korisničkog unosa, sistem za verzionisanje baze podataka, testing framework itd itd. |
slazem se u potpunosti sa Jablanom.
|
Ev upravo sam skino Zend 7 IDE (dje ide?) pa cu pokrenem omanji projekt. Valjda me nece mrzeti zavrsiti pa napisati utisak :)
Znam ja da je u programiranju dosta stvari zapravo stvar navike, al nekako mi sve ti FW djeluju cudno :) @jablan, ev kao negacijska grupa samo da u mane FW dodam sigurnost poso si ti naveo standardizaciju, tako da ako iskrsne bug u validaciji korisnickih unosa svi znaju da je tvoja aplikacija osjetljiva :) |
Citat:
|
@ CI fanbois
Gledao sam ga nekoliko puta, cak bio blizu odluke da pocnem da ga koristim, ali on je toliko prljav da mi cigance pored konteinera izgleda kao olicenje cistoce. Dokle god se ne manu php4 podrske nema smisla raditi sa njim, previse dirty hackova da bi se uradile stvari koje mogu elegantno i jednostavno u php5. Inace koristim svoj framework na kome radim preko 4-5god. |
@cvele, ako je to jedini problem, pogledaj onda kohanu, strict PHP5/OOP.
|
Koristim Zend Framework na dva velika projekta i mogu reci da sam zadovoljan.
Izabrani su pre svega zbog opsirne dokumentacije i radi standardizacije (das novom programeru Reference Guide, naglasis deo o Coding Standardu, i udri) Pre toga sam na jednom koristio Code Igniter, subjektivno mi je ZF dosta mocniji (koristimo dosta ZF klasa), ali posto nisam koristio CI i ZF na projektima iste velicine, ne mogu pouzdano reci. Izdvojio bih kao minus samo Zend_Form, vise sam se tukao sa njim nego sto sam pisao forme, mogao sam rucno da napravim validacije po 60 puta... Taj nacin stilizovanja preko dekoratora je ok kada se savlada, ali je put ka tome poplocan frustracijama... |
Citat:
Po meni, malo je mistifikovana reč "framework" zato izbegavam i da je koristim. Imali smo odavno neki izraz "hleb i mleko" za neke najobičnije stvari koje moraš da odradiš stalno, a smara te da ponavljanje iste radnje. Mislim da FW treba da te oslobodi tih muka, a za neke jako optimizovane stvari - mora da se radi custom. Naročito ne volim one automatski generisane querije, kada to vidim - naježim se. Takođe, spominju se "code čistunci", baš mislim da takvima ne leže tuđi FW, uvek se nađe nešto što ti se ne sviđa. |
Citat:
Poenta je da je "prerana optimizacija zlo svih zala". Ako FW krene da se vuče, videćemo zašto i optimizovaćemo njegove query-je. Ili, još bolje, poboljšaćemo FW da se bolje snalazi u takvim situacijama. Nijedan od njih nije bogom dan, ima lošijih i boljih, na nekima se aktivno radi itd. Citat:
Citat:
|
Citat:
Pogledacu kohanu, fala. |
Citat:
Citat:
A kada imaš nešto završeno, pa kreneš da "optimizuješ" kada sve već funkcioniše, onda upadaš u zamku: kreiranje novih bug-ova. Ako si od početka krenuo sa "optimizacijom", onda odmah i rešavaš sve bug-ove, i kada je "završeno" - onda je završeno za sva vremena i nema šta da ideš kasnije da "dodatno sređuješ" kod. Citat:
Generalno, moj stav je da su ti "all purpose" FW jako zgodni za stvari koje se kreću u domenu: jednostavne do srednje komplikovane, a ako "uhvatiš" sebe da "poboljšavaš" neki FW, onda ili taj FW uopšte nije za tebe ili si prevazišao mogućnosti tog FW. |
Citat:
Kohana, koliko vidim, cesto menja pravce i stalno postoji veliki problemi sa kompatibilnoscu sa prethodnim verzijama te stoga po meni nije za koriscenje. @Cvele: Kad kazes za CI prljav kod mislis na core ili na biblioteke? U bibiotekama moze da se nadje prljav kod ali svaka biblioteka moze da se zameni novom ili samo pojedinacne funkcije i to izvan core-a. Cak sam postovao jednu od takvih funkcija ovde pa sam skontao kako je bezveze napisana. Inace bih voleo kada bi ElisLab napravio rewrite tj jednu php5 paralelnu verziju CI-a kako bi se u potpunosti iskoristile prednosti petice. Svi ostali FW mi deluju robusno u odnosu na CI, doduse bar onako iz daljine tj na web-u... nisam ih probao pa mozda gresim. |
Citat:
Citat:
Nema veze, odlutali smo sad u offtopic, ja mogu samo da kažem da me jako raduje činjenica da su (i) naši developeri skapirali da u frejmvorcima leži veliki potencijal, sve ih je više (a pretpostavljam i da su sve bolji i bolji) a jasno je da Railsu pripada dobar deo zasluga za to. Vidim da ni MS ne sedi skrštenih ruku, ASP.NET MVC je već u drugoj verziji, a na osnovu onog što sam video, struktura fajlova mu je maltene identična Railsu. Imitacija je najiskreniji stadijum laskanja. :) |
Citat:
Prvo FW je još jedan layer između mene i PHP/MySQL i to sam automatski oprezan. Drugo, ne bih ja to mešao tako olako. Treće, nisam ga ja radio i ne volim da koristim nešto za šta nisam 100% siguran da znam tačno kako radi. Dalje, ne verujem da postoji i jedan framework koji može da generiše kompleksan mysql query bolje nego "ručno" (pričamo o ljudima koji poznaju dovoljno mysql da mogu to da urade). Moguće je i to, ali je pitanje po koju cenu. Ako će FW da potroši više vremena da pripremi query i analizira ono što mu ti serviraš, nego da izvrši query - onda je bolje poslati direktno SQL string napisan ručno. To, naravno, nije bitno kada imaš neki mali-do-srednji sajt koji će da se vrti kako god se vrti i neće da se muči previše kakav god query mu pošalješ. Ali ako imaš sistem u kojem je svaka sitnica bitna, onda volim da pišem sve ručno (naravno, ne pričam o querijima tipa UPDATE x SET y=z, to prepuštam da odradi FW). Takođe ne verujem da će FW da brine o security "sam od sebe", taj deo je daleko od moje "granice poverenja". Dakle ja verujem da će PHP, MySQL... Smarty... whatever, da odradi dobro "hleb i mleko" + tačno ono što mu ja kažem da uradi i tu je moj prag poverenja, čim krenem da se uzdam da će da odradi nešto umesto mene - imam problem sa tim. Možeš to da nazoveš i psihološki problem - meni je sve jedno - i dalje je problem. Video sam mnogo puta kako izgleda kada se generišu automatski, a video sam i mnogo puta "abuse" celog FW kada ljudi naprave jedan include file u koji ubace sve klase koje postoje i onda valjda očekuju od FW da im optimizuje njihov kod? I onda izjave kako je loš taj FW. Kada pričaš o Smarty, ja sam baš dosta vremena proveo da vidim šta se tačno dešava, kako izgledaju ti "kompajlirani" fajlovi, šta se dešava prilikom keširanja... čak i sam proces kompajliranja, pa sam testirao sistem "sa i bez smarty" da vidim koji je tačno njegov "fingerprint". Ustanovio sam da mogu da mu verujem dovoljno da ga slobodno koristim za sve projekte čak i one najzahtevnije, ali postoje neke stvari koje ne prepuštam smarty-ju već odradim ručno, bilo da je to zbog toga što sam Smarty nije dovoljne fleksibilan u tom delu ili mislim da treba da bude (bar malo) bolje. |
Citat:
|
Citat:
Kôd:
Student.find(:all, :conditions => { :first_name => "Harvey", :status => 1 }) Kôd:
SELECT * FROM students WHERE first_name = 'Harvey' AND status = 1 Citat:
Na kraju krajeva, koristeći Smarty, već si jednom nogom u frejmvorku. Pa ti vidi. ;) |
Problem sa FW je sto svi do jednog zahtevaju inicijalno ulaganje vremena i energije, da se shvati kako funkcionisu i da se sopstveni stil prilagodi njihovom, a sto si iskusniji i stariji to je sve teze. Takodje, svi ti leyeri i apstrakcije dovode do toga da kad dobijes tudji kod, a nisi iskusan sa konkretnim FW pozelis da nekoga ubijes...
Inace ja isto dobijem nervni slom od ORM-a. Po meni je to 10% zaista korisno, a 90% podilazenje programerima koji ne znaju SQL dovoljno da sami pisu upite. I onda umesto da odmah vidis sta se salje bazi, moras da gledas dokumentaciju sta koja metoda radi, da dumpujes query--ije i sl. da bi video zasto nesto ne radi. Secam se kako sam ja obozavao Delphi DB kompnente u mladosti, jer sam tada mrzeo baze, i bilo mi mnogo lakse da radim sa objektima... ali ako dobro vladas SQL-om, ORM ti je kao da plivas u perjanoj jakni.. just my $0.0.2, naravno... |
Citat:
|
samo je pitanje koji ce odabrati ;)
:D |
Citat:
Citat:
A što se tiče "analize" ... analizirao sam početkom godine baš ove koje najčešće spominjete, i svaki ima svoje dobre i loše strane, na žalost ni jedan nije bio bolji od onoga koji već koristim, tako da nije ni bilo potrebe da "prelazim". |
Vreme je GMT +2. Trenutno vreme je 12:15. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.