За последние 24 часа нас посетили 34785 программистов и 1752 робота. Сейчас ищут 1135 программистов ...

Шаблонизатор

Тема в разделе "Решения, алгоритмы", создана пользователем Danilka, 30 апр 2008.

  1. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    windburn
    интерфейс не продуман
    в данном случае да
    однако это не всегда так
     
  2. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    windburn
    дык а толку с такого шаблонизатора?
     
  3. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    конечно, я имел данный случай в виду ))
     
  4. windburn

    windburn Активный пользователь

    С нами с:
    22 дек 2009
    Сообщения:
    6
    Симпатии:
    0
    Почему же в жопу eval?
    Почему интерфейс не продуман?
    Толку с такого шаблонизатора, что идея была именно в элементарном и польностью функциональном, который не будет иметь кучу ненужного мусора, и в то же время иметь все необходимое.
    Никогда еще не сталкивался с такой количествой критики за раз, но было б интересно послушать более развернутые ответы ;)
     
  5. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    ну я вообще не вижу никакого смысла использовать шаблонизатор. Где циклы, условия? Посмотри на Twig.
     
  6. windburn

    windburn Активный пользователь

    С нами с:
    22 дек 2009
    Сообщения:
    6
    Симпатии:
    0
    Практически все готовые шаблонизаторы, с которыми я работал, были громоздкими и навороченными.
    Имхо лучше использовать что-то длиной в 20 строчек и вынести условия и циклы в php код, где генерируется страница, чем утежелять сайт тем же Smarty. Да и свой код потом легче модифицировать, что-то добавлять или убирать, чем разбираться в тысячах строчках чужого проекта...
     
  7. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    windburn
    даже лень в сотый раз всё расписывать
    короче - открой для себя native-php
     
  8. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    windburn
    Да всё хорошо, только вот эта строчка: eval("?>".$this->templateText."<?");
    полная бредятина - гараздо лучше сделать echo $this->templateText если уж ты выбираешь подход str_replace.
    Вот почитай разницу.
     
  9. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
  10. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Koc
    сильно жирный...
     
  11. cms-lite

    cms-lite Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    53
    Симпатии:
    0
    Шаблонизаторы?

    Не мужики, давайте раз и навсегда расставим все точки над PHP :)

    Есть два вида шаблонных систем пассивные или активные.

    PHP:
    1. <?
    2.  //вот это пример использования пассивных шаблонов
    3.  $title = "Мой сайтик";
    4.  $data = array("Apache","PHP","MySQL");
    5.  $list = "";
    6.  foreach($data as $s)$list.=sprintf("<li>%s",$s);
    7.  printf("<html><title>%s</title><body><ul>%s</ul></body></html>",$title,$list);
    8. ?>
    Недостаток пассивной системы состоит в том, что для каждого шаблона необходимо разрабатывать свой парсер.
    Поэтому юзайте PHP:

    PHP:
    1. <?
    2.  //а вот это пример использования активных шаблонов
    3.  $title = "Мой сайтик";
    4.  $data = array("Apache","PHP","MySQL");
    5. ?>
    6. <html>
    7.  <title><?=$title?></title>
    8.  <body>
    9.   <ul>
    10.   <?
    11.    foreach($data as $s){
    12.     ?><li><?=$s?><?
    13.    }
    14.   ?>
    15.   </ul>
    16.  </body>
    17. <html>
    Ах, как же! Верстальщикам нельзя видет $,? и foreach...if...else...
    А как же JavaScript? Его верстальщикам можно видеть???
     
  12. cms-lite, шел бы книжки почитал, что ли. В каждой первой написано, зачем нужны шаблонные системы.
     
  13. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    О да детка, вот тут ты прав! Это как секс. Или ты кого-то, или тебя.
     
  14. cms-lite

    cms-lite Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    53
    Симпатии:
    0
    Спасибо за совет.
     
  15. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    cms-lite
    ты тролль или просто еблан?
     
  16. cms-lite

    cms-lite Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    53
    Симпатии:
    0
    модератор, проснись!...
     
  17. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    cms-lite
    долго будешь звать..
     
  18. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Koc
    Он просто правда считает, что его пример "пассивного" шаблонизатора эквивалентен Смарти или хотя-бы Дружбе =)
     
  19. Для разделения бизнес логики от логики отображения. Но ты никогда не работал в команде больше одного человека, поэтому тебе не понять, да. Сперва добейся, да.
     
  20. cms-lite

    cms-lite Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    53
    Симпатии:
    0
    А так трудно?

    PHP:
    1. <?
    2.  include("./module.php");//бизнес логика здесь
    3.  include("./template.php");//логика отображения здесь
    4. ?>
    Попробуйте теперь вы добиться чего нибудь проще...
     
  21. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    cms-lite
    А в template.php что?
     
  22. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Работает? Ну и отлично.
    А теперь - у тебя граф решений глубиной 5ть и больше, и веток на 20 в ширину.
    Как твой код будет выглядеть?
     
  23. не думаю, что он знает такие слова )))
     
  24. cms-lite

    cms-lite Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    53
    Симпатии:
    0
    HTML и вставки PHP кода

    Я ж не говорю что весь в код в один файл пихать надо. Надо уметь грамотно систематизировать исходный код. Тогда и 100 веток - по барабану =)
     
  25. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    или предоставить это объекту