Приложение предназначено для установки на веб серверах, подключенных к сети интернет либо локальной сети. В качестве клиента используется преимущественно браузер. Для клиентской части используется JS.
xTables написан на языке PHP.
Для использования xTables, начиная с версии 1.7.0, необходим установленный интерпретатор PHP >= 7.0.
До версии 1.3.0 - 5.5, с 1.3.0 до 1.7.0 - 5.6.
Данный язык известен широкому кругу разработчиков.
Созданное на нем приложение не требовательно к аппаратным средствам и позволяет разворачивать достаточно
сложные системы на широком круге серверов от коммерческих виртуальных хостингов до собственных серверов.
Программная разработка веб интерфейсов осуществляется путем настройки xTables и создания на его базе
компонентов проекта, строящихся по принципу HMVC.
Все входы осуществляются через входной скрипт с использованием mod_rewrite.
xTables поддерживает пул одновременных подключений к разным базам данных, включая разные типы СУБД.
Для работы с БД используется PDO.
В основе приложения лежат главные компоненты:
Для функционирования xTables минимально необходимы:
/xtables
Каталог с файлами ядра xTables, который может быть расположен как в корне, так и в другом каталоге, директория
определяется автоматически в константе XTABLES_ROOT
.
/config
Каталог с отдельными возможности для настройки и кастомизации внешнего вида, который
располагается в каталоге, соответствующем пути константы XTABLES_BASE
.
/accessory
Каталог вспомогательный (в т.ч. нужен для хранения CACHE), который
располагается в каталоге, соответствующем пути константы XTABLES_BASE
xtables.js
Базовый JS файл, располагается в папке /js
в корне. Расположение может быть изменено в
файле /config/all-head.php
.
user.js
Файл, располагается в папке /js
в корне, с JS функциями, касающимися личного кабинета пользователя.
Расположение может быть изменено в файле /config/all-head.php
.
style.css
Файл css стилей расположен в корне в каталоге /css
и содержит желательные для функционирования xTables стили.
Расположение может быть изменено в файле /config/all-head.php
.Для установки PHP зависимостей используется composer.
Для функционирования xTables используются:
PHPmailer >6.0
Используется для отправки писем через smtp.
predis/predis
PHP клиент для сервера Redis (используется как один из типов хранения кеш и для других целей).
Bootstrap
CSS фреймворк
Font Awesome
Набор шрифтовых иконок
jQuery
JS фреймворк
jquery.datetimepicker.js
js календарь для ввода даты и времени
jsencrypt.js
Используется для шифрования данных на клиенте открытым ключом при передаче на сервер.
offcanvas.js
Bootstrap плагин для скрытия бокового меню. Используется в типовых лейаутах xTables.
jquery.autocomplete.js
плагин для поиска в БД и показа совпадающих вводимому значений
jquery.flot.js
Для построения различных диаграмм используется библиотека jquery Flot.
jquery.complexify.js
Используется для проверки степени сложности пароля.
timymce
Используется в расширениях/ext/news
для добавления и редактирования системных новостей и оповещений;/ext/manual
для добавления и редактирования инструкции приложения.Приложение разделено на две части:
XTABLES_BASE
..htaccess
либо может находиться вне веб каталога, то есть в папке,
не доступной из интернета при обращении по имени домена, позволяя создавать сплит-приложения даже в условиях
виртуальных коммерческих хостингов./config/config.php
),
вспомогательный каталог accessory
, папка с настройками /config
и расширениями /ext
.
Одно ядро xtables может управлять множеством приложений с разными доменными именами, находящихся на одном веб сервере.
Ядро xTables расположено в папке /xtables и не должно изменяться для сохранения возможности последующих обновлений.
Для адаптации и настройки часть данных вынесены из ядра в папку /config, которая адаптируется под проект.
Создание конкретного приложения осуществляется путем создания папки /app (или другой с названием проекта), в которой размещаются файлы проекта.
Components располагаются в отдельных папках, в которых также находятся папки model (классы с логикой) и obmanager (представления).
затрагивает функциональность компонента Cache (вводятся PSR6 совместимые классы) и может потребовать ручной очистки файлового (и иного используемого) кеша.
требует обязательной ручной корректировки ref. файлов в папке /config
.
полностью переработан функционал HeadConnector. JS, CSS файлы объединяются в комбинированные файлы.
Потребуется ручное редактирование нового файла настроек, который имеет имя /config/js-css-meta.php
.
Потребуется поправка с учетом ref файла формы входа в файле /config/login-body.html
.
авторизация перемещена из стандартных сессий в специальный механиз компонента Access
;
может потребоваться ручное создание каталога /accessory/access
;
Session::get('ses_id') -----> xTables::$access->ses('id')
Session::exists('ses_id') --> xTables::$access->exists('id')
Рекомендуется ручное обновление из архива патча и ручная очистка кеша.
Значительное обновление компонента Cache
.
Требуется ручное обновлением из архива патча.
Требуется ручная корректировка основного файла настроек /config/config.php
в части кеша.
В связи с ручным обновлением из патча и добавлением провайдера кеша DbEngine
,
требуется создание в БД таблиц cache
, acc_ses
для использования этого провайдера.
Таблицы будут созданы автоматически при следующем обновлении.
Минимальная версия интерпретатора - PHP7. Рекомендуется ручное обновление из архива патча.