Я жду не дождусь когда уже кто-нибудь в этой теме приведёт пример дествительно хорошей шаблонной системы... Эх...
Вот этого практически достаточно. http://www.php.ru/forum/viewtopic.php?p=201089#201089 Финал конечно можно убрать, поскольку он больше для красоты.
Лично мое убеждение состоит в следующем: - вся логика отображения данных должна происходить исключительно на стороне клиента (именно к этому кстати веб-технологии, может не слишком бодро, но движутся) - в свете вышесказанного, неплохо было бы создать клиентскую версию PHP, назовём его PHPScript (а вот здесь мы снова возвращаемся к теме старого, но провереного временем шаблонизатора по имени PHP)
Не совсем понимаю, зачем нужен в добавлении к флешу и JavaScript еще какой-то PHPScript? Что мешает написать на том же JS клиентский шаблонизатор?
akrinel Для простой страницы - да. Но когда начинаешь использовать всякие grid'ы и panel'и, то мне уже проще всю страницу через ExtJS разметить, чем пытаться вписать то что сделает ExtJS в html код страницы.
Volt(220), так я с этим и не спорю Но все же на большинстве сайтов, пока что, задачи полегче, поэтому ExtJs в моем понимании рулит на данный момент только в админках и всяких там клиентах CRM ERP и прочих интранетов.
извиняюсь, я перепутал визуализацию с логикой отображения =) ... т.к. PHPScript был бы гораздо удобнее
Код (Text): echo new count('users'); выглядит красиво =) [vs] приведи пожалуйста простенький пример с вложенными шаблонами для твоего шаблонизатора, если не трудно конечно (не забудь только код самих шаблонов)
Simpliest да чел недопонималка... cms-lite ты бы подумал прежде чем писать. Да, в твоих словах есть доля правды, но это только доля и очень маленькая. Или ты так, помечтать решил?
1.tpl Код (Text): <h1><?php echo $msg?></h1> 2.tpl Код (Text): Preved PHP: <?php $view = new view('1.tpl'); $view -> msg = new view('2.tpl'); echo $view;
cms-lite просто ты не знаешь как что применить, и поэтому [censored]говоришь, что тут написана [censored]ерунда. Не надо так делать - это не хорошо!!! //тут был Luge
vs, если шаблон страницы состоит из 10 субшаблонов, то у тебя как минимум будет 10 раз include, надо-бы кэшировать... ...но есть и хорошая новость, у тебя получилась гибридная система =) Пример генерации меню с использованием пассивных шаблонов: item2.tpl: Код (Text): <li><?=$title?> item1.tpl: Код (Text): <li><a href="<?=$href?>"><?=$title?></a> menu.php: Код (Text): <ul><?=$items?></ul> index.php: PHP: <? include("./class.view.php"); define("query",intval($_SERVER["QUERY_STRING"])); $links = array("Главная","Пользователи","Форумы"); $menu = new view('./menu.tpl'); $item1 = new view('./item1.tpl'); $item2 = new view('./item2.tpl'); foreach($links as $k=>$v){ if(query==$k){ $item2->title = $v; $menu->items.= $item2; }else{ $item1->href = "/?".$k; $item1->title = $v; $menu->items.= $item1; } } ?> <?=$menu?> Пример генерации меню, с использованием активных шаблонов: menu.tpl Код (Text): <ul> <? foreach($links as $k=>$v) if(query==$k){ ?><li><?=$v?><? }else{ ?><li><a href="/?<?=$k?>"><?=$v?></a><? } ?></ul> index.php PHP: <? include("./class.view.php"); define("query",intval($_SERVER["QUERY_STRING"])); $links = array("Главная","Пользователи","Форумы"); $menu = new view('./menu.tpl'); $menu->links = $links; ?> <?=$menu?>
Koc может быть, спасибо Luge поправил. Но меня, четно говоря, достали эти умники, боги программирования, несущие сущий бред, не понимая о чём идет речь.
vs, в чем принципиальное преимущество твоего класса перед простым инклюдом (кроме выделеного нэймспэйса конечно) ???