Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: буква) "умный" шаблонизатор
Форумы портала PHP.SU » » CMS и фреймворки » буква) "умный" шаблонизатор

Страниц (1): [1]
 

1. DlTA - 23 Мая, 2011 - 11:08:01 - перейти к сообщению
возникла идея воспользоваться функционалом "умного" шаблонизатора

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

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

вот и возникла идея, а может можно наоборот, типа:
шаблонизатор, разобрал документ, нашел метки с параметрами и САМ запросил из вне заменные текста, предоставив метку и ее параметы, некий внешний объект, получив список (метка, параметры) и + параметры запроса уже генерит текста по меткам и возвращает их в шаблонизатор, а тот в свою очередь доделывает свою работу.

вроде сверх сложного ничего нету, и если не найдутся доступно реализованных вариантов придется писать самостоятельно.

может кто знает варианты подходящие под описание?
2. EuGen - 23 Мая, 2011 - 11:22:59 - перейти к сообщению
А чем вариант с написанием самому плох?
Вроде такого:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. Тестовое предложение о {{action}} и {{implementation}}
  3.  

В коде что-то набодобии
PHP:
скопировать код в буфер обмена
  1.  
  2. class Template_Extended
  3. {
  4.    //do some public vars - template file, source of content e t.c.
  5.    function __construct()
  6.    {
  7.    }
  8.    //example, source of tags=$_REQUEST
  9.    //can be implemented by replacing some internal 'template' var
  10.    function replaceTags($string)
  11.    {
  12.       $rgKeys=array_map(create_function('$item','return "{{".$item."}}";'), array_keys($_REQUEST));
  13.       $rgValues=array_values($_REQUEST);
  14.       return str_replace($rgKeys, $rgValues, $string);
  15.    }
  16. }
  17.  

PHP:
скопировать код в буфер обмена
  1.  
  2. $rTemplate=new Template_Extended();
  3. //{{ ... }}
  4. $rTemplate->replaceTags($content);
  5.  

Источником замены служит просто $_REQUEST. Но никто не мешает сделать некоторый объект в системе, который будет иметь сеттеры для переменных-меток и просто хранить их; при замене соответственно нужно будет собирать метки оттуда.
3. Stierus - 23 Мая, 2011 - 11:34:03 - перейти к сообщению
hmvc http://ruseller[dot]com/lessons.php?[dot][dot][dot]ub=37&id=674
4. DlTA - 23 Мая, 2011 - 13:36:54 - перейти к сообщению
EuGen пишет:
А чем вариант с написанием самому плох?

ничем, но вдруг есть ченить умное и понятное

Stierus пишет:
hmvc http://ruseller.com/lessons.php?...ub=37&id=674

по сути да, хотя реализация мне не нравится

EuGen, небольшой пример из фантазии:
к примеру есть шаблон
site=
CODE (htmlphp):
скопировать код в буфер обмена
  1. {header:name=Мой сайт}{contnt}{footer}


шаблонизатор запрашивает для каждой метки HTML-ку
причем HTML-ка чаще всего будет генерировать на основе другова шаблона.
header=
CODE (htmlphp):
скопировать код в буфер обмена
  1. <a ...><img ...>{siteName}</a><...>...
и т.д.

в общем случае получается что шаблонизатор рекурсивно запрашивает сам себя
хотя не прямая рекурсия, а косвенная (так вроде называется), то есть через объект управления
по сравнению с MVC
моделью выступает Шаблон
отображение готовит шаблонизатор
ну контроллер производит разбор запросов, работа с базой, подготовка дополнительных параметров, вызош башлонизатора с параметрами (файл, и т.д.)
как то так.

 

Powered by ExBB FM 1.0 RC1