TIP: Use Markdown or, <pre> for multi line code blocks / <code> for inline code.
These forums are read-only and for archival purposes only!
Please join our new forums at discourse.kohanaframework.org
template parsers
  • Тема, наверное поднималась не один раз. Какие плюсы и минусы использования парсеров (шаблонизаторов)? Я против таких монстров как Smarty, но все-же, как, например, Dust. Компилируемый шаблонизатор. Да, понимаю, что вывод переменных фактически ничем не отличается, (<?= $var > и {{var}}) но, например, при выводе уже автоматически будет экранировать HTML символы, что в некоторой мере защит от XSS и тому подобной чепухи. Дальше, если, я например, некоторые шаблоны буду собирать на клиенте, используя этот же парсер под js, то это несколько может упростит дело, так как шаблоны собираемые на сервере и клиенте могут иметь одинаковый вид. У кого какой опыт подобного рода использования? ---- Но, очевидно, тогда придется забыть в отображениях об

    <?= Form::input($field['name'], $field['value'], $field['attributes']) ?>
    
  • Eсли кешировать данные, то не важно какой шаблонизатор - если есть кеш, то можно шаблонизатор даже не загружать.

    Большинство шаблонизаторов поддерживает работу с объектами, если со статикой проблемы можно обернуть в функцию.

    http://bmidget.github.io/kohana-formo/ Вариант с генератором форм.

  • Тут затронулась тема, которую, в которой я пока не разбирался, кеширование. Например, как можно закешировать http://site.ru/page/2 если её содержимое может, и скорее всего — будет различаться для меня, вас, и другого пользователя...
    ------
    Относительно Formo вроде он использует нативный шаблонизатор.

  • все шаблонизаторы из тех что я видел (кроме смарти) не поддерживают статичные методы, поэтому базовые хелперы использовать не получится. Сайт кешируется частями например есть блок новостей\меню одинаковый для всех, значит можно его закешировать.

  • Ну в принципе, можно и завернуть нужные методы, и подключить свои хелперы. Лучше не использовать в отображениях подобный вызов, или это не существенно? Хорошо, например, я закешировал новости. Но они же меняются каждый день.. То же самое меню. В один момент я могу, как администратор, добавить еще один пункт...

  • @ekkl ну так некто и не говорил что он тебе совсем не нужен,я сказал что при кешировании "монструозность" смарти не ощущается.

  • вот ещё одни вопрос по отображениях. Хорошо, или плохо в отображениях такой код

    <?= __('Variables set') ?>
    <?= Form::open($action, array ('class' => 'custom')); ?>


    --
    Или вот это

    <?php if ($test) : ?>
          <?= HTML::anchor(Route::url('install', ['action' => 'database']), __('Next'), ['class' => 'button right radius']); ?>
        
       <?php else : ?>

    По идее, куда уходит ссылка должен решать контроллер, заголовок, как мне кажется 50/50 Но что это ссылка с таким классом, только отображение..

     <?= HTML::anchor($href, $title, ['class' => 'button right radius']); ?>

    Это, мне кажется выглядит не очень красиво..

  • если тебя терзают столь философские вопросы, может почитаешь что-нибудь по теории программирования?

  • А что лучше почитать? Можете что-то посоветовать? Кнут хорош, но там три тома..

  • "Приёмы объектно-ориентированного проектирования. Паттерны проектирования." Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидс

    Или посмотри ссылки к статьям в wiki Шаблон_проектирования, Model-View-Controller

    Вообще где\что понятно по логике: "куда уходит ссылка" решат роутер, "заголовок" - вид\модель, ну хоть с классом ты попал :)

  • Спасибо, почитаю. Конечно, логику можно сунуть куда угодно, и работать будет. Просто не хочу, чтобы получался быдлокод. Примеры смотреть считаю не очень хорошо. Видел CMS на кодигнайтере. так там контролер и базу данных юзает, а модель HTML формирует... Вот поэтому и спрашиваю....

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion