Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

3 Stron V  < 1 2 3  
Reply to this topicStart new topic
> [Symfony]Twig czy PHP
viking
post
Post #41





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


Dla mnie ideałem od lat jest PHPTAL i nie wyobrażam sobie pracy na zwykłym kodzie PHP w widoku, a szablony typu Twig wcale się nie różnią w składni od gołego PHP. Jeszcze robią problemy kiedy trzeba sobie dodatkowo oprogramować np. wyświetlanie formularza z jakiegoś systemu. Ten przykład który podał !*! jest fajny do czasu gdy na wszystkich danych trzeba robić htmlentities().

Go to the top of the page
+Quote Post
Pyton_000
post
Post #42





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


PHPTal nie wygląda na taki superaśny. Wrzucanie pierdyliard atrybutów do znacznikow strasznie zaciemnia obraz szablonu.

Twig, Smarty, PHP czy inne twory... Każdy używa czego chce i w czym mu wygodnie. Ja wiem że do Smarty nie wrócę nigdy, Twig ew. php i starczy.
Go to the top of the page
+Quote Post
viking
post
Post #43





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


Ale w gratisie dostajesz wyjątek przy źle zamkniętych znacznikach (super ważna dla mnie kwestia dzięki którym nie ma źle zamkniętego kodu) i autoescape dla wszystkich danych. Zresztą PHPowa wersja i tak jest mocno okrojona o funkcje w stosunku do Pythonowego.

Dla mnie przykładowo:

  1. <div i18n:translate="test">?</div>
  2. <ul tal:repeat="row rows">
  3. <li tal:content="row/id">domyślne dane, pojawią się przy braku contentu</li>
  4. </ul>


Jest super czytelne, umożliwia dodatkowo testowe ostylowanie albo pracę na JS.

A już z Twiga:

  1. <ul>
  2. {% for user in users %}
  3. <li>{{ user.username|e }}</li>
  4. {% endfor %}


To zwykła sieczka i równie dobrze można gołe PHP używać. Szansa że się pomylisz w kodzie jest jeszcze większa.

Ten post edytował viking 4.07.2016, 14:37:59
Go to the top of the page
+Quote Post
event15
post
Post #44





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 4.07.2016

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


Z chęcią, już nieco spokojniej odpowiadam.

Większość aplikacji, jakie piszę jest w metodyce DDD. Kod jest dzielony na 4 główne warstwy. W rzeczywistości każda z tych warstw jest ODDZIELNYM projektem i służy do zgoła innych rzeczy.

Górną warstwą jest Prezentacja. Jest to czysty HTML+CSS + JavaScript w dowolnej formie. Ajax, Angular, React, cokolwiek co obsługuje komunikację po API REST.

Poniżej jest warstwa Aplikacji, która najczęściej wykorzystuje mikroframework, w moim przypadku najczęściej jest to Slim. Nie mam w nim żadnej logiki aplikacji. Odbieram requesty z prezentacji wysyłam je do niższych warstw i wysyłam response. Ten projekt można prowadzić zupełnie równolegle do wszystkich innych, tak samo jak projekt prezentacji.

Poniżej jest warstwa modelu dziedziny - nie ma tutaj zapytań do baz danych, nie ma też obsługi requestów z prezentacji. To tuaj dzieje się wszystko, co decyduje o działaniu aplikacji w zakresie wiedzy.

Infrastruktura to ostatnia warstwa, w której zapewnia się repozytoria i ich obsługę oraz serwisy, które wykorzystuje model dziedziny, czasami aplikacja.

W takim podziale warstw nie ma mowy o mieszaniu kodu dwóch języków. Dla mnie jest to naturalne podejście. Dzięki temu zespół grafików i front-endowców jest w 100% niezależny od zespołu backendowców - może mockować zasoby tak, aby później spokojnie podłączyć już istniejący, gdy będzie gotowy.

Tak samo zespół projektujący API może sobie zaprojektować całą aplikację niespecjalnie przejmując się warstwą prezentacji, czy domeny, bo aplikacja nie posiada przecież najmniejszej wiedzy o domenie i nie potrzebuje żadnej wiedzy o prezentacji.

Infrastruktura również nie wymusza na nas w takim podejściu wyboru bazy danych - storage może być wszystkim. Inmemory, postgres, mysql - można zaimplementować różne bazy do odczytu i zapisu.

Go to the top of the page
+Quote Post
nospor
post
Post #45





Grupa: Moderatorzy
Postów: 36 565
Pomógł: 6315
Dołączył: 27.12.2004




No i super. Czyli wszystko jasne. Przyszedles na forum by sie pochwalic ze uzywasz Angular a kazdy kto nie uzywa to jest be. Ok, dziekujemy, przyjelismy, mozesz teraz isc na inne forum i tam tez sie pochwalic (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
event15
post
Post #46





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 4.07.2016

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


Cytat
Przyszedles na forum by sie pochwalic ze uzywasz Angular a kazdy kto nie uzywa to jest be. Ok, dziekujemy, przyjelismy, mozesz teraz isc na inne forum i tam tez sie pochwalic


Nie złapałeś.
Nawet nie wiem czy zrozumiałeś w ogóle, co napisałem. Przetraw sobie jeszcze raz. Napisałem, że rozdzielenie warstwy prezentacji jest kluczowe. To czy jest to framework jsowy, czy jest to GUI desktopowe nie powinno być przedmiotem dyskusji. Aplikacja powinna być napisana tak, aby ani jeden, ani drugi nie miał problemu wdrożyć swój projekt.
Go to the top of the page
+Quote Post
nospor
post
Post #47





Grupa: Moderatorzy
Postów: 36 565
Pomógł: 6315
Dołączył: 27.12.2004




Ok, to rodziel mi warstwe prezentacji w standardowym modelu gdzie nie masz angulara ani innych tego typu zabawek. Chetnie poslucham.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #48





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


@event15 ale co ma do tematu to w jaki sposób pracujesz? Tu się rozchodzi o Twig czy PHP jako narzędzie do budowania widoków.

Oba się nadają, obu się używa.
Go to the top of the page
+Quote Post
Turson
post
Post #49





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


@event15, a w aplikacji nie-RESTowej w MVC jak będziesz drukował dane?
Tak można iść karcić Javowców za JSP, bo mieszają Javę z HTML. Litości
Go to the top of the page
+Quote Post
event15
post
Post #50





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 4.07.2016

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


Cytat
Ok, to rodziel mi warstwe prezentacji w standardowym modelu gdzie nie masz angulara ani innych tego typu zabawek. Chetnie poslucham.

Oczywiście Twig.


Cytat
@event15 ale co ma do tematu to w jaki sposób pracujesz? Tu się rozchodzi o Twig czy PHP jako narzędzie do budowania widoków.

Oba się nadają, obu się używa.

Twig IMO jest rozwiązaniem lepszym. Nadaje abstrakcję w kontrolerze na dane wysyłane do widoku. Jego pobranie to jedna komenda w composerze, użycie to kilka kliknięć. Stosując IDE, które wspiera budowanie widoków za pomocą wtyczki do Twiga sprawia, że jest to naturalny wybór.

Cytat
@event15, a w aplikacji nie-RESTowej w MVC jak będziesz drukował dane?
Tak można iść karcić Javowców za JSP, bo mieszają Javę z HTML. Litości

Jeżeli już mam pisać nie-RESTową aplikację to oczywiście moim wyborem jest Twig.
Go to the top of the page
+Quote Post
com
post
Post #51





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


Ale twig i wszystkie tego typu to itak html w php, tylko dodajesz dodatkowa nad nim abstrakcje wiec na jedno wychodzi. I to, że robisz DDD jakie to ma znaczenie? Też robie i co z tego. Można używać, ale nie trzeba tak samo jak DDD można zrobić z fw, a nie trzeba, czy nawet z ORMem.

Turson DDD to wcale nie musi być REST, a MVC to już trochę przeżytek, tym bardziej że na HTTP, to się go kaleczy.

Go to the top of the page
+Quote Post
LowiczakPL
post
Post #52





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

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


Cytat(event15 @ 4.07.2016, 14:34:51 ) *
W przypadku PHP nie ma mowy o "kompilacji".


... i tu się mylisz PHP można kompilować!
Go to the top of the page
+Quote Post
com
post
Post #53





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


@up to bardziej sztuka dla sztuki (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
destroyerr
post
Post #54





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


Tylko, że źródłowa wypowiedź dotyczyła kompilacji szablonów, tylko nasz narwany kolega źle doczytał i stąd pojawił się problem.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 4.05.2026 - 16:51