За последние 24 часа нас посетили 18137 программистов и 1662 робота. Сейчас ищут 1719 программистов ...

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

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

  1. cms-lite

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

    С нами с:
    16 янв 2010
    Сообщения:
    53
    Симпатии:
    0
    Это не всегда верно (см. мое предыдущее сообщение)
     
  2. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    не всегда верно что?

    это пример как вообще не надо. На тему почему — думайте сами
     
  3. cms-lite

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

    С нами с:
    16 янв 2010
    Сообщения:
    53
    Симпатии:
    0
    В продолжение предыдущих сообщений: мое мнение таково, что функции или классы не должны
    отвечать за их некорректное использование. Более того, в результате стремления разработчиков
    написать отказоустойчивый и "всеситуационнообъемлющий" код, объем программ неоправданно разбухает,
    а производительность падает. Например, зачем делать так:

    PHP:
    1.  
    2. <?php
    3.   function foo1($var){if(!isset($var))$var="";return $var;}
    4.   function foo2($var){if(!isset($var))$var="";return $var;}
    5.   foo1($var);
    6.   foo2($var);
    7. ?>
    8.  
    Если можно так:

    PHP:
    1.  
    2. <?php
    3.   function foo1($var){return $var;}
    4.   function foo2($var){return $var;}
    5.   if(!isset($var))$var="";
    6.   foo1($var);
    7.   foo2($var);
    8. ?>
    9.  
    Конкретно, в случае класса шаблонизатора это означает: класс шаблонизатора не должен отвечать за
    неправильно установленные или неопределенные переменные. Если разработчик использующий данный класс
    не предусматривает подобные ситуации - это его трудности.

    Что же касается зачистки неотпарсеных псевдо-тегов пустой строкой - это неправильно решение: разработчик
    должен видеть какие именно переменные остались не инициироваными.

    Теперь, что касается моего шаблонизатора, то я немного поспешил: метод Append имеет смысл только для однотипных
    блоков, поэтому я его убрал в ущерб производительности. Лично для меня, не всегда, но в особых случаях красота и
    краткость кода лучше чем производительность. Кроме этого, я убрал метод __get, потому что:

    PHP:
    1.  
    2. <?php
    3.   $view->items .= $item; // нужно понимать что подобная конструкция является причиной вызова
    4.                  // методов __get и __set
    5. ?>
    6.  
    теперь надо делать так:

    PHP:
    1.  
    2. <?php
    3.   $items = "";           // просто создаем временную переменную
    4.   $items .= $item;
    5.   $view->items = $items;
    6. ?>
    7.  
     
  4. Mr.M.I.T.

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

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
  5. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Когда кол-во шаблонов для модуля перевалит за 3-й десяток, и так будет в каждом модуле, вы ещё вспомните о том, что бывают более простые подходы, которые не обязательно включают в себя код написанный и работающий по неким евангелическим стандартам. Когда метод модуля вместо 40 строк будет занимать 150, а более сложные методы вместо 150-200 строчек разбитых на несколько приватных методов и главный публичный перерастут в класс объёмом по 500-2000 строчек кода и потребуют второго уровня абстракции и приведёт к результату "за что боролись, на то и напоролись" - попомните мои слова!
     
  6. cms-lite

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

    С нами с:
    16 янв 2010
    Сообщения:
    53
    Симпатии:
    0
    конкретно???
     
  7. Костян

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

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    cms-lite
    думай
     
  8. igortik

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

    С нами с:
    29 июн 2009
    Сообщения:
    41
    Симпатии:
    0
    А я предпочитаю свое своими руками :)

    И соглашусь, что пхп для этого предостаточно, если правильно посмотреть на вещи.

    Создайте некий "программатор шаблона", который будет инклудиться перед самим шаблоном, в нем определяйте логику , получайте значений переменных, а в самом шаблоне они должны уже быть распарсены и преведены к виду в php дескрипторах...

    Т.е. имеем некий исходный шаблон со своим языком, а достаточно при грамотной организации всей системы лишь подставить в шаблон результат, т.е. переменную... собственно и язык никакой не нужен.. ({var}) уже будет достаточно.
    Можно еще вызов функции докрутить...

    Продолжать не буду... донес только идею.
    Я считаю, что нет смысла использовать сторонние разработки вообще в каких-либо целях, тем более нагружать верстальшика смарти, у них своих хлопот хватает...
     
  9. Koc

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

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    на этом форуме не хватает кнопки "хуета". А жаль, я уже так привык к ней. Костян поймет меня.
     
  10. Padaboo

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

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Koc
    это где такая кнопка есть? :D
     
  11. Koc

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

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

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

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    сообщество php маньяков) какие то там все чОткие ;D
     
  13. igortik

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

    С нами с:
    29 июн 2009
    Сообщения:
    41
    Симпатии:
    0
    просто на этом форуме проводят время по большей мере люди с высоким профитом и нормальным стилем общения, с возможностью исключения слов типа "хуета" )))
     
  14. Padaboo

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

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    эххх как жаль что у нас нету блогов... хотя тут у всех свой блог, один я как дурак доску объявлений сделал :D
    да еше так назвал и такой логотип придумал что с главной страницы можно долго ржать сидеть)
     
  15. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Как по мне, так это уже доведено до идиотизма.
    Раньше:
    1. Построить дом
    2. Посадить дерево
    3. Вырастить сына

    Сейчас:
    1. Выучить РНР
    2. Написать CMS
    3. Открыть свой блог

    По мне так это всё нафиг не надо.
    Перед школьницами показывать свой виртуальный пенис?
     
  16. Padaboo

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

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Apple
    АХхааххахаахахахахахха виртуальный пенис :D
    где то в этом топике виртуальные пенисы сравнивают
    http://www.php.ru/forum/viewtopic.php?t=25497
    поражаюсь каждый раз твоим репликам ;D
     
  17. Hight

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

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    В этом топике есть всё, как в хорошей книге =)
     
  18. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Кстати кто нить phpsavant использует?
     
  19. Padaboo

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

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    с шаблоном где конструкция такого вида {var} заменяется, понял, а вот тут как?
    http://www.php.ru/forum/viewtopic.php?p ... ht=#211516
    там в шаблоне прописаны переменные должны быть? типа так <?php echo $var ?> ?
     
  20. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Напомнило Zend_View, гыгыгы
     
  21. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Padaboo
    Типа да.
     
  22. Padaboo

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

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    тут у меня такой вопрос, если захочу писать весь сайт с использованием аякса, то лучше php шаблонизатор и отдаем в яваскрипт кашу, или лучше будет яваскрипт шаблонизатор?

    Hight
    а глянуть можно?
    Apple
    кто то кажется писал шаблонизатор на jquery ) покажешь?)
     
  23. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Padaboo
    Серверную логику писать проще. С JS шаблонами будет оооочень много JS кода, что тоже не очень хорошо для сайта (если это конечно не JS приложение типа GMail)
     
  24. Костян

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

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    то ничего абсолютно не меняется, просто пользователь может запросить кусок страницы
     
  25. [vs]

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

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    То в 3 раза больше работы, чтобы обеспечить нормальную работу при отключеным JS в браузере. Это обязательно, если там есть контент, который должен индексироваться.