Комментарии 44
Шаблонизатор - имхо, это не то, что стоит писать самому с нуля.
Но вообще, желание делать что-либо самому и разбираться - как минимум, похвально) Плюсц.
Но вообще, желание делать что-либо самому и разбираться - как минимум, похвально) Плюсц.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
тогда и РНР нужно на уровне исходников все выбросить и собрать только с теми функциями что используются Ж)
Не угодил тем, что хочется своё, заточенное под данные нужды.
вместо
foreach($templateVars as $k=>$v)
$$k = $v;
лучше использовать extract
foreach($templateVars as $k=>$v)
$$k = $v;
лучше использовать extract
Попытайтесь освоить XSLT.
Сначала шутка: автор перепиши Си++
Потом притча: если автор "Вообще писать особо не умею, обычно выходит только код" - пользуйтесь тем, что уже написано и используется тысячами (аналогия с Open Source), после того как реально поймете все + и - таких подходов изобретайте велосипед
Потом притча: если автор "Вообще писать особо не умею, обычно выходит только код" - пользуйтесь тем, что уже написано и используется тысячами (аналогия с Open Source), после того как реально поймете все + и - таких подходов изобретайте велосипед
Скажите, зачем писать PHP на PHP? :)
Нет, я не против использования шаблонизаторов, но важно помнить, что цель их - отделение представления от кода. И это совсем не предполагает наличие условных подстановок, имхо.
В конце концов, можно не извращаться, а написать абсолютно то же на чистом РНР и инклюдить в код. Верстальщику (если таковой предполагается в проекте) не будет большой разницы между "<?", "[*" и "{"
Нет, я не против использования шаблонизаторов, но важно помнить, что цель их - отделение представления от кода. И это совсем не предполагает наличие условных подстановок, имхо.
В конце концов, можно не извращаться, а написать абсолютно то же на чистом РНР и инклюдить в код. Верстальщику (если таковой предполагается в проекте) не будет большой разницы между "<?", "[*" и "{"
НЛО прилетело и опубликовало эту надпись здесь
Всё то же самое можно сделать на "голом" РНР вообще без шаблонизатора. И будет оно ничуть не менее наглядно, нежели смарти-код. Имея HTML, JS, PHP & SQL вводить ещё один разметочно-программинговый язык странно. В смысле сопровождения :) Всё-таки чистый РНР более массовый, нежели разметка Smarty.
ну ваше решение для маленьких, чаще всего сопровождаемых 1-2 человеками проекте. А если вы кардинально меняете дизайн...тогда вы понимаете как важно отделить код от представления
Я понимаю, как важно отделить код от представления и совершенно не понимаю, чем не угодил чистый РНР :)
<?php
include('config.inc');
include('mysql.inc');
include($config['module_dir'].'/'.$current['module_filename']);
include($config['design_dir'].'/'.$current['design'].'/view.php');
?>
а в view.php будет что-то вроде этого
<html>
<head>
<title><?=$current['title']; ?></title>
</head>
<body>
<h1><?=$current['title']; ?></h1>
<div><?=$current['content']; ?></div>
</body>
</html>
Очень упрощённо, чисто для иллюстрации.
<?php
include('config.inc');
include('mysql.inc');
include($config['module_dir'].'/'.$current['module_filename']);
include($config['design_dir'].'/'.$current['design'].'/view.php');
?>
а в view.php будет что-то вроде этого
<html>
<head>
<title><?=$current['title']; ?></title>
</head>
<body>
<h1><?=$current['title']; ?></h1>
<div><?=$current['content']; ?></div>
</body>
</html>
Очень упрощённо, чисто для иллюстрации.
Мне кажется своими include-ами вы и разделяете (если это так можно назвать) представление от данных.
Не вижу никакого отличия от выполнения операций подготовке вами данных в файлах module_filename от операции assign какого-нибудь шаблонного движк или от вашего include 'view.php' от вызова draw
Не вижу никакого отличия от выполнения операций подготовке вами данных в файлах module_filename от операции assign какого-нибудь шаблонного движк или от вашего include 'view.php' от вызова draw
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Спасибо за статью. Я тоже нуждаюсь в шаблонизаторах. Вот нашел такие. Думаю и тебе подойдет
http://quicktemplate.sourceforge.net/
А тут другие, более известные проекты.
http://www.whenpenguinsattack.com/2006/0…
http://quicktemplate.sourceforge.net/
А тут другие, более известные проекты.
http://www.whenpenguinsattack.com/2006/0…
Очипятку нашел
"Послу замены код сохранялся в php"
"Послу замены код сохранялся в php"
Пока Вы писали шаблонизатор, futurico открыл новый web 2.0 стартап :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Шаблонизатор на php