![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 2 Dołączył: 25.08.2009 Skąd: Toruń / Bydgoszcz Ostrzeżenie: (10%) ![]() ![]() |
Witajcie, dopiero zaczynam się brać za tematykę frameworków. Z tego względu chciałbym Was zapytać czego używacie do budowania szablonów - twig, czy php? I czemu?
Ten post edytował Jazi 29.07.2011, 13:47:59 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
To ja się odniosę do tego co napisał Potencier:
Concision: Systemy szablonów NIE sprawdzają się w chwili gdy mamy do czynienia z czymś ciutkę innym niż domyślne języki ASCII i utf-8. Kto próbował pisać w iso-8859-2 ten nieraz przeklinał gdy wychodziły krzaki w nich, bo trzeba wtedy pisać albo własne funkcje które obejmą owo kodowanie, albo grzebać się w kodzie tego szablonu by uwzględnił jednak iso-latkę. Wiedza do tego konieczna - minimum poziom średnio-zaawansowany. Typowy klepacz layoutów nie ma szans tego zrobić sam. Escape nie jest tu wyjątkiem. Nie wiesz czy zastosowana wersja ucieczki jest tą potrzebną. Nie zawsze opcja ENT_QUOTES jest tą ktorej chcemy. Znowu grzebać się w bebechach trzeba lub pisać plugin czy funkcję? Template oriented syntax: Zwróć jeszcze uwagę na IF, które wepchnieto do przykładu, bo ono wizualnie powiększa kod co skłania czytającego do myslenia, że to gorsze rozwiązanie. PHP znów daje większa kontrole nad tym co się dzieje. System szablonów zapewne próbuje wyłapać czy zmienna istnieje, ale co jeśli jej nie ma? Inna sprawa, że przykład jest dla mnie błędny if( $items ) ? a nie if( is_array( $items ) ) ? Chyba chcemy wiedzieć czy mamy do czynienia z tablicą, a nie byle czym co da się skonwertować dynamicznie do wartości niezerowej. Zauważ, że tutaj Potencier sięgnął do specyficznej właściwości Django jaką jest ELSE dla FOR, czyli wybiera przykład byle udowodnić swą tezę - dla mnie to FAIL. Reusability: Na samym początku już Potencier wspomina o zmianach w php5 jakie zaszły, a cały punkt można streścić do: "Django ma to od lat i inni z tego rżną", ale nie ma tutaj pociągniętego wątku, że podobna rzecz już częściowo jest lub "za chwilke" będzie w PHP, a przemaglowana na wiele sposobów, zapewne nie będzie dziurawa. Security: Zwróć uwagę na cały akapit. Potencier pokazuje że Django to ma, jednak chociaż szczerze pisze, że zdaje sobie sprawę, iż może to być wrzodem na tyłku i trzeba się także uciekać do wyłaczania tego automatu, oraz że jeden z pierwszych kompletnych (przeciwko XSS, CSFR i innych) tego typu mechanizmów właśnie framework PHP - Symfony - wprowadził. Taka kryptoreklama własnego rozwiązania (IMG:style_emoticons/default/wink.gif) Sandbox mode: Znowu szczerość... Nie posiadają tego normalnie języki i systemy szablonów oraz trzeba to samemu implementować poprzez pisanie własnych rozwiązań (co wspomni zresztą nieco dalej przy modyfikowaniu Twiga przez siebie ). Tak więc tutaj znowu robotę musi odwalić programista od back-endu i grzebania się z całym zapleczem, bo front-developer za wiele tutaj nie zdziała. Porównanie systemów szablonów: Smarty: Słuszna zjebka - ciężka kobyła, która była wzorem składni dla Django. W chwili obecnej bardziej dla tych, którzy nie liczą się z wydajnością za grosz. PHPTAL: Powstał do stron, a nie generowania wszystkiego out-of-box. Tak więc trochę dziwi mnie w minusach niemożliwość choćby tworzenia RSS, które są już pewną wariacja na temat XML-em, a więc coś czego nie było w założeniach tego języka. eZ Components Templates: Wypunktowano zalety, ujeto wydajność jako minus. Pytanie się rodzi: "A czego się spodziewałeś innego?" Za każda nową funkcjonalność i ułatwienia trzeba zapłacić wydajnością. Im więcej rzeczy masz dostępnych "na dzień dobry", tym wolniej to będzie działać w środowisku produkcyjnym. Dlatego zawsze wybiera się narzędzie w odniesieniu do potrzeb by ten narzut ograniczyć do minimum. Dwoo: Jako ciekawostka bardziej taki zmodyfikowany Smarty, ale niezbyt elastyczny by osiągnąć lepszą wydajność Calypso: Konwersja Django na PHP i kolejny dowód, że przenoszenie żywcem rozwiązań z innych języków może sie odbić czkawką Twig: Czyli zachwyt nad kodem i informacja, że wziąłem to i jeszcze popoprawiałem, innymi słowy kryptoreklama własnej "gałęzi rozwojowej". To czego mi brakuje w benchmarkach to brak skali porównawczej do tego o czym jest dyskusja w tym temacie, a więc porównanie do rozwiązania w "czystym" PHP. Czyli zapewne coś podobnego do tego co wygenerowałby Twig, ale znając życie z "ręcznymi" optymalizacjami (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 14:57 |