itprog
В XSLT ничего сложного (типа класс сделать). Вот, написано за 10 минут (наизусть DOM не знаю, сверяюсь с документацией)
Ещё есть class Model, но он только и делает, что преобразует В DOMDocument своё содержимое.
PHP:
<?php
/**
* Возвожно, заведение конфигурационного файла для
* шаблона (например, для автоматического включения
* блоков в данные
*
* TODO Всё тут сделать
*/
class View
{
private $xslt;
private $source;
public function __construct($view_name)
{
$this->xslt = new XSLTProcessor();
$this->addTemplate($view_name);
}
public function addTemplate($name)
{
$doc = new DOMDocument;
$tpl_file = VIEW_DIR."/$name.xsl";
if(!file_exists($tpl_file))
throw new ViewTemplateDoesNotExists();
$doc->load($tpl_file);
$this->xslt->importStylesheet($doc);
}
public function setModel(Model $model)
{
$this->source = $model->getDom();
}
public function render()
{
$res = $this->xslt->transformToDoc($this->source);
return $res->saveXML();
}
}
class ViewTemplateDoesNotExists extends DeveloperException
{
}
?>
-~{}~ 09.10.06 13:12:
По поводу Битрикса. Такие выводы они могли получить из-за:
а) Архитектура битрикса гавно, отсутствие правильной реализации MVC.
б) Полное непонимание того, зачем нужен XSLT.
Вот это вообще бред:
"XSLT не дорос до полноценного языка программирования..."
Кто вообще сказал, что из XSLT пытались сделать язык программирования? CSS язык программирования??? ТУПИЗМ! Нахрена делать язык программирования, тогда как мы от этого мы и пытаемся избавиться?
"...на нем можно делать только простые условные представления и очень ограниченную логику."
Мысль не раскрыта, но думаю, им не хватает знаний в предметной области.
"Полная смена дизайна требует полного переписывания всех шаблонов, что в расчете на сложность создания XSLT получается еще дороже." А в ином случае это типа не требуется? Во-вторых, если все страницы однотипны (корпоративные порталы, например), то можно воспользоваться двухэтапной трансформацией, и нужно будет переписать только основной шаблон (если модель не меняется).
"базы преобразуются в XML (а это текстовый файл большого размера в силу своей архитектуры)"
Муахаха, фермеры, мля, а DOM на что? Нормальные люди всё это в файл не сохраняют (и потом загружают; так сказать, дурная голова ногам покоя не даёт).
"Специалистов по XSLT очень мало."
нормальный верстальщик должен знать XSLT, а не сотни вариантов синтаксиса шаблонизаторов.