Skocz do zawartości

Szablony (template) niepotrzebne?


Elf

Rekomendowane odpowiedzi

phppl.ezpublish.no/wortal/tlumaczenia/szablony_i_systemy_szablonow

W powyzszym artykule autor stwierdza, ze systemy szablonow , jak np. Smarty, sa zbyteczne, skoro mozna to samo (a nawet lepiej) zrobic za pomoca PHP. Jakie jest Wasze zdanie?

PS. Moglby mi ktos poprawic byka w opisie tematu? Pozno juz bylo :)

//edited by Michał

zmieniłem tego BYKA.

Oficjalna strona serii Football Manager ( FM 2005, FM 2006 ) - CM Revolution

Forza MLKS Woźniki Śląskie!

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 60
  • Dodano
  • Ostatniej odpowiedzi

Szablony są potrzebne, jak robisz blog dla wielu osób...

Albo jakaś sieć sklepów, aukcji, itp.

Ja powtarzające się fragmenty kodu xhtml umieszczam w pliku inc i używam readfile(). Jeśli w tym kodzie jest jakaś prosta funkcja w php, np. dynamiczne title to robię include().

Cała filozofia. Szybkie i mało kilobajtów zajmuje.

Polecam linki stałe w Seomatik.pl oraz dopalacz stron Gotlink.pl.

obrazek.jpg

Odnośnik do komentarza
Udostępnij na innych stronach

W powyzszym artykule autor stwierdza, ze systemy szablonow , jak np. Smarty, sa zbyteczne, skoro mozna to samo (a nawet lepiej) zrobic za pomoca PHP. Jakie jest Wasze zdanie?
Przecież funkcjonalność szablonów jest w 100% oparta na PHP, wiec nie ma tutaj mowy o oddzieleniu jednego od drugiego.

Moje zdanie jest takie, że systemy szablonów np.: smarty jest swoistą sztuką dla sztuki, a stwierdzenie, że ułatwia to pracę z grafikiem całkowicie pozbawione sensu. Przykładowo w części kodu będącej szablonem smarty żeby wyświetlić wartość zmiennej musimy wpisać {$zmienna} a w kodzie nie będącym szablonem <?=$zmienna;?> więc jaka różnicą :D Ponadto w smarty mamy coś w rodzaju podjęcyzka z odmienną składnią którą musimy dodatkowo opanować. Z pewnością smarty umożliwia tworzenie stron o budowie odpowiadającym założenia Model-View-Controller (MVC).

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

A moje zdanie jest takie że kobyły jak Smarty albo wogóle jakieś udawanie MVC mija się z celem i tylko dokłada pracy, bo i tak nie da się zrobić pełnego MVC w PHP, a mi się raptem raz czy dwa zdażyło że robiłem taki sam serwis tylko z inną grafą. Gdyby to były smarty, grafe mógłby zapewne przelożyć ktokolwiek kto je zna, tak musiałem to robić ja- ale i tak ja bym to robił, więc co za różnica :D

MVC przydaje się IMO albo w dużych projektach, albo jeśli nad jednym projektem pracyje wiele osób, albo jeśli często zmieniają się ludzie pracujący przy projekcie.

Na swoje potrzeby mam "szablony" dużo mniej skomplikowane- po prostu HTML z tagami w środku - więc jak chcę coś zmienić w ogólniepowtarzającym się HTMLu (np. title i stopkę ) to robię to w jednym miejscu a nie w paru plikach. I tylo :)

no i podstawa na którą zwrócił uwagę Mion:

Przecież funkcjonalność szablonów jest w 100% oparta na PHP, wiec nie ma tutaj mowy o oddzieleniu jednego od drugiego.
Odnośnik do komentarza
Udostępnij na innych stronach

Przecież funkcjonalność szablonów jest w 100% oparta na PHP, wiec nie ma tutaj mowy o oddzieleniu jednego od drugiego.

Ale jak już wspomniałeś smarty tworzą własny język który trza opanować, niestety czasem niepotrzebne funkcje są potrzebne bo poprostu nie ma jak wykonać niektórych rzeczy w szablonach nie używając php.

Przykład wyświetlanie kategorii w moim blogu:

{BEGIN:category}
					{IF:$category.categoryLevel > $category.oldLevel}
						<ul>
						{VAR:parentLevel = [CREATED:category.categoryLevel] }
					{ELSE}
						{VAR:repeatUL = str_repeat("</ul>", [CREATED:parentLevel] - [CREATED:category.categoryLevel]) }
						{$repeatUL}
					{/IF}
				<li class="page_item"><a href="{$path}Zobacz/Kategoria/o/{$category.categoryURL}" title="{$category.categoryTitle}">{$category.categoryName}</a>
				{END}
				{VAR:repeatUL = str_repeat("</ul>", [CREATED:maxLevel] - 1 ) }
				{$repeatUL}

Niestety musiałem tak zrobić bo do php nie dawać kodu html.

PS> Kto mi wytłumaczy łopatologicznie co to MVC, bo nie rozumiem o co w tym tak naprawde chodzi :}

stopka usunieta z wpoodu wirusa na stronie docelowej

Odnośnik do komentarza
Udostępnij na innych stronach

Gdzies od roku mam doczynienienia ze smartym i odkad napisalem pierwszy projekt w oparciu o smarty nie wyobrazam sobie wiecej pracy bez (jakiegokolwiek) systemu szablonow. Zgadzam sie ze korzystanie ze smartiego wymaga od pogramisty zdobycia pewnej wiedzy, ale naprawde nie zajmuje to wiele a korzysci sa ogromne.

Glowna zaleta stosowania szablonow jest odseparowanie od siebie logiki i wyswietlania sajtu. Tzn pliki php odpowiedzialne sa za wyciaganie odpowiednich danych z bazy danych a nastepnie pokategoryzowane dane przesylaja do szablonu w ktorym znajac ich strukture odpowiednio je formatujemy. Takie podejscie umozliwia duzo latwiejsze update sajtu albo chocby prace w zespole. Fakt ze smarty (jak i kazda dodatkowa wartwa abstrakcji) obciaza dodatkowo serwer i spowalnia aplikacje, ale w bardzo niewielkim stopniu.

A jezeli ktos uwaza ze smarty doklada mu dodkowej pracy to IMHO nie umie z niego korzystac.

stancje Nieruchomości, stancje, Euro 2012

Odnośnik do komentarza
Udostępnij na innych stronach

Glowna zaleta stosowania szablonow jest odseparowanie od siebie logiki i wyswietlania sajtu.
Dokładnie to samo można osiągnąć stosując techniki wstawiania bloków kodu HTML za pomocą include() lub readfile() całkowicie oddzielając logikę aplikacji od jej prezentacji. I też mogą się nazywać szablon.tpl :) Jak dal mnie to nie jest żaden argument.
A jezeli ktos uwaza ze smarty doklada mu dodkowej pracy to IMHO nie umie z niego korzystac.
Fakt nie korzystam bo nie widzę większego sensu robiąc samemu. Może ma to sens w pracy zespołowej choć po uprzednim omówieniu techniki i bez tego można się obyć. Przynajmniej tak uważam.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Glowna zaleta stosowania szablonow jest odseparowanie od siebie logiki i wyswietlania sajtu.

Wezmy prosty przyklad logowania. W aplikacji sprawdzasz, czy user jest zalogowany by umozliwic mu pewne akcje, a w szablonie tez sprawdzasz, czy jest zalogowany by wyswietlic formularz albo powitanie.

Mamy tu do czynienie jedynie z oddzieleniem wyswietlania, nie logiki. I tu przydaje sie to, o czym pisze MMP. Jakby wstawiac HTML do PHP to kod stanie sie nieczytelny nie tylko dla layoutowca, ale takze dla programisty. To jest, chyba jedyna, zaleta tej warstwy abstrakcji. Szczegolnie, ze sporo osob zna Smarty. Chyba sie tym rozwiazaniem zainteresuje...

Oficjalna strona serii Football Manager ( FM 2005, FM 2006 ) - CM Revolution

Forza MLKS Woźniki Śląskie!

Odnośnik do komentarza
Udostępnij na innych stronach

Jestem zwolennikiem systemu szablonów nawet w prostych projektach. Autor artykułu podał przykład, który ma się nijak do praktyki. Sam używam Smarty i nigdy nie zdarzyło mi się, abym musiał umieszczać tam include_php czy if. Kwestia umiejętności zbudowania odpowiedniego kodu php, który w odpowiednim miejscu wywoła odpowiedni plik szablonu i to wszystko można spokojnie ominąć.

Dokładnie o to chodzi: przy wykorzystaniu systemu szablonów - oddzielić całą logikę od tego, w jaki sposób jest ona prezentowana. W idealnym wypadku, przy pomocy odpowiedniej podmiany klasy można uzyskać taki efekt, iż nasza witryna z powodzeniem zostanie wyświetlona w formacie pdf i każdym innym...Spróbujcie uzyskać taki efekt przy pisaniu aplikacji bez systemu szablonów.

Podsumowując - moim zdaniem osoby, które w małym stopniu korzystają z php, nie wykorzystują jego zaawansowanych możliwości i dobrodziejstw obiektów w wersji piątej mogą nie korzystać z szablonów i wiele na tym nie stracą. Jednak Ci, którzy myślą przyszłościowo i chcą być przygotowani na ewentualny rozwój strony, znaczną zmianę techniki itp. praca na systemie szablonów jest niezbędna.

Mogę się zgodzić z tym, że np. Smarty jest już trochę przekombinowany, ma za dużo funkcji i jest za ciężki. Dlatego zastanawiam się nad przejściem na wersję Lite, jednak na pewno nie przestanę korzystać z systemu szablonów.

Dała matka rozum? To kombinuj.

Odnośnik do komentarza
Udostępnij na innych stronach

Wezmy prosty przyklad logowania. W aplikacji sprawdzasz, czy user jest zalogowany by umozliwic mu pewne akcje, a w szablonie tez sprawdzasz, czy jest zalogowany by wyswietlic formularz albo powitanie.Mamy tu do czynienie jedynie z oddzieleniem wyswietlania, nie logiki.
W podanym przykładzie to fakt. Ale takie [ważne] operacje powinny odbywać się w "głównym kodzie" a nie szabonie i w zależności od tego czy jest zalogowany, czy nie podejmowana dalsza akcja. W wypadku rozwiazan opartych na include/readfile było by to przykładowo includowanie kodu wyświetlającego formularz logowania lub menu zalogowanego itd...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Hellz ma racje. Nie wystarczy uzywac szablonu, by wszystko bylo cacy. Jest jeszcze potrzebna warstwa obslugujaca wyswietlanie. Wraz z szablonem formatuja te dane. Powoli dochodzimy do kolejnego poziomu programowania - programowania komponentowego.

Oficjalna strona serii Football Manager ( FM 2005, FM 2006 ) - CM Revolution

Forza MLKS Woźniki Śląskie!

Odnośnik do komentarza
Udostępnij na innych stronach

Sam używam Smarty i nigdy nie zdarzyło mi się, abym musiał umieszczać tam include_php czy if. Kwestia umiejętności zbudowania odpowiedniego kodu php, który w odpowiednim miejscu wywoła odpowiedni plik szablonu i to wszystko można spokojnie ominąć. Dokładnie o to chodzi: przy wykorzystaniu systemu szablonów - oddzielić całą logikę od tego, w jaki sposób jest ona prezentowana.
I właśnie o to chodzi, o podział kodu HTML i umiejętne jego wywoływanie. Tylko co niektórzy myślą, że szablon to jest kod całej strony i zmieniają się w nim kolorystyka w zależności od tego jaki chcemy "szablon strony" np.; bloga :blush:

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Wezmy prosty przyklad logowania. W aplikacji sprawdzasz, czy user jest zalogowany by umozliwic mu pewne akcje, a w szablonie tez sprawdzasz, czy jest zalogowany by wyswietlic formularz albo powitanie.Mamy tu do czynienie jedynie z oddzieleniem wyswietlania, nie logiki.
W podanym przykładzie to fakt. Ale takie [ważne] operacje powinny odbywać się w "głównym kodzie" a nie szabonie i w zależności od tego czy jest zalogowany, czy nie podejmowana dalsza akcja. W wypadku rozwiazan opartych na include/readfile było by to przykładowo includowanie kodu wyświetlającego formularz logowania lub menu zalogowanego itd...

alez wcale ze nie, urzytkownik loguje sie, nastepnie w php sprawamy czy logowanie jest poprawne jezeli nie to zostaje z powrotem przekierowany na strone logowania, jezeli tak zostaje przekierowany na strone zgzdzie moze zazadzac swoimi zasobami.

W tpl nigdy nie trzeba zsprawdzac czy jest zalogowany (to jest logika), takie zeczy sprawdza sie w PHP i jezeli wystapi false to nastepuje przekierowanie do formularza logowania

stancje Nieruchomości, stancje, Euro 2012

Odnośnik do komentarza
Udostępnij na innych stronach

Adiasz, ale mi chodzi o logowanie sie do portalu, czy forum. Tam w musisz jakos sprawdzic co wyswietlic. Albo robisz to w PHP i masz rozwalony szablon, albo robisz instrukcje warunkowa w szablonie. Chyba ze sa jakies inne rozwiazania?

Oficjalna strona serii Football Manager ( FM 2005, FM 2006 ) - CM Revolution

Forza MLKS Woźniki Śląskie!

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności