Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Twig - opinie
skowron-line
post 3.02.2013, 18:21:47
Post #1





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Chciałbym poznać wasze opinie o Twigu, plusy, minusy.


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
!*!
post 3.02.2013, 18:29:06
Post #2





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


http://forum.php.pl/index.php?showtopic=181145 wink.gif

+ dobrze że powstał
- brak, ponieważ jak już muszę korzystać z systemu szablonów, to wolę to zrobić po swojemu, niż pod czyjąś (czasami złą) wizje świata.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
wookieb
post 3.02.2013, 21:38:25
Post #3





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Jak przeczytałem posty z podlinkowanego wyżej tematu, to jestem przerażony jak można zhejtować tak dobry projekt bez podawania żadnych argumentów.

Chętnie odświeżyłbym ten temat.

Plusy Twig-s:
+ przyjemna składnia
+ IDE dobrze go wspierają
+ dziedziczenia szablonów
+ bloki
+ szybki
+ ciągle rozwijany!
+ pójdzie Ci prawie na każdym hostingu
+ czytelny dla ludzi nie kodujących w php (webdeveloperzy z firmy bez problemu dali sobie z nim rade)
+ nie musisz się martwić czy przekazana do szablonu dana to tablica czy obiekt - odwołujesz się do właściwości w ten sam BARDZO wygodny sposób
+ przyspiesza Twoją prace - a to jest najważniejsze.

Oczywiście, stracisz na tym jakieś milisekundy czasu generowanie szablonów. Nawet jeżeli będzie to 50 ms to i tak jest to ogromnie duży kop dla procesu developingu.
Jak kogoś boli te marne ms do opóźnienia to odsyłam do cache za pomocą ESI + varnish - odzyskają ten "cenny" czas.

A teraz dla kontrastu... dlaczego szablony w php są złe
- bardzo mało czytelny
- wymaga odpowiedniej konfiguracji serwera aby darować sobie konieczność pisania "<?php"
- kontrola typów na każdym etapie (sprawdzenie czy zmienna jest iterowalna aby podać ją do foreacha, utrudnienia refactoringu)
- wymaga napisania masy helperów + systemu do sensownego ich uruchamiania beż mozolnego wklepywania serii $this->myHelper( bla bla ) (psuje czytelność)
- życzę powodzenia przy próbie implementacji dziedziczenia szablonów


--------------------
Go to the top of the page
+Quote Post
everth
post 3.02.2013, 21:47:34
Post #4





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

Ostrzeżenie: (0%)
-----


Cytat
życzę powodzenia przy próbie implementacji dziedziczenia szablonów

Ten punkt też tyczy się Twiga?


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
wookieb
post 3.02.2013, 21:50:15
Post #5





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Twig już to ma


--------------------
Go to the top of the page
+Quote Post
pyro
post 3.02.2013, 22:11:08
Post #6





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


Cytat(wookieb @ 3.02.2013, 21:38:25 ) *
Jak przeczytałem posty z podlinkowanego wyżej tematu, to jestem przerażony jak można zhejtować tak dobry projekt bez podawania żadnych argumentów.


Temat jest z 2011 roku i wtedy wersja systemu była dużo niższa, więc i pewnie gorsza

Osobiście jestem fanem Twig, jak dla mnie chyba najlepszy system szablonów pod PHP jaki znam (chociaż nie znam ich dużo, bo po co). Moje argumenty właściwie pokrywają się z argumentami @wookieb, dodatkowo:
+ Łatwo dopisywać swoje filtry / funkcje / rozszerzenia
+ Makra. Dzięki nim bawiłem się w "programowanie obiektowe w HTML" rolleyes.gif
+ Rosnąca popularność
+ Zastosowanie jako podstawowy system szablonów w popularnym frameworku PHP - Symfony
+ Webdesignerek jest więcej niż programistek, więc może jak dasz do renderowania jakiś ładny kod, to coś wyrwiesz na Twiga? smile.gif

Do minusów stosowania szablonów PHP nie ma co się dalej dopisywać, bo można by długo.

// ADD

Cytat(wookieb @ 3.02.2013, 21:38:25 ) *
+ pójdzie Ci prawie na każdym hostingu


Czemu "prawie"? Pójdzie na każdym hostingu, no chyba że taki hosting ma jakąś przestarzałą wersję PHP, ale wtedy nie warto brać takiego hostingu pod uwagę, bo i pewnie na ataki podatny.

Ten post edytował pyro 3.02.2013, 22:30:54


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
thek
post 3.02.2013, 22:24:27
Post #7





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Ja, mimo czasu jaki minął od wspomnianego tematu - podtrzymuję swoje tezy, choć z racji pracy mam ostatnimi czasy z twigiem wiele do czynienia. Każdy kto ma do wykombinowania w S2 coś mniej trywialnego, może szykować sobie od razu pistolet wink.gif Przykład? Miałem niedawno do ogarnięcia formularz, który nakładał na siebie relację 1 do wielu z relacją wiele do wielu z parametrem jako element dynamiczny formularza. Relacja 1 do wielu była zależna od jednego z pól formularza, zaś wiele do wielu z parametrem musiała się dynamicznie do niej dostosowywać, a by było wesoło, wybór pwego decydującego elementu nie mógł być zapamiętany od razu do encji, gdyż mógł zniszzyć isniejącą już relację. Twig głupiał, zaś samo S2 miało problemy z ogarnięciem walidacji tego. Event listenery w połączeniu z customowymi form_themes z danymi dodatkowymi rzucanymi przez includowanie podszablonów z parametrami. A by jeszcze było na złość, to niektóre elementy nie mogły mieć zgodnego z innymi wyświetlania, czylipwne elementy dziedziczyły po globalnych customowych form_themes, a inne nie. Zgranie tego do kupy to był horror. O takich drobiazgach jak fakt, że tworzenie customowych form themes w postaci mocno zaawansowanej w sieci jest tyle co kot napłakał - nie piszę. Gdy przychodzi co do czego, to musisz cały kod odpowiedzialny za daną funkcjonalność analizować i rozgryzać. Przykład? Jak twig przyjmuje pary klucz wartość, gdy musi je obliczyć dynamicznie lub przykładowo klucz jest obiektem, z którego wybieramy jedną z własności? Ja się z tym zderzyłem dla generowania path smile.gif
Kod
path( route_name, { argument.here_name: argument.here_value } )

Takie coś sypnie wam exceptionem o nieoczekiwanej kropce, ponieważ twig nie przyjmuje jako klucza czegokolwiek innego niż bezpośrednio string. Ja grzebiąc w bebechach i niejedną stronę przejrzawszy w końcu znalazłem obejście. Trzeba w twigu wymusić wykonanie tego działania poprzez ujęcie w nawiasy okrągłe:
Kod
path( route_name, { (argument.here_name): argument.here_value } )

Ale ile osób w twigu pracujących z takim czymś się spotkała? Nie sądzę by wielu, bo inaczej w google odpowiedź byłaby od razu do znalezienia. A im głębiej w las, tym więcej drzew...

EDIT: Żeby nie było, że hejt sam... Uważam i tak twig za prawdopodobnie najmilszy w użytkowaniu system szablonów dla php, aczkolwiek nie do końca zgodzę się z punktem o wspieraniu przez IDE. Bardziej zagnieżdżone konstrukcje powodują przykładowo w NetBeans "głupienie klamerek". Gdy jest odwołanie do odwołania bądź zagnieżdżona tablica, to podpowiadanie składni siada i zwyczajnie jest ono niepoprawne, ale to już błąd IDE, a nie samego twiga


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 19:34