За последние 24 часа нас посетили 7514 программистов и 828 роботов. Сейчас ищут 390 программистов ...

Посоветуйте шаблонизатор

Тема в разделе "PHP для новичков", создана пользователем bxN5, 29 июн 2010.

  1. bxN5

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

    С нами с:
    15 янв 2009
    Сообщения:
    51
    Симпатии:
    0
    Посоветуйте плз шаблонизатор нужен:
    маленький и быстрый функционала особо не надо - назначение переменных и {if} блоки. Главный упор на скорость
    или подскажите статью какую то хорошую где описывается как написать свой шаблонизатор
     
  2. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
  3. bxN5

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

    С нами с:
    15 янв 2009
    Сообщения:
    51
    Симпатии:
    0
    спасибо то что надо)
     
  4. bxN5

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

    С нами с:
    15 янв 2009
    Сообщения:
    51
    Симпатии:
    0
    что бы не создавать новой тему помогите разобраться в нем:
    $template = $twig->loadTemplate('header.tpl');
    $template->render($lang);
    $template->display(array()); // почему ему нужно передавать массив? с какими значениями? этот метод под каждым $twig->loadTemplate вызывать? дальше есть у меня языковой массив $lang, как его передать в шаблонизатор? Если делать так $template->display($lang); ошибок не выскакивает но при этом он и не передает значения
     
  5. Koc

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

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    на оффсайте все написано и с примерами, чешите туда.
     
  6. bxN5

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

    С нами с:
    15 янв 2009
    Сообщения:
    51
    Симпатии:
    0
    не так там и много написано, не подскажите как с него сингелтон сделать? а то там столько классво и интерфейсов
     
  7. Mr.M.I.T.

    Mr.M.I.T. Активный пользователь

    С нами с:
    28 янв 2008
    Сообщения:
    4.584
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    есть такой шаблонизатор, зовут его php
    и быстрый и функциональный.
     
  8. bxN5

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

    С нами с:
    15 янв 2009
    Сообщения:
    51
    Симпатии:
    0
    так не охота свой велосипед делать=\
     
  9. Koc

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

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    я хуею, дорогая редакция (с)

    сделай класс `myTemplate`, в нем `static protected $twigInstance` и `protected $data`. Сделай метод `assign($key, $data)`
     
  10. [vs]

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

    С нами с:
    27 сен 2007
    Сообщения:
    10.521
    Симпатии:
    614
    Дык его и не надо делать. Шаблон - html + php. Главное не разделить логику и представление. Какая разница, писать "<?php" или "{"? А такая, что файлы с php-кодом можно просто инклудить, что будет намного быстрее парсинга. Можно сделать обертку типа http://www.php.ru/forum/viewtopic.php?p=201089#201089 можно вообще в каждом контроллере свою шаблонизацию делать.
     
  11. Koc

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

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    парсинг делается только один раз, потом такой же самый инклюд происходит, сколько раз вам еще это повторять?
     
  12. [vs]

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

    С нами с:
    27 сен 2007
    Сообщения:
    10.521
    Симпатии:
    614
    Ааа. Smarty?
     
  13. Koc

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

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    вроде бы в этой теме речь идет о Twig'е
     
  14. Diego Velaskes

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

    С нами с:
    2 июл 2010
    Сообщения:
    33
    Симпатии:
    0
    делаешь так:
    PHP:
    1. <?php
    2. $template = $twig->loadTemplate(нужный_дочерний_шаблон);  // остальные шаблоны подтягиваешь через {%extends %} и {% include %}
    3. $temlate->display(array('lang' => $lang)); // и в шаблоне будут доступны переменные {{ lang.var }}
    4. ?>
    А вообще в твиге 0.6.7 появился экстеншн Trans для мультиязычности
     
  15. Koc

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

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

    он гунявый, только геттекст
     
  16. Diego Velaskes

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

    С нами с:
    2 июл 2010
    Сообщения:
    33
    Симпатии:
    0
    тысячи программ в линуксах переведены используя "только геттекст". Кроме того, никто не мешает написать свой экстеншн с тем же интерфейсом и выложить. Contribute, or GTFO из опенсорса!
     
  17. Koc

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

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    будет и свой, но с другим фейсом