====== Структура инсталляционного комплекта LSS проекта ====== [[start:|lss]] ===== Введение ===== В данном разделе приводится описание структуры инсталляционного комплекта **Платформы LSS**. ===== Файловая система ===== ==== папка sql ==== Содержит скрипты для первоначальной инициализации базы данных проекта. * папка sql/mssql - скрипты для первоначальной инициализации базы данных для **MS-SQL** сервера * папка sql/mysql - скрипты для первоначальной инициализации базы данных для **MySql** или **MarioDB** сервера * папка sql/pgsql - скрипты для первоначальной инициализации базы данных для **PostgreSql** сервера Базу данных надо вручную создать, затем прогнать скрипты для создания и структуры и первоначального заполнения содержимого таблиц. После этого папка скриптов становится ненужной для дальнейшей работы проекта. ==== папка export-import ==== Эта папка и ее поддиректории должна быть открыта для чтения и записи. В **шаблоне LSS проекта** реализован функционал загрузки и выгрузки содержимого таблиц базы данных в виде XML файлов и SQL скриптов. Выгрузка и загрузка настроена на работу с этой папкой. ==== папка php ==== Содержит php скрипты **LSS сервера** проекта. web-сервер Apache настроен так, что эта папка не видна по http и следовательно файлы в ней не могут быть вызваны по http напрямую, что повышает безопасность системы. === подпапка php/config === Содержит конфигурационные файлы проекта. * **config/config-lss.php** - инициализация настроек по умолчанию. Общая для всех LSS проектов. Этот файл не следует модифицировать. * **config/config-application.php** - инициализация настроек, специфичных для проекта * **config/config-place.php** - инициализация настроек, специфичных для площадки развертывания проекта. Обычно тут задаются параметры соединения с базой данных, и пути размещения папок на площадке * **config/.config.php** - обеспечивает подключение конфигурационных файлов в нужной последовательности * **appmenu.xml** - xml описание главного меню системы === подпапка php/datasources === Содержит контроллеры источников данных (класс **DataSource**) проекта. В простейшем случае каждый контроллер соответствует своей таблице базы данных. * **php/datasources/autogen** - содержит автоматически сгенеренные контроллеры источников данных. В комплекте шаблона LSS проекта содержится утилита, автоматически формирующая для каждой таблицы базы данных PHP скрипт контроллера источника данных. Имя скрипта соответствует имени таблицы. Скрипт формируется по описателям таблиц базы данных. Для корректной работы папка должна быть открыта на чтение и запись. * **php/datasources/modify** - содержит модификаторы (потомки класса **DataSourceModify**) позволяющие вмешаться в процесс автоматической генерации контроллеров источников данных (папка **autogen**) с целью внесения изменений в программный код контроллера во время генерации. Имя модификатора соответствует имени таблицы базы данных. * **php/datasources** - тут можно размещать контроллеры - потомки автоматически сгенеренных контроллеров **DataSource**. И, соответственно, гибко расширять их функционал. === подпапка php/forms === Содержит контроллеры экранных форм проекта, и контроллеры источников данных, специфичных для конкретных экранных форм. Обычно контроллер экранной формы состоит из файла XML описателя экранной формы (согласно LSS протоколу) и php скрипта контроллера, потомка класса **FormController**. Имя файла соответствует имени экранной формы. === подпапка php/extlib === Содержит сторонние php библиотеки, необходимые для работы проекта. В комплект шаблона мы для примера включили стороннюю библиотеку PHPExcel. Эта библиотека удобна для работы с файлами в формате Excel. === подпапка php/lss-server === Эта системная папка LSS сервера. Ее содержимое идентично для всех проектов, выполненных по технологии LSS. Вносить изменения в содержимое размещенных тут файлов не следует. * По этой ссылке можно ознакомиться с подробной, автоматически сгенеренной документацией, описывающей содержимое этой папки: [[https://lss.m-cti.ru/storage/doxygen/html]] Кратко рассмотрим основное содержимое этой системной папки: * **lss-server/datasources** - содержит контроллеры системных источников данных, общих для всех LSS проектов * **lss-server/forms** - содержит контроллеры системных экранных форм, общих для всех LSS проектов * **lss-server/lib** - содержит системные библиотеки * **lib-base.php** - библиотека функций - базовый набор функций * **lib-html.php** - библиотека функций - расширение базового набора под формирование HTML страниц * **lib-lssserver** - библиотека функций - расширение базового набора под LSS протокол * **dsconnector.php** - шлюз доступа к данным * **datasource-controller.php** - описание контроллера источника данных * **form-controller** - описание контроллера экранной формы * **lib-report.php** - генератор отчетов в виде таблиц с подитогами * **dsautogenerator.php** - автоматический генератор источников данных DataSource по описателям * **ext-controller.php** - описание контроллеров сервисов, утилит и отчетов * **perm-controller.php** - описание контроллера системы прав проекта, класса PermController * **lss-server/reports** - содержит контроллеры системных отчетов, общих для всех LSS проектов * **lss-server/utils** - содержит контроллеры системных утилит, общих для всех LSS проектов В корне папки **lss-server** лежат PHP скрипты точек входа **LSS сервера**. Так как непосредственное обращение к этим файлам по http заблокировано, то в открытой по http папке **www** размещены скрипты, обеспечивающие вызов этих точек входа. * **include-index.php** - точка входа инициализации и развертывания LSS визуализатора * **include-lss.php** - точка входа обработки запросов по LSS протоколу * **include-report.php** - точка входа для вызова отчетов * **include-services.php** - точка входа для вызова сервисов * **include-utils.php** - точка входа для вызова утилит === подпапки php/reports, php/services, php/utils === Содержат контроллеры отчетов, сервисов и утилит соответственно. === контроллер прав, файл php/perm.php === В этом файле размещается наследник класса **PermController**, реализующий систему прав доступа, специфическую для проекта. ==== папка www ==== web-сервер Apache должен быть настроен для работы с этой папкой по http. В корне лежат следующие файлы: * **.htaccess** - настроечный файл Apache * **robots.txt** - запрет индексации проекта поисковыми системами * **favicon.png** - иконка проекта * **index.php** - PHP скрипт, обеспечивает вызов системной точки входа **include-index.php** из папки **php/lss-server**. Обеспечивает инициализацию и развертывание LSS визуализатора. * **lss.php** - PHP скрипт, обеспечивает вызов системной точки входа **include-lss.php** из папки **php/lss-server**. Обеспечивает обработку запросов по LSS протоколу. * **reports.php** - PHP скрипт, обеспечивает вызов системной точки входа **include-reports.php** из папки **php/lss-server**. Обеспечивает выполнение отчетов. * **services.php** - PHP скрипт, обеспечивает вызов системной точки входа **include-services.php** из папки **php/lss-server**. Обеспечивает выполнение сервисов. * **utils.php** - PHP скрипт, обеспечивает вызов системной точки входа **include-utils.php** из папки **php/lss-server**. Обеспечивает выполнение утилит. В папке resource лежат статичные файлы, доступные по http протоколу: * **lss-viewer** - тут размещены файлы, необходимые для работы LSS визуализатора * **bootstrap-3.3.6** - библиотека bootstrap, используется в отчетах * **icons** - дополнительно подключаемые к проекту иконки * **logoscreen** - папка размещения экрана фонового слоя для диалога логина * **reports** - css, javascript и иконки, необходимые для работы отчетов * **utils** - css, javascript и иконки, необходимые для работы утилит ===== Демонстрационные примеры и ссылки ===== Демонстрационные примеры доступны в режиме "**только чтение**". Для входа используйте логин **root**, пароль **1**. * демонстрация работы **шаблона LSS проекта** у нас на сайте: [[https://lss.m-cti.ru/storage/example/lss-project-template]]