Tomasz Zadora

Tomasz Zadora programuję

Temat: Nowy system szablonów Twig

Janusz Radkiewicz:
[...]
Aczkolwiek w wielu jego miejscach.
Co nie jest ani wygodne, ani eleganckie, za to prosi się o przeoczenia.

Tak, w bardzo wielu miejscach: w dwóch.

Co jest eleganckie a co nie to już kwestia gustu + dorabiasz na siłę jakieś przeoczenia, przeoczenia mogą być zawsze i wszędzie.
Zwróciłem jedynie uwagę, że ja nie muszę dobudowywać klas do już gotowej struktury (tablicy asocjacyjnej postaci drzewa).

Coś tą strukturę musi zbudować, w przykładzie który podałem webmaster w żaden sposób nie steruje logiką jej budowy (algorytmem), tylko wyglądem.

Webmaster definiuje wygląd pojedynczego elementu, markuje w tymże miejsce, gdzie się opcjonalny "fraktal" wszczepi, jak ma kaprys/potrzebę, dokłada opcjonalne prefiksy/postfiksy otaczające potomka wszczepianego (choć zwykle nie musi, ale możliwością dysponuje).

To wszystko można osiągnąć w przykładzie który podałem.
Potrafię zrozumieć osoby, które cechuje niechęć do uczenia się kolejnej wartwsy, ale nie rozumiem ich genaralizującego przekonania, że ich sposób jest dla wszystkich najlepszy.

Napisałem, że to jest piąte koło - jeżeli ktoś tego piątego koła bardzo potrzebuje to czemu nie, może sobie dopiąć i jechać.

Temat: Nowy system szablonów Twig

Tomasz Zadora:
Aczkolwiek w wielu jego miejscach.
Co nie jest ani wygodne, ani eleganckie, za to prosi się o przeoczenia.

Tak, w bardzo wielu miejscach: w dwóch.

To już dwukrotnie więcej niż trzeba.
I to przy jednym elemencie.
Co jest eleganckie a co nie to już kwestia gustu + dorabiasz na siłę jakieś przeoczenia, przeoczenia mogą być zawsze i wszędzie.

Nic nie dorabiam na siłę. Znam życie i webmasterów także.
Nadto skakanie po cudzym kodzie w poszukiwaniu, gdzie otwierany jest jakiś TR, TD, UL, czy LI jest robotą niewdzięczną.
Zwróciłem jedynie uwagę, że ja nie muszę dobudowywać klas do już gotowej struktury (tablicy asocjacyjnej postaci drzewa).

Coś tą strukturę musi zbudować, w przykładzie który podałem webmaster w żaden sposób nie steruje logiką jej budowy (algorytmem), tylko wyglądem.

W przykładzie, który podałeś, webmaster musi analizować Twój kod.
Zamiast klepać wyłącznie swój.
Webmaster definiuje wygląd pojedynczego elementu, markuje w tymże miejsce, gdzie się opcjonalny "fraktal" wszczepi, jak ma kaprys/potrzebę, dokłada opcjonalne prefiksy/postfiksy otaczające potomka wszczepianego (choć zwykle nie musi, ale możliwością dysponuje).

To wszystko można osiągnąć w przykładzie który podałem.

Można wbijać gwoździe żelazkiem, albo wiercić dziurę długopisem, a potem gwóźdź pieczołowicie gipsować "bo zakup młotka byłby nadmiarowy, skoro da się inaczej".
Napisałem, że to jest piąte koło - jeżeli ktoś tego piątego koła bardzo potrzebuje to czemu nie, może sobie dopiąć i jechać.

No to powodzenia w jeżdżeniu bez zapasu.
Wspomaganie kierownicy to też zbędny gadżet, ABS wydłuża drogę hamowania, a prawdziwi twardziele nie używają sprzęgła.
Ze wszystkim powyżej daję sobie radę, co nie znaczy, że uważam, wymienione wynalazki to ZUO.

Czyżbyś należał do ludzi, którzy pakują się w dyskusję o jazzie by powiedzieć, że "jazz jest do bani i tylko hiphop"? W końcu tylko wyrażasz swoją opinię, nikomu nie zabraniasz słuchać jazzu, jak ktoś musi, to niech sobie tego słucha...

Wierz mi, że też potrafię pisać zupę hatemeelowo-pehapową, ale skoro podpięcię circa dwukilowej biblioteki pozwala mi klarownie rozdzielić warstwy, to właśnie to robię w aplikacjach ciut bardziej skomplikowanych niż "hello world, ależ ze mnie hardcorowy wymiatacz!"
Jakub L.

Jakub L. Programista

Temat: Nowy system szablonów Twig

Dariusz Półtorak:
Mało tego, zapis Smarty jest mało intuicyjny i niewygodny w zapisie. Już wolę to zrobić w czystym PHP wsadzonym w HTML. Tyle dobrego że taki Netbeans ma np wtyczkę do smarty która podświetla na żółto elementy szablonu smarty. Za to to samo za pomocą blitz:


{{ BEGIN users }}
Jestem {{ $imie }}
{{ END }}


wydaje mi się o wiele sensowniejsze. Chce dać dzieci usera ? Proste:


{{ BEGIN users }}
Jestem {{ $imie }}

Moje dzieci: {{ BEGIN dzieci }} {{ $imie }}, {{ END }}
{{ END }}

A z ciekawości, załóżmy że jest sobie Jędrzej i ma syna Macieja, a Maciej ma syna Romana, jak w tej składni otrzymać:

Jestem Jędrzej
Jestem Maciej syn Jędrzeja
Jestem Roman syn Macieja

czyli na poziomie zagnieżdżonej iteracji mieć dostęp do iteratora powyżej?Jakub L. edytował(a) ten post dnia 18.05.11 o godzinie 08:18

konto usunięte

Temat: Nowy system szablonów Twig

Jakub L.:
Dariusz Półtorak:
Mało tego, zapis Smarty jest mało intuicyjny i niewygodny w zapisie. Już wolę to zrobić w czystym PHP wsadzonym w HTML. Tyle dobrego że taki Netbeans ma np wtyczkę do smarty która podświetla na żółto elementy szablonu smarty. Za to to samo za pomocą blitz:


{{ BEGIN users }}
Jestem {{ $imie }}
{{ END }}


wydaje mi się o wiele sensowniejsze. Chce dać dzieci usera ? Proste:


{{ BEGIN users }}
Jestem {{ $imie }}

Moje dzieci: {{ BEGIN dzieci }} {{ $imie }}, {{ END }}
{{ END }}

A z ciekawości, załóżmy że jest sobie Jędrzej i ma syna Macieja, a Maciej ma syna Romana, jak w tej składni otrzymać:

Jestem Jędrzej
Jestem Maciej syn Jędrzeja
Jestem Roman syn Macieja

czyli na poziomie zagnieżdżonej iteracji mieć dostęp do iteratora powyżej?

Są na to 3 sposoby. Pierwszy to konfiguracja php.ini. Ze względu na to że Blitz jest nastawiony na jak największą wydajność, zasięg zmiennych ogranicza się do bloku w którym jesteśmy. Ale mamy do dyspozycji opcję:

blitz.scope_lookup_limit


która pozwala nam na zarządzanie widocznością. Np 3 sprawi że jeżeli nie znajdzie zmiennej w bieżącej iteracji to poszuka maksymalnie do 3 rodziców wstecz.

Druga możliwość tu uczynienie zmiennej rodzica globalną.

Jeżeli wymyślimy coś tak chorego że nie da rady tego zrealizować Blitzem, zawsze możemy sterować iteracją bloku z poziomu PHP.

konto usunięte

Temat: Nowy system szablonów Twig

Może to tylko subtelne odczucie, ale...

... jaki jest sens używania jakichkolwiek systemów szablonów? Jaka korzyść? Bo podejść do zrozumienia tej kwestii miałem wiele - wszystkie zakończone spektakularną klęską.
Tomasz Zadora

Tomasz Zadora programuję

Temat: Nowy system szablonów Twig

Andrzej O.:
Może to tylko subtelne odczucie, ale...
[...]

Ponoć tak łatwiej dla webmastera ;) Dzisiejsi webmasterzy są podobno tak nierozgarnięci, że nie potrafią na PHP + HTML, muszą mieć system szablonów.

Jestem ciekaw jak w systemie szablonów tworzy się skomplikowane panele administracyjne z dużą ilością JavaScript generowanego dynamicznie albo drzewa rekurencyjne - to musi być niezła strata czasu tylko po to żeby było "w systemie szablonów".Tomasz Zadora edytował(a) ten post dnia 18.05.11 o godzinie 13:28

konto usunięte

Temat: Nowy system szablonów Twig

Tomasz Zadora:
Andrzej O.:
Może to tylko subtelne odczucie, ale...
[...]

Ponoć tak łatwiej dla webmastera ;) Dzisiejsi webmasterzy są podobno tak nierozgarnięci, że nie potrafią na PHP + HTML, muszą mieć system szablonów.

Jestem ciekaw jak w systemie szablonów tworzy się skomplikowane panele administracyjne z dużą ilością JavaScript generowanego dynamicznie albo drzewa rekurencyjne - to musi być niezła strata czasu tylko po to żeby było "w systemie szablonów".
Cholera, to ja jestem jakiś zacofany, bo nic ułatwiającego pracę w tych systemach nie widzę.

Przykładowo, mam aplikację w KohanaPHP. Wszystkie widoki to HTML + PHP. Po co mam sobie kombinować życie. Nie wiem. Przecież takie coś jest - jak dla mnie - nawet bardziej intuicyjne.

<ul>
<?php foreach($users as $user) { ?>
<li>Nazywam się <?php echo $user->name ?></li>
<?php } ?>
</ul>


Druga kwestia, widziałem gdzieś benchmark - takie Smarty to demon wydajności jest :D

Reasumując, to chyba taka moda, jak i ze stawianiem wszystkiego co popadnie na WP.

Temat: Nowy system szablonów Twig

Przykładowo, mam aplikację w KohanaPHP. Wszystkie widoki to HTML + PHP. Po co mam sobie kombinować życie. Nie wiem. Przecież takie coś jest - jak dla mnie - nawet bardziej intuicyjne.

<ul>
<?php foreach($users as $user) { ?>
<li>Nazywam się <?php echo $user->name ?></li>
<?php } ?>
</ul>

Stopień złożoności zadań z jakim przychodzi się Wam mierzyć doprawdy robi wrażenie!
Druga kwestia, widziałem gdzieś benchmark - takie Smarty to demon wydajności jest :D

A ktoś tu poleca smarty? ;p
Reasumując, to chyba taka moda, jak i ze stawianiem wszystkiego co popadnie na WP.

Napisał człek używający KohanaPHP - a przecież _gołym_ PHP można sobie ze wszystkim poradzić.

konto usunięte

Temat: Nowy system szablonów Twig

Janusz Radkiewicz:
Przykładowo, mam aplikację w KohanaPHP. Wszystkie widoki to HTML + PHP. Po co mam sobie kombinować życie. Nie wiem. Przecież takie coś jest - jak dla mnie - nawet bardziej intuicyjne.

<ul>
<?php foreach($users as $user) { ?>
<li>Nazywam się <?php echo $user->name ?></li>
<?php } ?>
</ul>

Stopień złożoności zadań z jakim przychodzi się Wam mierzyć doprawdy robi wrażenie!
?
Reasumując, to chyba taka moda, jak i ze stawianiem wszystkiego co popadnie na WP.

Napisał człek używający KohanaPHP - a przecież _gołym_ PHP można sobie ze wszystkim poradzić.
Dwa pytania. Wiesz co to framework? Wiesz co to system szablonów? Pewnie wiesz. Idiotyczne porównanie.

Temat: Nowy system szablonów Twig

Tomasz Zadora:
Jestem ciekaw jak w systemie szablonów tworzy się skomplikowane panele administracyjne

Łatwo i wydajnie, np. abstrakcyjnymi "kontrolkami". Powinieneś spróbować i zaspokoić ciekawość.
[...] to musi być niezła strata czasu tylko po to żeby było "w systemie szablonów".

To musi być niezła strata czasu, zmieniać lay w mieszaninie PHP i HTML.

Ale spoko, widzę, że ktoś ma "misję" - nie tak dawno pewien człek przekonywał, że taka np. obiektowość jest zbędna, nawet się z nim zgodziłem, iż można się bez niej obyć, tylko po co jeść zupę nożem? Bo się da?

Temat: Nowy system szablonów Twig

Andrzej O.:
?

Sarkazm. Ironia. Trudne słowa ;)
Dwa pytania. Wiesz co to framework? Wiesz co to system szablonów? Pewnie wiesz. Idiotyczne porównanie.

Ależ skąd. Bez jednego i drugiego można się spokojnie obyć, zwłaszcza gdy mamy zrealizować tak "zaawansowane" przykłady jak Twoje.Janusz Radkiewicz edytował(a) ten post dnia 18.05.11 o godzinie 14:11
Tomasz Zadora

Tomasz Zadora programuję

Temat: Nowy system szablonów Twig

Janusz - ale chyba za bardzo nie podniecasz się tym całym tematem ? Nie chce mieć na sumieniu, że moja mała prowokacja wywołała u kogoś nerwicę ;-)

Tak czy inaczej czekam na Twój system szablonów oparty o 2kb bibliotekę który będzie wydajnie parsował i "keszował" (najlepiej w memcached) szablony ładnie synchronizując te rzeczy w środowisku wielu procesów php naraz, oraz zapewniał te wszystkie rzeczy o których pisałeś w tym wątku. Jak Ci się uda to szacunek ;-)Tomasz Zadora edytował(a) ten post dnia 18.05.11 o godzinie 14:30

Temat: Nowy system szablonów Twig

Tomasz Zadora:
Janusz - ale chyba za bardzo nie podniecasz się tym całym tematem ?

Ja? Ja raczej trzymam odpowiedni dystans :)
I bez erotocznych konotacji ;p
Nie chce mieć na sumieniu, że moja mała prowokacja wywołała u kogoś nerwicę ;-)

Iiii tam, coś sobie dopisujesz.
Po prostu głupio jest włazić między kibiców i mówić im, że bez sensu jest obserwowanie, jak zgraja typów ugania się za skórzanym balonem, skoro w bierki można pograć na stole i całą rodziną.
Nie chcesz, nie używasz - spoko, nie dyskutujesz.
Nie pijesz piwa, nie włazisz do pubu i nie przekonujesz gorliwie do mleka.

Proste rzeczy pisałem bez szablonowania, bez żadnych frameworków, ale doszedłem do wniosku, iż przy pewnym stopniu złożoności zadania, to jest ma-so-chizm.
Tak czy inaczej czekam na Twój system szablonów oparty o 2kb bibliotekę który będzie wydajnie parsował i "keszował"

Coś się tak rozpędził? Ktoś pisał o keszowaniu? ;p
Mam i takie rozwiązania, ale nie mam potrzeby korzystać, bo narzut z obsługi kesza robi się porównywalny z każdorazowym generowaniem treści (spersonalizowany kontent, dużo zmiennych danych itp.).
szablony ładnie synchronizując te rzeczy w środowisku wielu procesów php naraz, oraz zapewniał te wszystkie rzeczy o których pisałeś w tym wątku. Jak Ci się uda to szacunek ;-)

Starczy te rzeczy, o których _ja_ pisałem, czy musi być to, co Ty wymysliłeś po drodze? :)
Bo wiesz, 2 kilo, to nie jest za dużo (najnowsza edycja 2166 znaków, ale mogę przykroić funkcjonalność do 1.6 kilo a i tak wszystko, o czym _ja_ pisałem, zostanie - z drugiej strony taki historyczny Alladyn w 2k załatwiał animację key-framewową i cross-browser, no ale JS mniej rozwlekły niż PHP ;))
Waldemar Jonik

Waldemar Jonik właściciel,
webmaster,
programista, JW Web
Development

Temat: Nowy system szablonów Twig

php jako system szablonów ma tylko jedną wadę - brak pełnej separacji tego co powinno być w szablonach w stosunku do tego czego nie powinno być ale to nie jest wadą gdy ma się pracowników wiedzących co i jak powinni robić. jeśli ktoś nie wie czego powinien używać a czego nie, to niech się douczy albo zmieni pracę.

przecież i tak te wszystkie smarty i inne w ostatnim kroku są przekształcane na system szablonów php. php został wręcz w tym celu stworzony.

ja osobiście polecam: http://phpsavant.com/
można go łatwo przebudować i dostosować do własnych potrzeb. samo core jest podobne do tego z kohana ale tu mamy fajny system plugi-ow i filtrów oraz możliwość wyboru czy do template wrzucamy wszystkie dane jako osobne zmienne czy też korzystamy z $this->zmienna. w stosunku do kohana brakuje tylko obsługi statycznej tablicy danych.

konto usunięte

Temat: Nowy system szablonów Twig

Wiecie, krytykowanie systemów szablonów przypomina mi troszkę dywagacje właśnie na temat programowania obiektowego.
Jedni twierdzą że to kupa, inni że diament. Obaj mają rację w różnych względach i sytuacjach ale prawda jest taka że kto ma diament ten po kupę już raczej nie sięgnie.

Nie mniej jednak właścicielowi kupy czasami trudno wytłumaczyć co to diament. To jak z gruszką. Jest słodka i ma kształt. Niech tu ktoś zdefiniuje kształt gruszki.
Waldemar Jonik

Waldemar Jonik właściciel,
webmaster,
programista, JW Web
Development

Temat: Nowy system szablonów Twig

Janusz Radkiewicz:

Proste rzeczy pisałem bez szablonowania, bez żadnych frameworków, ale doszedłem do wniosku, iż przy pewnym stopniu złożoności zadania, to jest ma-so-chizm.

PHP samo w sobie jest systemem szablów - to czy używasz czystego php czy systemu szablonów to nic nie upraszcza ani nie pomaga przy budowie małej czy dużej aplikacji czy nawet olbrzymiej aplikacji. to czy uzywasz systemu szablonów php czy innego nie ma nic wspólnego z tym masochizmem w pracy tkóry może wynikać tylko ze złej organizacji kodu/złej organizacji pracy w większym zespole.

nie po to wymyślano szablony żeby upraszczać robotę tylko, żeby do niektórych typów projektów zapewnić separację kodu. a to czy taka separacja jest potrzebna czy nie to zależy wyłącznie od tego jak robota jest zorganizowana i czy wiesz/znasz/masz kontrolę nad osobą która takie szablony robi.
Waldemar Jonik

Waldemar Jonik właściciel,
webmaster,
programista, JW Web
Development

Temat: Nowy system szablonów Twig

Dariusz Półtorak:
Nie mniej jednak właścicielowi kupy czasami trudno wytłumaczyć co to diament. To jak z gruszką. Jest słodka i ma kształt. Niech tu ktoś zdefiniuje kształt gruszki.

ja systemu szablonów nie krytykuje, uważam, tylko, że najlepszy system szablonów to ten oparty na czystym PHP - jest najwydajniejszy, najprostszy a zarazem najbardziej rozbudowany, nie wymaga dodatkowej nauki, upraszcza budowę całej aplikacji - cała masa niezaprzeczalnych plusów. znam tylko jedna wadę to ten brak pewnej separacji logiki (ale chodzi tylko o to, że ktoś potencjalnie może za dużo)

Temat: Nowy system szablonów Twig

Waldemar Jonik:
nie po to wymyślano szablony żeby upraszczać robotę tylko, żeby do niektórych typów projektów zapewnić separację kodu.

O'rly?
Czekaj, ktoś tu coś pisał o sepracji warstw. Nie pamiętam. Czyżby ja? ;)

Niemniej korzystam z szablonów, także po to żeby _upraszczać_ sobie robotę,
nawet, gdy to ja robię jednocześnie i za programistę i za webmastera.
a to czy taka separacja jest potrzebna czy nie to zależy wyłącznie od tego jak robota jest zorganizowana i czy wiesz/znasz/masz kontrolę nad osobą która takie szablony robi.

Pozwolę się nie zgodzić ze sformułowaniem "wyłącznie" (i nie stawiając znaku równości pomiędzy "potrzebne" a "niezbędne").
Mam kilka innych kryteriów, które stosując oceniam, czy użycie szablonów jest _wskazane_ czy zbędne.

Temat: Nowy system szablonów Twig

Waldemar Jonik:
ja systemu szablonów nie krytykuje, uważam, tylko, że najlepszy system szablonów to ten oparty na czystym PHP - jest najwydajniejszy, najprostszy a zarazem najbardziej rozbudowany, nie wymaga dodatkowej nauki,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

W większym zespole pracowałeś?
Bo jednak typowy webmaster szybciej zje instrukcje do szablonowania, niż pozna niuanse PHP. Skąd założenie, że szablony są dla _programistów_?
upraszcza budowę całej aplikacji - cała masa niezaprzeczalnych plusów. znam tylko jedna wadę to ten brak pewnej separacji logiki (ale chodzi tylko o to, że ktoś potencjalnie może za dużo)

...i szukaj potem po historii wersji, kto i kiedy coś popsuł...

Widzisz, ja, jako programista ewouluję. A dzięki szablonom nie muszę już oglądać swego "oldschoolowego" kodu, wprowadzając zmiany w wyglądzie ;)
Z drughiej strony, mając coś namieszać z danymi, nie muszę się przekopywać przez zupę tagów (a bo webamster zamulił strasznie CSS a ten co przylazł potem nie chciał się w tym kopać i dodał coś inline, etc. etc.).
Nie każda aplikacja to "pocięcie fotoszopa, dopasowanie typowego CMS, skasowanie kasy i do niezobaczenia".
Waldemar Jonik

Waldemar Jonik właściciel,
webmaster,
programista, JW Web
Development

Temat: Nowy system szablonów Twig

Janusz Radkiewicz:

W większym zespole pracowałeś?

obecnie ja jestem właścicielem firmy i ja zatrudniam ludzi w tym webmasterów, czasami także osoby na zlecenie ale tylko takich którzy znają php :)

miałem też okazję pracować przy różnych projektach, z różnymi ludźmi.
Bo jednak typowy webmaster szybciej zje instrukcje do szablonowania, niż pozna niuanse PHP. Skąd założenie, że szablony są dla _programistów_?

nie wiem skąd ty znasz takich webmasterów, poznanie podstaw php jest tak samo trudne jak poznanie podstaw systemu szablonów.

w założenia dyskwalifikuję webmastera który nie zna podstawowych komend typu if, else, foreach,... chyba , że to webmaster, który tworzy sam kod html,css, js ale on wogólne nie powinien tykać jakiegokolwiek elementu oprogramowania. potem programista nanosi na to logikę np w php. to kwestia organizacji pracy

...i szukaj potem po historii wersji, kto i kiedy coś popsuł...

tego nie trzeba specjanie szukać. przecież kod i tak musi przejść testy. ktoś to musi zweryfikować

Widzisz, ja, jako programista ewouluję. A dzięki szablonom nie muszę już oglądać swego "oldschoolowego" kodu, wprowadzając zmiany w wyglądzie ;)
Z drughiej strony, mając coś namieszać z danymi, nie muszę się przekopywać przez zupę tagów

czy to szablony php czy inne to i tak masz zupę tagów tylko z innymi znacznikami. obojętnie jakich znaczków użyjesz do tworzenia np instrukcji warunkowych, iteracji itp to i tak jesteś na tym samym poziomie trudności.
nie pozwoli ci to wyjść na jakiś wyższy poziom programowania.

widzę, że ciągle nie rozumiesz, że kod php może sam w sobie być systemem szablonów ale nie chodzi tu o ładowanie zapytań sql, manipulacji danymi itp wśród znaczników HTML. do korzystania z wzorca MVC spokojnie wystarcza sam PHP.
....strasznie CSS a ten co przylazł potem nie chciał się w tym kopać i dodał coś inline, etc. etc.).
Nie każda aplikacja to "pocięcie fotoszopa, dopasowanie typowego CMS, skasowanie kasy i do niezobaczenia".

od wielu lat pracuję nad projektami aplikacji także takimi dla dużych korporacyjnych firm i to co tu napisałeś nijak się ma do korzyści z szablonów tego czy innego typu. jeśli organizacja pracy projektu jest skopana to zupełnie inny temat a "...skasowanie kasy i do niezobaczenia" to chyba jakieś nieporozumienie i niepoważne podejście do pracy nawet przy najmniejszym projekcie.

Następna dyskusja:

Document Management System




Wyślij zaproszenie do