Вы не зашли.
#1.
TLENS
Off
(14)
Moderator
2014.11.13 05:05
Вот только начал разрабатывать проект и столкнулся с выбором шаблонизатора.
Начал работать с твиг очень выручает наследование. Но это единственная причина почему я его взял. Уж сильно он тормознутый.
Вот нарыл пыховский шаблонизатор поддерживающий наследование
http://phpti.com/. Но немного настораживает.
Так же пересматривал компонент шаблона из симфони. Но в доках phpEngine так и не нарыл как наследовать.
да наследование сейчас уже все поддерживают, вроде.
мне не нравятся php-подобные шаблонизаторы типа этого phpti. слишком много возможностей выстрелить себе в ногу.
Добавлено спустя 1 минуту 27 секунд: я бы таки остановился на проверенных твиге или смарти. оба наследование поддерживают, оба имеют хорошую репутацию.
смарти недавно на гитхаб перешел, кстати.
#3.
TLENS
Off
(14)
Moderator
2014.11.13 14:02
Gemorroj написал:
php-подобные шаблонизаторы типа этого phpti. слишком много возможностей выстрелить себе в ногу
И я о том же.
Но с другой стороны. twig делает больше операций чем ввесь сайт.
Есть подозрения что для трехстраничника будет глупо использовать твиг.
К тому же кеширование не прокатит так как странички динамичные.
Ну, для 3-х страничника тогда можно что попроще, хоть чистый php
или если поэксперементировать, то можно js шаблонизаторы порпобовать. Handlebars, например.
#5.
TLENS
Off
(14)
Moderator
2014.11.13 16:04
Gemorroj написал:
Handlebars, например
Глупости. А как же индексация, адаптивность к кирпичам и т.д.
У меня мой мейнсайт состоит из трех страничек. Главная, поиск и предосмотр. Ну там вообще велокоптер))
Есть абстрактный класс Педж его наследуют такие как HTML а этого уже наследует VideoSearch например. Короче так же используется буферизация что то вроде
Код:
span style="color: #0000BB"><?phpob_start();include __DIR__ .'/../../_TEMPLATE/VideoSearch.php';$this->_content .= ob_get_clean(); |
В общем сам класс хранит в себе все необходимое: тайтл, дескрипшен, заголовки и т.д.
В двух словах выглядит все ужасно.
поисковики уже давно нормально парсят js. просто так чтоли гугель v8 пилит.
#7.
TLENS
Off
(14)
Moderator
2014.11.13 18:06
Gemorroj написал:
поисковики уже давно нормально парсят js. просто так чтоли гугель v8 пилит.
И все же я предпочитаю воздержатся
#8.
TLENS
Off
(14)
Moderator
2014.11.13 20:08
Сделал свой велосипед на основе phpti. Как тебе?
Шаблонизатор:
Код:
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":
Код:
<!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":
Код:
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() ?> |
Пример использования:
Код:
$content = template('../template/home.html.php', [ |
'video'=>(object)[ |
'title'=> "Видео \"тайтл\"", |
'description' => "Видео \"Дескрипшен\"", |
] |
]); |
|
highlight_string($content); |
Результат:
Код:
<!DOCTYPE html> |
<html> |
<head> |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
<title>Видео "тайтл"</title> |
<meta name="description" content="Видео "Дескрипшен"" /> |
</head> |
<body> |
<div class="content"> |
<h1>Видео "тайтл"</h1> |
<p>Видео "Дескрипшен"</p> |
</div> |
</body> |
</html> |
Мне данный вариант очень понравился. Все понятно, быстро, и самое главное ПРОСТО. Так же не глобальная погрузка минимизировала возможность как ты говоришь "выстрелить себе в ногу".
Страниц: 1