DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > PHP
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

PHP PHP aplikacije, Smarty, PEAR

Odgovori
 
Alati teme Način prikaza
Staro 06. 09. 2010.   #11
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

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.
ivanhoe je offline   Odgovorite uz citat
Staro 06. 09. 2010.   #12
dee
Domagoj Horvat
Expert
 
Avatar dee
 
Datum učlanjenja: 24.07.2006
Lokacija: Zagreb
Poruke: 502
Hvala: 22
10 "Hvala" u 8 poruka
dee is on a distinguished road
Pošaljite ICQ poruku za dee
Default

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
dee je offline   Odgovorite uz citat
"Hvala" dee za poruku:
Staro 09. 09. 2010.   #13
Goran Rakić
wannabe hacker
Na probnom radu
 
Avatar Goran Rakić
 
Datum učlanjenja: 10.06.2005
Lokacija: Beograd
Poruke: 10
Hvala: 0
0 "Hvala" u 0 poruka
Goran Rakić is on a distinguished road
Pošaljite poruku preko Yahoo za Goran Rakić
Default

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 23:33.
Goran Rakić je offline   Odgovorite uz citat
Staro 10. 09. 2010.   #14
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

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.
ivanhoe je offline   Odgovorite uz citat
2 članova zahvaljuje ivanhoe za poruku:
Staro 10. 09. 2010.   #15
Goran Rakić
wannabe hacker
Na probnom radu
 
Avatar Goran Rakić
 
Datum učlanjenja: 10.06.2005
Lokacija: Beograd
Poruke: 10
Hvala: 0
0 "Hvala" u 0 poruka
Goran Rakić is on a distinguished road
Pošaljite poruku preko Yahoo za Goran Rakić
Default

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 01:51.
Goran Rakić je offline   Odgovorite uz citat
Staro 10. 09. 2010.   #16
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

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.
ivanhoe je offline   Odgovorite uz citat
Staro 10. 09. 2010.   #17
jablan
VD IT Direktora
Invented the damn thing
 
Avatar jablan
 
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
jablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamen
Default

Citat:
Originalno napisao ivanhoe Pogledajte poruku
bilo mi je jako konfuzno dok nisam naucio gde je sta, za sta su mi trebale nedelje...
Pa kad pišeš kod, gledaš da tebi bude što zgodnije, a ne nekom drugom, zar ne? BTW, pretpostavljam da bi ti trebalo mnogo manje vremena da je taj prethodnik ostavio neku kratku dokumentaciju ili odvojio dan-dva da ti objasni arhitekturu...

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
jablan je offline   Odgovorite uz citat
Staro 10. 09. 2010.   #18
LiquidBrain
Milan Cvejic
Wrote a book
 
Avatar LiquidBrain
 
Datum učlanjenja: 05.09.2006
Lokacija: Beograd
Poruke: 1.241
Hvala: 32
73 "Hvala" u 56 poruka
LiquidBrain će postati "faca" uskoro
Pošaljite poruku preko Yahoo za LiquidBrain
Default

Citat:
Originalno napisao jablan Pogledajte poruku
Na kraju krajeva, sve je mnogo bolje od kopi-pejsta.
Off Topic: Zato nema copy/paste na iPhone-u :P
__________________
http://weevify.com
LiquidBrain je offline   Odgovorite uz citat
Staro 10. 09. 2010.   #19
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

Citat:
Originalno napisao jablan Pogledajte poruku
Pa kad pišeš kod, gledaš da tebi bude što zgodnije, a ne nekom drugom, zar ne? BTW, pretpostavljam da bi ti trebalo mnogo manje vremena da je taj prethodnik ostavio neku kratku dokumentaciju ili odvojio dan-dva da ti objasni arhitekturu...

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š.
Pomagao mi je on, nije to problem, nego upravo ovo sto navodis, tesko je naci deo koda koji ti treba jer moras da trazis po stablu nasledjivanja gde se generise taj komad. Covek je suvise fakultetski iseckao arhitekturu, sa milion klasa koje nasledjuju jedna drugu i dodaju po jednu-dve metode svaka, i onda kontroler ima 10-tak "predaka" u hijerahiji, templejti isto tako, masa stvari se radi "automatski", tako da kad pogledas krajnji fajl nemas pojma odakle se neki komad koda stvorio, i zasto tako radi. I sto je najgore on je imao i logiku automatskog nasledjivanja templejta po imenu i folderima, sto na prvi pogled deluje jako elegantno, ali onda iz konkretnog templejta koji si otvorio ne mozes nikako da vidis odakle on nasledjuje sadrzaj, nego moras da znas logiku po kojoj se templejti ulancavaju. Ova varijanta gde to explicitno pise u templejtu je svakako bolja.

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.
ivanhoe je offline   Odgovorite uz citat
Staro 10. 09. 2010.   #20
Dragi Tata
dinosaurus
Master
 
Avatar Dragi Tata
 
Datum učlanjenja: 29.12.2005
Lokacija: Nova Engleska
Poruke: 636
Hvala: 79
263 "Hvala" u 66 poruka
Dragi Tata će postati "faca" uskoroDragi Tata će postati "faca" uskoroDragi Tata će postati "faca" uskoro
Default

Citat:
Originalno napisao bluesman Pogledajte poruku
a + b * c?
Off Topic:
Прави програмери то пишу овако:

Kôd:
(+ a (* b c))
(Мало зезам Филипа Милетића ако прати ову дискусију)

Dragi Tata je offline   Odgovorite uz citat
"Hvala" Dragi Tata za poruku:
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
Language recognition treety Linkovi 0 06. 05. 2009. 01:59
Select language ... Ivan Opušteno 32 22. 12. 2006. 14:40
Language kodovi za srpski nesh Web aplikacije, web servisi i software 23 13. 10. 2005. 22:00


Vreme je GMT +2. Trenutno vreme je 02:09.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.