УКС-платформа
Системные объекты платформы (../srv/)
Системный раздел платформы, он же системный сайт, здесь располагаются все системные объекты, обеспечивающие работоспособность платформы и сайтов.
Порядок работы платформы
После того как веб-сервер получит запрос к той или иной странице сайта, он запускает специальный индекс-файл (например: index.php). Этот файл анализирует запрос, и если он достоверный, то происходит запрос к базе данных и запуск функций, которые формируют страницу для браузера. Во время работы функций, определяется объект соответствующий запросу и его свойства. Свойства объекта определяют какой будет выбран шаблон оформления страницы и модули, которые сформируют нужные данные для страницы. В случае когда в запросе есть специальные команды, тогда сначала выполняются они и уже далее идёт обычное формирование страницы. Если по запрашиваемому адресу находится временная страница (например: index.html), то она сразу отдаётся браузеру, без какой-либо дополнительной обработки.
Подробная схема работы УКС
Предположим браузер запросил страницу https://swtmedia.ru/docn/. Также предположим что в настройках веб-сервера указано, что в случае наличия в запрашиваемом разделе index.html отдавать его, иначе если есть отдать index.php, когда нет ни того ни другого запускать корневой index.php.
1. Веб-сервер определяет какой файл отдать
- 1.1. Если на сервере есть временный файл /www/docn/index.html
- Данный файл сразу отдаётся браузеру.
- 1.2. Если на сервере есть временный файл /www/docn/index.php
- Временный файл index.php состоит из двух частей, в первой части функции для проверки актуальности файла, во второй части уже сформированная страница (index.html). Когда временный файл index.php актуален отдаётся его вторая часть, иначе он удаляется и запускается корневой index.php.
- 1.3. Если на сервере нет временных файлов /www/docn/index.html и /www/docn/index.php
- Открывается корневой файл /www/index.php, который сформирует страницу.
2. Запуск корневого index.php
3. Проверка запроса (REQUEST_URI)
- 3.1. Если в запросе есть «?»
- Устанавливается флаг не включать формирование временной страницы.
- 3.2. Если в запросе нет «?»
- Проверяется есть ли на конце «/», если нет то перезагрузить страницу с «/». Например, если бы на корневой index.php пришёл бы запрос https://swtmedia.ru/docn, то произошла бы перезагрузка страницы с добавлением «/» https://swtmedia.ru/docn/. Данный механизм сделан для того чтобы избежать дублирования страниц https://swtmedia.ru/docn и https://swtmedia.ru/docn/
4. Загружаются настройки сайта
5. Устанавливаются константы
6. Загружаются основные функции
7. Запуск функции GEP
- 7.1. Проверка доступа к сайту
- Если доступа к сайту нет, формируется ошибка 404, иначе запускается функция ULP
8. Запуск функции ULP
- 8.1. Проверяет GET-запрос и выбирает из него нужные параметры (s0,p0,p1,p2,p3,p4)
- Если есть параметр S0, то запускается функция SES (проверка сессии).
- Если есть параметр P0, то запускается функция BAR (определение объекта в базе соответствующего запросу).
9. Запуск функции SES
- 9.1. Если сессия действительна
- Страница будет формироваться для пользователя с учётом его уровня доступа.
- 9.2. Если сессия не действительна
- Страница будет формироваться как для гостя.
10. Запуск функции BAR
- 10.1. Поиск объекта в файловой базе. Например для запроса https://swtmedia.ru/docn/ будет файл /ykc/swtmedia/docn/0.fsz
- Если такой файл существует и доступен, то будет запущена функция GP4.
- Если файла нет, а в настройках сайта есть метка YX, то будет загружена дополнительная библиотека функций (FCHX) для работы с данными в формате УХ4 и запущена функция BR4 для поиска объекта в базе БДУХ.
- Если объекта нигде нет, то будет сформирована ошибка 404.
11. Запуск функции BR4
- 11.1. Поиск объекта в базе БДУХ. Например для запроса https://swtmedia.ru/docn/ будет объект /docn/
- Если такой объект существует и доступен, то будет запущена функция GP4.
- Если объекта нет, то будет сформирована ошибка 404.
12. Запуск функции GP4
- 12.1. Формирование заголовков для браузера.
- Если есть POST-данные и в GET есть параметр P1, то будет запущенна соответствующая команда.
- 12.2. Выбор шаблона оформления
- Если в GET есть параметр P2, то будет выбран соответствующий шаблон, иначе загрузится шаблон из настроек сайта.
- Если шаблон доступен, то будет сформирована страница и передана браузеру. Если в настройках сайта включен ВХран, то согласно его параметрам будет создан временный файл.
- Если шаблон недоступен, то будет сформирована ошибка 404.
13. Создание временного файла
- 13.1. Если включен флаг создания временной страницы и она ранее не была создана, тогда будет создана временная страница по адресу /www/docn/index.html или /www/docn/index.php (в зависимости от настроек ВХран), что соответствует запросу https://swtmedia.ru/docn/.
14. Вывод ошибки 404
- 14.1. Если в ходе формирования страницы произошли ошибки, включая отсутствие доступа, будет сформирована страница с 404 заголовком.