#1 2014.11.13 05:32

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Какой шаблонизатор выбрать?

Вот только начал разрабатывать проект и столкнулся с выбором шаблонизатора.
Начал работать с твиг очень выручает наследование. Но это единственная причина почему я его взял. Уж сильно он тормознутый.
Вот нарыл пыховский шаблонизатор поддерживающий наследование http://phpti.com/. Но немного настораживает.
Так же пересматривал компонент шаблона из симфони. Но в доках phpEngine так и не нарыл как наследовать.

Неактивен

#2 2014.11.13 11:08

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Какой шаблонизатор выбрать?

да наследование сейчас уже все поддерживают, вроде.
мне не нравятся php-подобные шаблонизаторы типа этого phpti. слишком много возможностей выстрелить себе в ногу.
Добавлено спустя   1 минуту  27 секунд:
я бы таки остановился на проверенных твиге или смарти. оба наследование поддерживают, оба имеют хорошую репутацию.
смарти недавно на гитхаб перешел, кстати.

Неактивен

#3 2014.11.13 14:29

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Какой шаблонизатор выбрать?

Gemorroj написал:

php-подобные шаблонизаторы типа этого phpti. слишком много возможностей выстрелить себе в ногу

И я о том же.
Но с другой стороны. twig делает больше операций чем ввесь сайт.
Есть подозрения что для трехстраничника будет глупо использовать твиг.
К тому же кеширование не прокатит так как странички динамичные.

Неактивен

#4 2014.11.13 15:31

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Какой шаблонизатор выбрать?

Ну, для 3-х страничника тогда можно что попроще, хоть чистый php smile или если поэксперементировать, то можно js шаблонизаторы порпобовать. Handlebars, например.

Неактивен

#5 2014.11.13 16:31

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Какой шаблонизатор выбрать?

Gemorroj написал:

Handlebars, например

Глупости. А как же индексация, адаптивность к кирпичам и т.д.
У меня мой мейнсайт состоит из трех страничек. Главная, поиск и предосмотр. Ну там вообще велокоптер))
Есть абстрактный класс Педж  его наследуют такие как HTML а этого уже наследует VideoSearch например. Короче так же используется буферизация что то вроде

Код:

1
span style="color: #0000BB"><?phpob_start();include __DIR__ .'/../../_TEMPLATE/VideoSearch.php';$this->_content .= ob_get_clean();

В общем сам класс хранит в себе все необходимое: тайтл, дескрипшен, заголовки и т.д.
В двух словах выглядит все ужасно.

Неактивен

#6 2014.11.13 17:07

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Какой шаблонизатор выбрать?

поисковики уже давно нормально парсят js. просто так чтоли гугель v8 пилит.

Неактивен

#7 2014.11.13 18:12

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Какой шаблонизатор выбрать?

Gemorroj написал:

поисковики уже давно нормально парсят js. просто так чтоли гугель v8 пилит.

И все же я предпочитаю воздержатся

Неактивен

#8 2014.11.13 20:28

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Какой шаблонизатор выбрать?

Сделал свой велосипед на основе phpti. Как тебе?
Шаблонизатор:

Код:

1
span style="color: #0000BB"><?phprequire_once __DIR__ . '/../include/ti.php';function template($path, $_parameters = []) { // Создаются переменные для прямого запроса из шаблона foreach ($_parameters as $key=>$value) ${$key} = $value; // Убираем теперь ненужную переменную unset($_parameters); ob_start(); $ob_level = ob_get_level(); // Подключаем шаблон include $path; // сбрасываем накопившиеся внутри шаблона буферы while(ob_get_level() > $ob_level) ob_end_flush (); // Вуаля return ob_get_clean();}

Базовый шаблон "base.html.php":

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><?=$title?></title>
<meta name="description" content="<?=$description?>" />
</head>
<body>
<div class="content">
<?emptyblock('content')?>
</div>
</body>
</html>

Управляющий шаблон "home.html.php":

Код:

1
span style="color: #0000BB"><?php$title = htmlentities($video->title);$description = htmlentities($video->description);include __DIR__ . '/base.html.php';?><? startblock('content')?><h1><?=htmlentities($video->title)?></h1><p><?=htmlentities($video->description)?></p><? endblock() ?>

Пример использования:

Код:

1
2
3
4
5
6
7
8
$content = template('../template/home.html.php', [
'video'=>(object)[
'title'=> "Видео \"тайтл\"",
'description' => "Видео \"Дескрипшен\"",
]
]);
 
highlight_string($content);

Результат:

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Видео &quot;тайтл&quot;</title>
<meta name="description" content="Видео &quot;Дескрипшен&quot;" />
</head>
<body>
<div class="content">
<h1>Видео &quot;тайтл&quot;</h1>
<p>Видео &quot;Дескрипшен&quot;</p>
</div>
</body>
</html>

Мне данный вариант очень понравился. Все понятно, быстро, и самое главное ПРОСТО. Так же не глобальная погрузка минимизировала возможность как ты говоришь "выстрелить себе в ногу".

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.010 s