Smarty templates
Рано или поздно начинает как-то нервировать, когда при смене дизайна тебя отрывают от других проектов, потому что чтоб сменить дизайн, надо лезть внуть PHP-страниц и что-то там менять. А дизайнер этого делать и подавно не собирается (а может просто не умеет).
Собственно, для меня это и стало толчком в сторону концепции "разделения данных и представления".
В самом простом случае мы можем использовать HTML-шаблоны. Что это такое? Средство, позволяющее вынести из РНР весь HTML в отдельные файлы. Но данные туда вставлять все-равно надо, скажите вы. Да, надо, и для этого служит свой простой синтаксис, и никакого РНР-кода вперемежку с HTML!
Такова идея движка шаблонов Smarty. Я бы сказал, что это очень удобная штука, если применять ее с умом.
Итак, в первую очередь нам понадобится сам шаблонизатор. Берем и разваливаем его в какую-то папку в нашем www. После этого топаем сюда и читаем ускоренный курс обучения.
Как правило, все должно заработать. Если же все так просто с первого раза не запустилось, то давайте напишем обертку для класса Smarty.
Для начала, немного теории. Смарти при парсинге шаблона генерирует его PHP-код. Для увеличения быстродействия он его сохраняет в своем кеше и в следующий раз отдает его оттуда уже без повторной генерации (это папка template_c, у которой должны быть права на запись для апача).
И вот обертка...
[cc lang="php"] class Page extends Smarty {
function Page()
{
$path = '/var/www/mywebsite';
$this->template_dir = "$path/templates";
$this->compile_dir = "$path/templates_c";
$this->config_dir = "$path/configs";
$this->cache_dir = "$path/cache";
}
}
[/cc]
И теперь можно создать объект Page и делать $page->assign('var',$var);
Ну, дальше уже думаю сами - кому на языке оригинала, а кому на русском.
Также я писал о том, что данные от дизайна можно отделять при помощи XHTML + CSS (т.н. бестабличная верстка). Так вот, недавно обнаружил увлекательную статью, которую советую всем прочитать.