Mirosław O.

Mirosław O. netBOMB.pl

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Jak ktoś przeskoczył na wyższy poziom (MVC) to żadnych smarków nie potrzebuje, ba, nawet nagle uświadamia sobie jak bardzo był przez nie do tej pory ograniczony.

konto usunięte

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Witam!
Ja uważam, że systemy szablonów (czy to smarty, czy x-template albo inne) są po to, żeby je wykorzystywać. Twórcy tych systemów włożyli sporo pracy w to, aby szablony działały bez błędów, były zoptymalizowane i uniwersalne. Poza tym każdy taki np. smarty może dostosować do swoich potrzeb poprzez mechanizm wtyczek jeśli mu mało tego co już jest.

Moim zdaniem nie ma sensu wyważanie otwartych drzwi i wymyślanie własnych systemów szablonów na potrzeby niewielkich projektów i należy stosować rozwiązania sprawdzone - chyba, że nie zależy nam na skuteczności i nie bardzo liczymy się z czasem, który trzeba jednak zainwestować żeby wynaleźć koło na nowo :) W ten sposób unikniemy dodatkowo wielu wpadek, które zostały już przez innych "doświadczone".

Poza tym zaprzęgnięcie szablonów (w moim przypadku jest to właśnie smarty) do własnego, dopracowanego frameworku może naprawdę skrócić i ułatwić pracę nad projektem.
Mirosław O.

Mirosław O. netBOMB.pl

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Bartłomiej B.:
Poza tym zaprzęgnięcie szablonów (w moim przypadku jest to właśnie smarty) do własnego, dopracowanego frameworku może naprawdę skrócić i ułatwić pracę nad projektem.

Widok jest wystarczający i nie potrzebuje dodatkowych spowalniaczy. Pchanie Smarty do FW to jakieś nieporozumienie.

konto usunięte

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Czemu uważasz to za nieporozumienie? Nie uważam, żeby smarty były spowalniaczem - wręcz przeciwnie - szablony są kompilowane (jak już ktoś tu napisał) do PHP i można w prosty sposób zorganizować sobie cache modułów, których generowanie również staje się dużo prostsze (i szybkie). To bardzo wygodne rozwiązanie w przypadku aplikacji webowych i warto spróbować. Jeszcze odnośnie wydajności - może warto zrobić testy i porównać zyski i straty?

Piszesz też wcześniej o ograniczeniach, jakie można dostrzec po porzuceniu systemów szablonów. Możesz wyjaśnić co masz na myśli?
Mirosław O.

Mirosław O. netBOMB.pl

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Czemu uważasz to za nieporozumienie?

Bo nie rozumiem potrzeby nakładania na widok dodatkowej warstwy. To zresztą nie tylko moje zdanie, chyba żaden z "wiodących" FW nie nakłada nic na widok.

To bardzo wygodne rozwiązanie w przypadku aplikacji webowych i warto spróbować

Wolę iść do przodu niż cofać się ;)

Możesz wyjaśnić co masz na myśli?

Chodzi głównie o swobodny dostęp do danych i ich nieskrępowane "obrabianie" bez potrzeby uciekania się do jakiś dodatkowych funkcji pseudo języka.

konto usunięte

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Bo nie rozumiem potrzeby nakładania na widok dodatkowej warstwy. To zresztą nie tylko moje zdanie, chyba żaden z "wiodących" FW nie nakłada nic na widok.

A jednak wiele poważnych firm buduje duże serwisy internetowe w oparciu o smarty. Na temat "wiodących" FW nie mogę się wypowiadać bo nie używam. Zdarzeniowe jest jedynie Prado - fakt, że rozwiązanie bardziej na czasie ale lekkim na pewno nie można go nazwać :)
Wolę iść do przodu niż cofać się ;)

To nie jest krok wstecz ;)
Chodzi głównie o swobodny dostęp do danych i ich nieskrępowane "obrabianie" bez potrzeby uciekania się do jakiś dodatkowych funkcji pseudo języka.

Danych nie obrabia się w warstwie widoku. Dostęp do nich jest bardzo wygodny (i czytelny!) w smarty a finalnie i tak są kompilowane do PHP co już pisałem.

Każdy ma tak jak lubi. Dla każdego serwisu można znaleźć za i przeciw stosowaniu szablonów. Nie warto natomiast wynajdywać czegoś co już jest na nowo. Warto natomiast oszczędzać swój czas.
Mirosław O.

Mirosław O. netBOMB.pl

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

A jednak wiele poważnych firm buduje duże serwisy internetowe w oparciu o smarty.

I to jest argument? :D Ludzie używają Visty ;)
Na temat "wiodących" FW nie mogę się wypowiadać bo nie używam

Dlatego nie rozumiesz różnicy.
To nie jest krok wstecz ;)

Smarty i szablony to poprzednia epoka w PHP. Wtedy inaczej się pisało, inaczej rozwiązywało pewne problemy. Sam używałem najpierw Smarty (krótko), jakiś czas później lepsze polskie OPT (dosyć długo).
Danych nie obrabia się w warstwie widoku

Sugerujesz, że helperka powinienem użyć w modelu lub, o zgrozo, w kontrolerze?

konto usunięte

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

I to jest argument? :D Ludzie używają Visty ;)

Dlatego nie rozumiesz różnicy.

Tak samo argumentem nie są dla mnie "wiodące frameworki" jak dla Ciebie Vista a to, że nie używam tychże "wiodących frameworków" na co dzień nie znaczy, że nie potrafię z nich skorzystać.

Staram się zrozumieć Twój punkt widzenia. :)
Sugerujesz, że helperka powinienem użyć w modelu lub, o zgrozo, w kontrolerze?

Co to jest "helperka"???
Mirosław O.

Mirosław O. netBOMB.pl

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

że nie używam tychże "wiodących frameworków" na co dzień nie znaczy, że nie potrafię z nich skorzystać.

Tego nie powiedziałem. Miałem na myśli to, że jeżeli byłbyś aktywny z "obu stron" to może łatwiej by Ci było zrozumieć mój (ogólnie "ten") punkt widzenia.
W mojej wypowiedzi nie było nic złośliwego.
Co to jest "helperka"???

Helperek to zmiękczenie od helper ;) Wybacz, że nie po naszemu ale polski odpowiednik przyprawia mnie o dreszcze ;)

konto usunięte

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Nie doszukiwałem się w Twojej wypowiedzi niczego złośliwego. :)

Architektura MVC nie przekreśla wcale stosowania szablonów, natomiast wracając do operacji na danych, cytuję chociażby za wikipedią:

"Frameworki MVC do operacji na bazach danych używają modeli i mapowania relacyjno-obiektowego, ORM (ang. object-relationship mapping)."

i uważam, że właśnie tam jest miejsce na takie operacje.

A wszelkie drobne "helperki" mogą znaleźć się w warstwie widoku. Zresztą pełno jest takich małych udogodnień właśnie w smarty.

konto usunięte

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Zresztą - jeszcze jeden cytat z wiki dot. MVC:

"Właściwy kod programu zwykle jest umieszczany w kontrolerze, a przetworzone dane przekazywane są do odpowiedniego widoku - tu przy pomocy bibliotek szablonów (Smarty, Template Toolkit czy też JSP w przypadku Springa) generowany jest HTML, inny rodzaj widoku może generować PDF albo XML."
Mirosław O.

Mirosław O. netBOMB.pl

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

>Architektura MVC nie przekreśla wcale stosowania szablonów

Zgadza się, ale ja już parę razy to napisałem: zarówno ja, jak i wiele innych osób nie widzimy sensu nakładać na widok dodatkowej warstwy. Pewnie, że można, tylko po co ;)
i uważam, że właśnie tam jest miejsce na takie operacje.

Owszem, ja pisałem o tym co należy obrobić w widoku np. pobierasz sobie z bazy ten oto nasz wątek, i teraz w zależności od widoku obrabiasz te dane, przykładowo, w html timestampa formatujesz "dzisiaj 18:39", a w xml (rss) wg. odpowiedniej specyfikacji. Trudno, żeby babrać się z tym w modelu niepotrzebnie .

I to chyba tyle co można było na ten temat powiedzieć ;)
Daniel Częstki

Daniel Częstki senior php developer

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

napisałem małe co nieco o Smarty :)
http://czestki.net/programowanie-webowe/smarty-i-cache...

mi np. podoba sie w smarty np łączenie {section} z {cycle} :)Daniel C. edytował(a) ten post dnia 09.11.07 o godzinie 18:10
Maciej M.

Maciej M. Advanced Software
Engineer

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Daniel C.:
napisałem małe co nieco o Smarty :)
http://czestki.net/programowanie-webowe/smarty-i-cache...

mi np. podoba sie w smarty np łączenie {section} z {cycle} :)Daniel C. edytował(a) ten post dnia 09.11.07 o godzinie 18:10

smarty ma wiele genialnych pomysłów
np output_filter - robisz jedną funkcje np do kodowania np win2iso rejestrujesz i nie obchodzi Cie kodowanie bo filtr zalatwia to za ciebie, strona ma być w utf8? - prosze bardzo, zmiana w jednym miejscu win2iso -> win2utf,
capture , funkcje blokowe, i modyfikatory ... cud narzędzie,

po co mam gdzies w klasie obrabiać np jakąs tabele specjalnie by wstawić np przecinek w 100 wierszach danych giełdowych?
robię to odrazu przy wyświetlaniu! bo moze czesc danych chce wykorzystać jeszcze w innym miejscu,
wyciągam -> obrabiam -> wyświetlam ..
a nie można prościej?
wyciągam -> wyświetlam DELIKATNIE obrabiając?

pozdrawiam wszystkich używających Smartów!

M.
Bartosz Ratajczyk

Bartosz Ratajczyk MS SQL Developer

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

A może HAML?

Założenia: http://haml.hamptoncatlin.com/
Dla PHP: http://sourceforge.net/projects/phphaml
Strona autora phpHaml: http://alfanick.biz/projekty/phphaml/
Tomasz Struczyński

Tomasz Struczyński TeamLeader PHP i
analityk

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Daniel C.:
Paweł Wrzosek:
A ja wolę dogłębnie wymieszany HTML z PHP, o ile ten HTML jest napisany tak jak nalezy, a za wygląd tak naprawdę odpowiada CSS.
Lepsze to niż odseparowane PHP i html`owa tagzupa z zeszłej dekady.

ja widzialem ostatnio kod dosc sporego serwisu ok. 50000 unikalnych gosci miesiecznie, gdzie kod html,a wlasciwie jego fragmenty sa generowane przez funkcje wyciagajace pewne dane.
I to nie chodzi tylko o tabelke, ale o kod html, ktory stanowi ramy szablonu. Wystarczy maly blad i szablon sie rozjezdza.
To glowny plus szablonow. Zachowuje spojnosc projektu.

A ja widziałem dziesiątki przykładów rozjeżdżania się kodu Smarty'ego. I tu i tam możesz np niepoprawnie wpisać instrukcję pętli (tylko w PHP środowisko Ci to wykryje, a w Smartym nie).

Dość długo używałem Smarty'ego i w sumie go lubię, ale coraz bardziej się przekonuję, że PHPTemplate (czyli PHP) z alternatywną składnią jest tak samo czytelny. :)

Jak dla mnie - generalnie w każdym dostatecznie skomplikowanym systemi można coś spieprzyć. Smarty jest niestety dostatecznie skomplikowany. Teraz pytanie brzmi, jak szybko można usunąć i znaleźć ewentualne błędy - a w "czystym" PHP jest to dużo łatwiejsze. Jak ktoś mądrze napisał, PHP samo w sobie <b>jest językiem template'ów</b>. Do tego jest optymalizowane od początku istnienia, dopiero od stosunkowo niedawna pojawiają się w nim np obiekty. Po co uczyć kogoś kolejnego języka?

Jeśli już "ograniczać", to ograniczyć instrukcje i operacje stosowane w szablonie. A to da się zrobić na etapie sprawdzania kodu (trochę regexpów po kodzie programu i voila).

konto usunięte

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Z mojego doświadczenia wiem, że jeśli faktycznie pojawiają się błędy w szablonie to stosunkowo łatwo się je usuwa. Praktycznie nie spotkałem się z problemem, którego usunięcie z szablonu trwało dłużej niż minutę. Smarty w przypadku błędów składni zasygnalizuje błąd a jeśli "coś się rozjeżdża" to znaczy, że źle jest generowany html - nie jest domknięty tag, albo za dużo/za mało jest zawarte w pętli.

Pamiętajmy, że smarty służy do generowania treści i są to bardzo proste operacje gdzie ciężko jest popełnić "grube" błędy - oczywiście jeśli ktoś się postara to opisana sytuacja jest możliwa (tj. szablon będzie zbytnio rozbudowany i nieczytelnie napisany).

Nie będę już pisał więcej o dodatkowych korzyściach użytkowania smarty takich jak cache i możliwość łatwego formatowania danych.
Tomasz Struczyński

Tomasz Struczyński TeamLeader PHP i
analityk

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

No cache i możliwość łatwego formatowania danych istnieją i w PHP od zarania dziejów - akurat to jest taki sobie argument jak dla mnie :) A co do Smarty'ego, to błąd wykryje, ale po uruchomieniu strony. A to jak dla mnie o krok za daleko. Do niektórych szablonów w rozbudowanych stronach trzeba się "doklikać", a to może zająć czas :) Szczególnie, jak nie używamy serwera testowego na localhoście, tylko gdzieś w sieci (tak, to się zdarza czasami, np nie zawsze możesz instalować co chcesz na kompie). Niepotrzebne :)Tomasz Struczyński edytował(a) ten post dnia 10.12.07 o godzinie 11:45

konto usunięte

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Rozumiem, że serwer develowy to nie to samo co produkcyjny a na produkcyjnym znajduje się sprawdzone oprogramowanie :) więc informowanie o błędzie na wygenerowanej stronie jest jak najbardziej OK. O błędzie składni PHP też zostaniesz poinformowany w ten sam sposób :)

Co do cache - to owszem PHP od zarania dziejów oferuje cache (output buffer) - tylko, że nie wygenerowanego kodu HTML na podstawie szablonu w plikach i z kluczem - zawsze można obsługę tego napisać samemu tylko po co skoro jest?
Tomasz Struczyński

Tomasz Struczyński TeamLeader PHP i
analityk

Temat: [pytanie] Rozdzielanie HTML'a od PHP,

Do PHP też są wtyczki cache'ujące (z kluczem, jw.).

O błędzie PHP, przynajmniej w podstawowym zakresie, informuje mnie Eclipse (jEdit, wpisz dowolne). Ze Smartym tak różowo nie jest.



Wyślij zaproszenie do