Menu

Home

Alexey V. Vasilyev

Введение

Платформа TEMIS предназначена для автоматизации рутинных действий по приему и установке значений полей в формах ввода. Но при этом нет и жестких ограничений на формат входных данных и структуру Вашего приложения. Таким образом платформа TEMIS не является полноценным фреймворком для PHP, но также не является простым шаблонизатором.

Чем TEMIS не является?

  • фреймвороком,
    • TEMIS не имеет оберток вокруг PHP API,
    • TEMIS не имеет кода дублирующего базовую функциональность
    • TEMIS не имеет MVC, и не регламентирует Вам структуру приложения
  • шаблонизатором
    • TEMIS использует стандартный XSLT преобразователь для формирования выходного HTML
    • TEMIS имеет сериализуемый в XML контроллер страницы вместо переменных
    • TEMIS не позволяет исполнять PHP код в шаблонах страницы

А чем же TEMIS является?

  • библиотекой для автоматизации взаимодействия страница-сервер
  • набором дополнительных отчуждаемых компонент для решения конкретных задач
  • легковесной инфраструктура для обеспечения быстрой разработки приложений на PHP.

А что означает название TEMIS ?

Первоначально это была библиотека решающая те задачи, которые указанны во введении, и называлась она '''TemIs''' как сокращение от "'''Tem'''plate '''Is'''", то есть "Шаблон это...". Но постепенно вокруг шаблонизатора, из за особенностей работы и ни с чем стандартным не совместимости, образовалась большая инфраструктура поддержки приложения. Поэтому название от сокращение перешло в самоназвание среды '''Temis''', как "ПЛИМ" который прыгает и скачет и ничего не значит Ирины Токмаковой.

Компоненты, библиотеки..

А что еще?

Учитывая особенности вывода данных под управлением TEMIS был разработан слой взаимодействия с базой данных Temis.ADO обеспечивающий загрузку объектов содержащих только запрошенные данные без метаинформации. А также дополнительные модули для решения типовых задач Temis.Toolbox.

Включает в себя несколько подсистем:

обертки работы с XML, и XML сериализации<
Модуль TEMIS Описание Принадлежность
Temis.BIOS базовые обертки работы с источниками запроса необходим
Temis.XML необходим
Temis.UIбиблиотека визуальных элементов ядро системы
Temis.Core диспетчер событий и исполнитель страниц ядро системы
Temis.Pixel компилятор XSLT в PHP код (PXSL), убыcтряет преобразование в 2-4 раза дополнительный,
подготовка страницы
Temis.Xitec XSLT Widget Template Compiler, упрощает сопровождение шаблонов Temis SDK
Temis.SQL Abtract data objects - объектно ориентированная обвязка для работы с базами SQL дополнительный
Temis.Toolbox дополнтельные полезные обьекты типа диагностики и логгера дополнительный
Temis.RPC Удаленный вызов процедур, позволяет общаться через программный интерфейс мимо броузера. дополнительный
Temis.App Каркас типового приложения дополнительный

Путь страницы от клика до броузера

  1. Пользователь кликает на ссылку или кнопку на форме и запрос отсылается на сервер
  2. Контроллер приложения
    1. Определяет какую страницу запросил пользователь
    2. Вытаскивает страницу из диспетчера страниц Temis.Core
    3. Запускает страницу на выполнение под управлением Temis.Core
  3. диспетчер Temis.Core :
    1. выполняет загрузку в страницу всех данных из запроса и исполненение действий по загрузке страницы
    2. определяет какое действие запросил пользователь
    3. вызывает запрошеный метод
    4. преобразует страницу в вид пригодный для трансформации
    5. выполняет трансформацию с использованием указанного шаблона
    6. выводит результат в выходной поток
  4. страница отображается в броузере

Преобразование шаблонов

Система использует двойное пребразование пользовательсокго шаблона для обеспечения простоты кодирования шаблона и встраивания кода TEMIS в результирующий шаблон.

Так как HTML FORMS элементы инфраструктуры TEMIS также описан в виде шаблонов то полный цикл преобразования будет следующим:

{| class="standard" ! исходные данные || назначение || преобразователь || результат пребразования

-
Widget XSLT
мета шаблон обслуживающий 2 источника:
  • UI элемент и
  • XML который обрабатывается пользовательским шаблоном
Temis.Xitec
Widget.XSLT готовый для использования в пользовательском шаблоне
-
Пользовательский шаблон,<br/>содержащий ui: элементы
пользовательский XSLT Temis.Core
все UI элементы заменены соответвующим XSLT кодом<br/>

Compiled XSLT(CXSL), XSLT готовый для работы с кодом страницы

-
данные страницы
исходные данные подготовленые для преобразования

Compiled XSLT через

HTML страница
}

Производительность

На преобразовании шаблонов есть изрядное проседание производительности, но XSLT позволяет жестко отделить исполняемый код страницы от шаблона. Одним из решения повышения производительности это замена конечного XSLT преобразователя на сам PHP в качестве преобразователя, но это сразу даст возможности смешивания кода и представления что скажется на качестве сопровождения но может повысить скорость работы готового шаблона.

Для того чтобы не допустить смешения кода, приедтся наращивать возможности шаблона, и приближать его к XSLT, что приведет к недопонимаю различий между XSLT и Temis.TPL . Проект Temis.Pixel показывает что полное дублирование функциональности XSLT на PHP приводит к потере производительности.

TemisNav


MongoDB Logo MongoDB