Source for file DocumentController.class.php
Documentation is available at DocumentController.class.php
* Класс DocumentController.
* @copyright Energine 2006
* Отвечает за подготовку среды и запуск работы объекта Document.
private static $transformer;
* @var DocumentController
private static $instance;
* Возвращает единый для всей системы экземпляр класса DocumentController
* @return DocumentController
if (!isset (self::$instance)) {
self::$instance = new DocumentController();
* Подготавливает среду для работы, создаёт объект Document и передаёт
* ему управление. После отработки объекта Document, запускает трансформацию
* XML-документа страницы в выходной формат.
$request = Request::getInstance();
$language->setCurrent($language->getIDByAbbr($request->getLang(), true));
$document = new Document($request->getPath());
$document->loadComponents($documentDescription['templateID']);
unset ($request, $language, $documentDescription);
* Если в каком-либо компоненте происходит ошибка, не позволяющая ему
* продолжить работу, генерируется фиктивное исключение, с помощью
* которого прерывается работа компонента. В дальнейшем, при вызове
* метода Document::build, происходит обработка всех возникших ошибок.
$document->runComponents();
* Возвращает объект - XSLT трансформатор
if(!isset (self::$transformer)){
self::$transformer = new Transformer();
return self::$transformer;
* Трансформирует XML-документ страницы в выходной формат,
* и выводит результат клиенту.
* @param $document Document
$response = Response::getInstance();
$dom_document = $document->getResult();
if (!($dom_document instanceof DOMDocument)) {
$result = trim($dom_document->saveXML());
$response->setHeader('Content-Type', 'text/xml; charset=UTF-8');
$response->setHeader('Content-Type', 'text/html; charset=UTF-8', false);
$response->write($result);
|