Введение
Данный документ описывает архитектуру загрузчика SFLoader, включая как фронтенд, так и бэкенд часть.
Вся система разделена на 2 большие области: клиентская (фронтенд) и серверная (бэкенд) логика.
Глава 1: Фронтенд
-
1.1 Автоматический поиск плагинов
-
1.2 Динамическая загрузка JS и CSS
-
1.3 Управление зависимостями плагинов
-
1.4 Кэширование и ускорение загрузки
-
1.5 Прелоадер (индикатор загрузки)
-
1.6 Серверное взаимодействие
-
1.7 Поддержка Smart-компонентов
-
1.8 Очистка и контроль кэша
-
1.9 Режим standAlone
Глава 2: Бэкенд
-
2.1 Loader.php — Главный контроллер загрузки
-
2.2 LoaderAsset.php — Менеджер ассетов
-
2.3 AssetManager.php — Генератор и сборщик ассетов
-
2.4 TemplateLoader.php — Работа с шаблонами Smart-компонентов
-
2.5 LoaderRequest.php — Адаптер HTTP-запросов
-
2.6 Constants.php — Глобальные пути и константы
-
2.7 LoaderFile.php — Поиск и фильтрация файлов
-
2.8 Composer и автозагрузка
Заключение
SFLoader
Система SFLoader решает комплексную задачу: интеллектуально, быстро и гибко подгружать компоненты, их стили, зависимости и шаблоны как на стороне клиента, так и сервера. Она объединяет:
- Фронтенд-инициализатор (
SFLoaderPlugin); - Прелоадер и клиентский кэш;
- Серверную сборку ассетов;
- Поддержку Smart-компонентов;
- Composer-совместимую архитектуру.
Ключевые особенности
- Автоматический поиск и загрузка компонентов, в том числе через DOM и RegExp;
- Гибкая работа с зависимостями, включая многоуровневые связи;
- Гибридный режим с подгрузкой с сервера и кэшированием на клиенте;
- Smart-компоненты с шаблонами, кешем и сборкой по
pageHash; - Gzip-оптимизация и хеш-сборка для кэширования на уровне CDN;
- Temp и cache режимы генерации ассетов;
- Возможность работы полностью offline в режиме
standAlone.
Сценарии применения
- Корпоративные платформы с динамическими интерфейсами;
- Редакторы, конструкторы (UI Builder, Course Creator);
- Модульные системы, CRM, e-commerce;
- Single Page Apps (SPA) с постепенной инициализацией.
Возможные направления развития
- Расширение
RuleLoaderдля ещё более гибкого поиска; - Добавление тестов и диагностики подключенных ассетов;
- Поддержка импортов ES6-модулей и
importmap; - Расширение Smart-системы — привязка к ролям, состоянию, шаблонам.
- Разделение сайта на разные компоненты (часто или всегда повторяющиеся).
- Поддержка gzip кеше smart-компонетво.
- Оптимизация смарт-компонентов - более гибкие настройки кеша
Итого
SFLoader — это архитектура, в которой скорость, гибкость и надёжность соединены в единую систему. Она подходит
для сложных проектов, где обычный Webpack или Laravel Mix уже не справляются с динамикой, а jQuery-стиль загрузки давно
устарел.
Этот загрузчик легко масштабируется, читаем, и уже сейчас имеет всё необходимое для высоконагруженных и динамичных
интерфейсов.