Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]OOP i system szablonów
Forum PHP.pl > Forum > Przedszkole
kielich
Witam wszystkich,

Mam pewną myśl która mi nie daje spokoju mianowicie czy system szablonów to dobre rozwiązanie jeśli chodzi o duży serwis , czy jest to w miarę bezpieczne stosować np. smarty (tylko przykład). Takie allegro czy np. nk czy widzicie takie serwisy na systemie szablonów??

Bardzo bym chciał poznać wasze zdanie z góry dziękuje .
deniol13
dobry system szablonów (smarty) jest na pewno bezpieczny ...
Korzystanie z systemu szablonów jest dobrym rozwiązaniem bo łatwo możesz edytować sam kod skryptu ulepszać go i łatwo zrobić nowy styl
deirathe
smarty- dobry system szablonow? Co do systemu szablonow stosowanych w duzych serwisach to sprobowalbym z TWING'iem. Nie wybralbym natomiast smarty- sa przestarzale, wolne i generalnie klamerki mnie jakos nie bawia
Quantum
Duże serwisy często stosują autorskie systemy szablonów. Nie piszą nowego pseudo-języka, bo żaden nie dorówna czystemu stricte PHP. Przy dużym ruchu na stronie każde ms podczas renderowania są niesamowicie ważne. Takie silniki jak smarty, twig itp., zostały stworzone po to, aby ułatwić pracę programiście i jednocześnie zachować przejrzystość kodu w szablonach. Osobiście takiego czegoś.. kijem bym nie tknął tongue.gif wolę najprostsze, najbanalniejsze rozwiązania (czasem właśnie te bywają najlepsze), np. takie jak zaimplementowano w Kohana, a jeśli chodzi o przejrzystość, to wystarczy stosować pod-widoki i nie ma z tym problemu - ot takie moje zdanie na ten temat.
kielich
OK a jak byście widzieli takie serwis jak allegro czy nk na systemie szablonów??
Czy dobrym rozwiązaniem jest mieszanie kodu OOP z html ?
Quantum
Cytat
OK a jak byście widzieli takie serwis jak allegro czy nk na systemie szablonów??
Czy dobrym rozwiązaniem jest mieszanie kodu OOP z html ?


Dałem Ci linka w poście wcześniej, zobacz jak oni to rozwiązali. Oddzielenie logiki i widoku to podstawa. Nk czy allegro, napewno stosują własne rozwiązania, systemy, opierające się o wzorce projektowe, typu MVC czy HMVC.
Mieszanie kodu HTML i PHP to grzech największy smile.gif
darko
Cytat(kielich @ 21.01.2010, 10:50:24 ) *
OK a jak byście widzieli takie serwis jak allegro czy nk na systemie szablonów??
Czy dobrym rozwiązaniem jest mieszanie kodu OOP z html ?

Nie jest dobre, a już zwłaszcza modelu z widokiem. Duże serwisy stoją na frameworkach, które zapewniają obsługę widoków (implementują własne mechanizmy lub korzystają z zewnętrznych rozwiązań).
Quantum
W widokach (warstwa prezentacyjna) kod PHP powinien ograniczać się do użycia prostych warunków, pętli, echa. Ważne jest też, aby zachować poprawną strukturę szablonów, kod PHP ma być zagnieżdżony w kodzie HTML, a nie odwrotnie, przykład:

dobrze :

  1. <?php foreach ($array as $key => $value): ?>
  2. <tr><td><?php echo $key ?></td><?php echo $value ?></td></tr>
  3. <?php endforeach ?>


źle :

  1.  
  2. foreach ($array as $key => $value)
  3. {
  4. echo '<tr><td>'.$key.'</td></tr>';
  5. }
  6.  


napewno zauważysz, że drugi przykład będzie bardziej czytelny, ale niestety nie poprawny. Właśnie po to stworzono systemy szablonów, żeby uprościć strukturę widoków, ale czy ich używać, musisz sam zdecydować. Pomyśl czy twój serwis będzie narażony na tak duży ruch jak allegro ?
kielich
OK no super że napisaliście co myślicie , każdy to co myślał smile.gif
A co do frameworków to co myślicie o symfony questionmark.gif Czy lepsze rozwiązanie niż stosowanie np smarty z "surowym " OOP questionmark.gifquestionmark.gif
Quantum
Symfony to.. potężny framework, nie miałem z nim wiele do czynienia więc nie będę się na jego temat wypowiadał, ale zastanów się czy rzeczywiście potrzebujesz wszystkiego co oferuje. Osobiście polecam KohanaPHP, bardzo lekki, elastyczny no i jednocześnie nie jest tak zasobożerny. Napisałem kilka projektów na własnym frameworku, ale żeby takowy stworzyć musisz wszystko zaplanować od początku. Wiele razy spotykałem się z problemami, kiedy to w systemie na każdym kroku pojawiały się "wąskie gardła".

Pozdrawiam.
Zyx
Cytat
Duże serwisy często stosują autorskie systemy szablonów. Nie piszą nowego pseudo-języka, bo żaden nie dorówna czystemu stricte PHP.


Guzik prawda. PHP jest takim językiem, jak każdy inny. W szczególności można go zastąpić czymś lepiej dostosowanym do tego i taki teoretycznie jest cel tworzenia tzw. "autorskich języków". A że jakość tych języków w 95% przypadków jest dyskusyjna (np. Smarty), to już wynika z braku wyobraźni autorów, braku czasu i paru innych czynników, a nie z tego, że "PHP jest najlepszy". Open Power Template, PHPTAL, w ostateczności Twig - oto co najmniej trzy systemy robione z głową, przy czym ten ostatni to tak bardziej jako dodatek podaję (idea jest słuszna, ale z częścią pomysłów Potenciera, których tam używa, mocno się nie zgadzam). Rozumieją kod HTML, mają mechanizmy do modularyzacji szablonów, ukrywania szczegółów implementacyjnych, automatyczne filtrowanie danych i masę innych rzeczy.

Duże serwisy często stosują systemy szablonów bazujące na PHP, bo takie systemy szablonów są we frameworkach. A jest tak dlatego, że odpowiednio dobry parser ma złożoność niewiele mniejszą, niż cała reszta frameworka i po prostu idzie się "po kosztach". Parę klas-helperów jest znacznie łatwiej napisać, tylko że później zmienić coś w tym to jest koszmar.

Cytat
A co do frameworków to co myślicie o symfony Czy lepsze rozwiązanie niż stosowanie np smarty z "surowym " OOP


Mylisz pojęcia. Nie ma czegoś takiego, jak "cośtam z surowym OOP". Jak sobie zrobisz szkielet aplikacji, to to też jest framework, tyle że autorski i być może kiepsko zrobiony. Gotowe frameworki są dobrze zaprojektowane, przetestowane, więc wystarczy się tylko nauczyć, jak go używać i można od razu zacząć robić stronę, nie bawiąc się w techniczne szczegóły. I one też mają systemy szablonów, najczęściej oparte na PHP, ale przeważnie da się podpiąć do nich inne. Pisanie własnego frameworka to dobry wybór, jeśli po prostu chcemy się nauczyć, jak to działa od środka, albo jeśli naprawdę mamy jakieś mocno specyficzne wymagania.
kielich
sniffer32 NO niby nie potrzebuje teraz wszystkiego co oferuje nam symfony no ale patrząc w przyszłość czy kohana kiedy mu dorówna ? Czy będzie w pewnym stopniu posiadał możliwość jakie posiada symfony? Wiadomo kohana jest lżejsza itd.
Crozin
Może ktoś podrzucić jakieś testy wydajności porównujące Symfony i Kohanę? To, że coś jest bardziej rozbudowane nie znaczy, że jest ociężałe.

PS. "hello world" to nie test...
kielich
Crozin: NO zgodzę się z tobą i również chciałbym to zobaczyć smile.gif

A co sądzicie jeszcze o Zend Framework . Przeglądając wszystkie te podane w tym poście i kiedy patrząc na zenda (jego wielkość) to się przeraziłem najnowsza wersja ~45MB sad.gif ohhh ....
Volume
Cytat(sniffer32 @ 21.01.2010, 11:13:14 ) *
W widokach (warstwa prezentacyjna) kod PHP powinien ograniczać się do użycia prostych warunków, pętli, echa. Ważne jest też, aby zachować poprawną strukturę szablonów, kod PHP ma być zagnieżdżony w kodzie HTML, a nie odwrotnie, przykład:

dobrze :

  1. <?php foreach ($array as $key => $value): ?>
  2. <tr><td><?php echo $key ?></td><?php echo $value ?></td></tr>
  3. <?php endforeach ?>


źle :

  1.  
  2. foreach ($array as $key => $value)
  3. {
  4. echo '<tr><td>'.$key.'</td></tr>';
  5. }
  6.  


napewno zauważysz, że drugi przykład będzie bardziej czytelny, ale niestety nie poprawny. Właśnie po to stworzono systemy szablonów, żeby uprościć strukturę widoków, ale czy ich używać, musisz sam zdecydować. Pomyśl czy twój serwis będzie narażony na tak duży ruch jak allegro ?

Czemu ten drugi zapis nie jest dobry? Chodzi o to ze jest wolniejszy czy moze ma jeszcze jakies inne wady?
Mephistofeles
To jak z wlewaniem kwasu do wody winksmiley.jpg. Jako, że szablon w dużej mierze jest statyczny, to PHP powinien być tylko dodatkiem.
pedro84
Tak jak napisał sniffer32 to kod PHP ma być zagnieżdżony w HTML, a nie na odwrót. Przecież wariant pierwszy jest o wiele łatwiejszy do czytania, nie uważasz?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.