Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Отчего я отказался от применения Smarty

Anna | 31.05.2014 | нет комментариев

Когда я пришел на работу в одну заокеанскую контору (удаленно безусловно. и было это году так в 2000), то вынужден был применять эталоны, принятые в этой организации. И одним из них было применение своего шаблонизатора, тот, что выглядел как легкой html файл, в котором могут присутствовать особые последовательности символов (обыкновенно начинающиеся и заканчивающиеся на “##”), которые перед выдачей в броузер будут заменены на тексты либо итоги работы других образцов. Также там был свое API для работы с такими образцами. Дюже примитивное API. А так как я был в то время дюже молод, то я принял на вооружение эти эталоны и стал применять их в своей работе.

Вот пример работы с таким образцом:

    $template = new Template();
    $template->Load('NameTemplate.html');
    $template->Replace('##TITLE##', 'Hello world!');
    $template->Out();
Знакомство

Шли годы. И при реализации очередного плана появилось требование: «В качестве шаблонизатора непременно применение Smarty». Партия сказала: «Нужно». Комсомол ответил: «Есть!». Так я и познакомился со Smarty. Он мне дюже понравился. Я легко был вне себя от фурора. Любая задача которую мне нужно было реализовать, могла быть реализована с его поддержкой. Изредка легко, изредка дюже трудно, но дозволено. В всеобщем, я стал применять Smarty.

Прозрение

Прошло еще несколько лет. Не помню отчего, но появилась задача обнаружить легкой для работы фреймворк на php. Я обнаружил их список и стал их тестировать для наших целей. Безусловно одним из требований было: помощь Smarty (и это было теснее мое требование). При чтении документации одного из фреймворков (то ли Kohana, то ли CodeIgniter) я встретил фразу приблизительно такую: «Вы можете применять Smarty, вот здесь инструкция как его подключить и как с ним трудиться в нашем фреймворке, но мы считаем что нативный php проще, внятнее и стремительней …». И я задумался. Стал сопоставлять реализации на нативном php и Smarty.

Проще? Безусловно, чай php мы теснее знаем.
Внятнее? Безусловно, чай php мы теснее понимаем.
Стремительней? Безусловно, чай код на Smarty будет транслироваться в код на php (и как минимум стремительней он быть не может, а медленне запросто).
Безвреднее? Я думаю да. Правда здесь дозволено поспорить. Дырок дозволено наделать где желательно.

Cмотрите сами:

{$foo} вопреки <?=$foo?>
{assign var=foo value='baa'} вопреки <?php $foo = 'baa'; ?>
{include file='header.tpl'} - реализация этого на php зависит от различных факторов от <?php include 'header.php'; ?> до больше трудных вариантов (все зависит от фреймворка)
{assign var="foo" value="`$foo $bar`"} // помню, неизменно искал это в документации.

<?php 
	$foo  = $bar; 
?>

Примеры условий и циклов приводить не буду — занимают много места и выглядят приблизительно идентично.

Еще помню как на Smarty делал реализацию рекурсивного обхода дерева, один из вариантов это создание образца и вызов этого образца внутри себя. На php это выглядит так:

<?php
	function draw_tree($tree){
		foreach ($tree as $node)
		{
			echo '<option ...>'.$node['name'].'</option>';
			draw_tree($node['childs']);
		}
	}
?>

Я длинно пытался себя уговорить, что Smarty комфортнее для дизайнеров. Но они на него так и не пришли (по различным причинам). И в выводе я, как программист, вынужден был писать скрипты для скриптового языка. В добавок некоторые версии Smarty оказались с уязвимостью и мне, то и дело, доводилось возвращаться к ветхим планам, Дабы обновлять библиотеки и делать проверки на совместимость.

PS. Smarty не использую теснее года 2-3, и потому нынешнее состояние дел мне оценить трудно, но думаю дела обстоят не отменнее и не дрянней чем было прежде.

Источник: programmingmaster.ru

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB