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

1.54K
.
Написал шаблонизатор. Два основных отличия -
1. Компиляция шаблона
2. Натив вид кода
Скажите зачем? Ведь есть смарти и другие шаблонизаторы.
Размер смарти: ~900kb и этим не все сказано, дело в том, что функции в шаблонизаторе выполняются через посредников, потому это неудобно, так как нельзя использовать внешнюю функцию в шаблоне.
Вывод содержимого шаблона и регистрация перемнных абсолютно ничем не отличается от смарти, внешне ($Native->assign, $Native->display...).

Smarty-tpl:
<html>
<title>{$title_var}</title>
<body>
Вывод переменной $var - {$var}
Условие - {if ($var)}Текст{/if}
</body>
</html>


Native-tpl:
<html>
<title>{=$title_var}</title>
<body>
Вывод переменной $var - {=$var}
Условие - {if ({$var}):}Текст{endif}
</body>
</html>


Для начала работы с классом, установите настройки в классе, и впишите код где желаете использовать класс -
$Native = new Native;
Прикрепленные файлы:
.
Более подроьная инструкция:
Перед стартом - установите папку шаблонов и папку для скомпилированных шаблонов.
Далее примерно так:
//Подключаем шаблонизатор
$Native = new Native;

//Регистрируем переменную
$Native->assign('test_var', "Значение тестовой переменной");

//Выводим шаблон
$Native->display('template.tpl');


template.tpl
<html>
<head><title>Тестовый шаблон</title></head>
<body>
{if ({$test_var}):} {=$test_var} {endif}
</body>
</html>


В результате выведет "Значение тестовой переменной" в случае если переменная задана.
.
<title>{=$title_var}</title>
<body>
Вывод переменной $var - {=$var}
Условие - {if ({$var}):}Текст{endif}


и

<title><?=$title_var ?></title>
<body>
Вывод переменной $var - <?=$var ?>
Условие - <?php if ($var): ?>Текст<?php endif ?>


я выберу второй вариант. И я вообще не понимаю действительно, зачем это? Что бы писать меньше кода? Разница то всего в два три знака.
.
NURD (16.07.2012/10:51)
<html>
<head><title>Тестовый шаблон</title></head>
<body>
{if ({$test_var}):} {=$test_var} {endif}
</body>
</html>
А так не проще?

<html>
<head><title>Тестовый шаблон</title></head>
<body>
<?php if ($test_var) echo $test_var; ?>
</body>
</html>


Зачем тебе шаблонизатор вообще, если он ничего особого не умеет. Обычный РНР, только больше заморочек. В Смарте хотя-бы одной функцией можно вставить календарь или еще что, а твой шаблонизатор, так проще нативный РНР юзать.
.
(\/)____o_O____(\/)
а цикл где?
.
Koenig (16.07.2012/11:33)
а цикл где?
Цикл
{while (true):} Тра ля ля {endwhile}
.
Вопрос, зачем писать {while}, {$var} и потом обрабатывать все это регулярками, если можно просто написать <? while() ?>, <?=$var ?> ?
.
NURD (16.07.2012/11:36)
Цикл
{while (true):} Тра ля ля {endwhile}
.
~XeOn~ (16.07.2012/11:38)
Вопрос, зачем писать {while}, {$var} и потом обрабатывать все это регулярками, если можно просто написать <? while() ?>, <?=$var ?> ?
Не знаю. Я написал а вы разбирайтесь!
.
при таком подходе, стоит использовать синтаксис пхп, без своих велосипедов
Всего: 67