|
PHP PHP aplikacije, Smarty, PEAR |
|
Alati teme | Način prikaza |
06. 09. 2010. | #11 |
Ivan Dilber
Sir Write-a-Lot
|
to ti bas nije sjajna ideja, mozes sa truncate lako da preseces html link na pola i da dobijes nevalidan html....
__________________
Leadership is the art of getting people to want to do what you know must be done. |
06. 09. 2010. | #12 |
Domagoj Horvat
Expert
|
Cini mi se da je cijela rasprava krivo postavljena (ne ova na devprotalk nego opcenito 'php - template jezik ili ne'). Jer, i c++ moze bit template jezik. Poanta je, kako mi se cini, u tome kako se shvaca svrha koristenja PHPa (ili bilo kojeg drugog jezika). Ako je svrha npr. aplikacija koja ima svoj skup funkcija, a rezultati kojih se u nekakvom prikazu posalju korisniku onda ne znam o kakvom template jeziku mozemo govorit?
Ako se pak server side logika koristi da bi se radila fadeIn-Out skripta slika na klijentu (vidio sam taj slucaj u praksi ) onda mozemo o PHPu govorit i kao client-side skriptnom jeziku. U tom svjetlu, ostaje vidjet zasto PHP postoji i za sto je sve sposoban. Praksa nas uci da se, kao i svaki jezik, moze koristit i za manipulacije HTMLom. Medjutim, isto tako nas praksa uci da je svodjenje PHPa na to prije izraz nepoznavanja njegovih mogucnosti nego stvarni opis njegove svrhe.
__________________
postoje ludosti bez kojih je nemoguce ljudsko dostojanstvo |
"Hvala" dee za poruku: |
09. 09. 2010. | #13 |
wannabe hacker
Na probnom radu
|
Batalio sam Smarty pre nekoliko godina u korist PHP-a kao jezika za pisanje šablona, odnosno za pisanje skripta pogleda (engl. view script). Osnovna namera bila mi je da očistim kontroler (u MVC) od svog suvišnog koda. Kontroler upravlja prijemom zahteva i definiše različite callbackove koji spuste pozive u model aplikacije.
U kodu pogleda sada mogu da definišem sav PHP kod za lepljenje na callback-ove kontrolera i da slobodno koristim PHP za upravljanje izlazom i podacima iz kontrolera (bilo da odgovor na zahtev pravi HTML, CSS ili PDF). Ovim imam bolju razdvojenost slojeva aplikacije ali gubim mogućnost da "dizajner menja šablon". Ne znam da li iko pušta dizajnere da menjaju šablon, pitanje da li i HTML valjan umeju da pišu. Veb dizajner u timu pak razumeće i to malo PHP koda. Ako prihvatimo rad sa komponentama (za RIA) onda se slaganje forme prikaza obavlja u PHP kodu, a ovim to lepo stoji u skripti pogleda, gde i treba. Smarty mi se u jednom trenutku učinio nepotreban bloat i ograničenje. Ipak i dalje bih preporučio programerima da ga koriste kada im odgovara. Ako govorimo isključivo o veb stranama, sintaksa šablona je lepša u Smarty-ju nego kada se piše u PHP-u. Ja bih se ipak odlučio za eksterni pretprocesor, ali ne znam kako bi se u nekim timovima drugi sa tim uklopili. Smarty ima dokumentovanu sintaksu, široko je poznat, i to je značajna prednost. Nasleđivanje šablona je odličan pristup koji već neko vreme koristim. Okačio sam izvučen mali kodić iz veće biblioteke kao primer kako se to može ubaciti bez Smartyja. Osobine: 1) Pogled se izvršava u imenskom prostoru metode render klase fw_ViewRenderer 2) Promenljive prenete kao niz se ubacuju u imenski prostor i tako su dostupne iz šablona. Iz pogleda moguće je pristupiti renderer objektu preko $this 4) Renderer dozvoljava šablonu da odredi šablon koji će da nasledi i definiše blokove koje se prenose nasleđenom šablonu. Blokovi se koriste kao izmenjivi delovi roditeljskog šablona, a mogu biti definisani sa begin..end ili mogu biti učitani preko spoljnog šablona (kao što smo radili sa include) 5) Pri izvršavanju pogleda izvršava se prvo šablon-dete, a potom rekurzivno svi roditeljski šabloni kojima se sada blokovi prenose uz šablonske promenljive (omogućeno prepisivanje) 6) Postoji pretprocesor koji ulepšava i validira sintaksu šablona, ali nije neophodan (ovde je čist PHP kod) 7) Preko male touple-like klase pogled može da definiše i skup HTTP zaglavlja. Pogled nije ograničen na HTML, mada sa nasleđivanjem u binarnim šablonima treba paziti sa proredima oko begin..end. Pogledajte na: http://gitorious.org/grakic-sandbox/...r/trees/master tmpl/_base.html je apstraktni šablon koji ima prazan blok central_page. U realnom primeru imali bismo header, footer, left_column,... Osnovna razlika u odnosu na include je da base šablon ne povlači ove delove, on samo definiše njihov raspored i okolni statički HTML kod. Tek šablon koji nasledi base će da odredi sadržaj ovih blokova. Samo nasleđivanje u kontroleru uopšte ne vidimo, tamo se poziva tmpl/index.html a kako on dalje radi nas ne zanima. Index šablon će definisati sadržaj central_page bloka, a mogli smo i da na tom mestu povučemo include (preko set_block(filename, vars); ). Poslednja izmena od Goran Rakić : 09. 09. 2010. u 22:33. |
09. 09. 2010. | #14 |
Ivan Dilber
Sir Write-a-Lot
|
Off Topic: moram da pitam, ako imas "poglede" i "sablone", sto onda nisi i callback preveo ? Ja licno ne volim ovakav pristup. Nazigled je super kad se sve radi negde u pozadini, automatski i "nevidljivo", ali onda kad ti u ruke upadne takav projekat koji je neko drugi pisao, pa treba da pohvatas sta, gde, zasto, ko koga poziva, gde se sta nasledjuje... thanx, but no thanx
__________________
Leadership is the art of getting people to want to do what you know must be done. |
2 članova zahvaljuje ivanhoe za poruku: |
10. 09. 2010. | #15 |
wannabe hacker
Na probnom radu
|
Ne znam šta je nevidljivo, sve piše u kodu.
Misliš li na nasleđivanje šablona? Meni je to toliko superiorno u odnosu na include da se nikada nazad ne bih vratio. Nasleđivanje ti omogućava da prirodno razmišljaš o šablonima, imaš stranicu za baštenske proizvode koja je kao proizvodi samo ima "..." što nije isto kao i stranica za baštenske proizvode se sastoji od zaglavlja, menija, leve kolone, podnožja, i ovoga između. Jedino što sam naglasio kao "nevidljivo" jeste što u oba slučaja (bilo nasleđivanje, bilo include) ti imaš isti kod u kontroleru koji traži taj i taj šablon, a definicija kako on izgleda je u samom šablonu. To je standardan princip enkapsulacije, ne mislim da protiv toga imaš nešto protiv. Poslednja izmena od Goran Rakić : 10. 09. 2010. u 00:51. |
10. 09. 2010. | #16 |
Ivan Dilber
Sir Write-a-Lot
|
ne mislim nuzno na tvoj kod, jer ga nisam bas pazljivo pogledao, nego generalno, na previse iskomplikovanu arhitekturu.. jedan od osnovnih prednosti MVC po meni je sto bi trebalo da je lakse naci kako da promenis peti link sa leva, bez da provedes 2 nedelje kopajuci po kodu..
nisam puno radio sa nasledjivanjem templejta, ali ono sto jesam (jedan veliki sajt pisan u kohani) bilo mi je jako konfuzno dok nisam naucio gde je sta, za sta su mi trebale nedelje... opet, mozda je to do tog koda, a ne do koncepta, kad budem malo vise radio sa tim (kad izadje novi Smarty recimo), mozda promenim misljenje
__________________
Leadership is the art of getting people to want to do what you know must be done. |
10. 09. 2010. | #17 | |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
Citat:
Meni se template inheritance čini sasvim ok, logičan i ekonomičan koncept. Ali cenim da si u pravu da je debagiranje otežano, jer nikad nisi na prvi pogled siguran iz kog tačno fajla dolazi HTML koji vidiš na stranici, pa moraš da se "penješ" kroz hijerarhiju dok ga ne nađeš. Na kraju krajeva, sve je mnogo bolje od kopi-pejsta.
__________________
blog |
|
10. 09. 2010. | #18 |
Milan Cvejic
Wrote a book
|
Off Topic: Zato nema copy/paste na iPhone-u :P
__________________
http://weevify.com |
10. 09. 2010. | #19 | |
Ivan Dilber
Sir Write-a-Lot
|
Citat:
Nebitno, verovatno se samo radi o mind-setupu, meni je logicnije da templejte posmatram kao stranu koja dalje ima boxove u sebi, nego obrnuto kao box koji ima wrappere oko sebe. Pretpostavljam da je to samo stvar navike.
__________________
Leadership is the art of getting people to want to do what you know must be done. |
|
10. 09. 2010. | #20 |
dinosaurus
Master
Datum učlanjenja: 29.12.2005
Lokacija: Nova Engleska
Poruke: 636
Hvala: 79
263 "Hvala" u 66 poruka
|
|
"Hvala" Dragi Tata za poruku: |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Language recognition | treety | Linkovi | 0 | 06. 05. 2009. 00:59 |
Select language ... | Ivan | Opušteno | 32 | 22. 12. 2006. 13:40 |
Language kodovi za srpski | nesh | Web aplikacije, web servisi i software | 23 | 13. 10. 2005. 21:00 |