От конфигурации без кода до полного
контроля над SQL

DST Platform спроектирована для расширения: ядро не модифицируется, а вся кастомизация выполняется через три уровня разработки — от конфигурации без кода до компонентов с полным контролем над SQL. Разработчику доступны открытый исходный код, техническая документация, REST API и полный набор инструментов прямо в административной панели. Проект можно вести силами ИТ-отдела заказчика, стороннего подрядчика или команды DST Global — без привязки к вендору.

О платформе Получить консультацию

Философия разработки: три уровня, один континуум

Что это даёт бизнесу: инвестиции в разработку соразмерны задаче — типовые функции не оплачиваются как кастомные, а рост проекта не требует переписывания системы.

DST Platform снимает классическое противоречие «простая CMS против сложного фреймворка»: функциональность создаётся ровно на том уровне сложности, который требуется задаче, и эволюционирует между уровнями по мере роста проекта.

Уровень 1. Конфигурация (без кода). Типы контента, формы и шаблоны отображения создаются через административный интерфейс. Созданная сущность сразу получает админку, фронтенд, SEO, кэширование, поиск и права доступа. Подходит для типовых сущностей — статей, новостей, каталогов, портфолио, базы знаний, объявлений.

Уровень 2. Расширение. Кастомизация существующей логики через подписку на события и наследование классов — моделей, контроллеров, виджетов. Ядро и чужие компоненты не правятся, но их поведение меняется под специфику заказчика.

Уровень 3. Разработка. Полноценные компоненты с нуля: собственная бизнес-логика, оптимизированные SQL-запросы, API-эндпоинты, нестандартные интерфейсы. Для сложной логики — платежи, глубокие интеграции, уникальные процессы.

Континуум, а не выбор один раз

Типовой сценарий: начать с генератора — получить работающий CRUD с админкой и фронтендом — и затем расширять кодом по мере необходимости: кастомный контроллер для нестандартных действий, расширение модели под сложную выборку, хуки для интеграции с другими компонентами. Между уровнями нет принципиальной границы: код уровня 2 и 3 может работать поверх сущности, созданной декларативно, и наоборот.
Задача Уровень Примеры из практики
Типовая CRUD-сущность с каталогом Декларативный База знаний, каталог оборудования, портфолио
Изменить поведение существующего компонента Хуки и наследование Своя логика оформления заказов, авторасчёт статусов
Связать компоненты без их правки Хуки Обработка заказов реагирует на события магазина
Новая бизнес-логика, платежи, API Императивный Модуль оплаты, обмен с ERP, нестандартный личный кабинет

На практике. Проект, начатый с декларативного каталога, наращивает кастомную логику через хуки и собственные контроллеры — без переписывания ядра и без миграции данных. Сущность, созданная без кода, может обрастать кодом уровней 2 и 3 по мере роста требований.

Инструментарий и материалы

Работа с платформой не требует закрытых знаний вендора — исходный код, документация и API открыты и поддерживаются в актуальном состоянии.

Репозиторий Получить консультацию
Аккордеон-слайдер контент

Разработка как система: инструменты, архитектура и правила

Каждый слой разработки описан и стандартизирован — от структуры компонента до соглашений об именовании. Код читается без приватных знаний о проекте, доработки не затрагивают ядро, а сложные выборки не прячутся за ORM.

Инструменты разработчика в административной панели

Что это даёт бизнесу: управление проектом ведётся из одной панели — без набора внешних утилит и отдельных договоров на инфраструктурные инструменты.

Административная панель закрывает полный цикл работы с проектом:

- Генератор компонентов — каркас нового компонента создаётся автоматически: структура файлов, стандартные контроллеры и модель.
- Встроенный FTP-клиент и файловый менеджер — работа с файлами проекта прямо из панели.
- Администрирование базы данных — просмотр и управление таблицами без сторонних клиентов.
- SSH/SFTP-доступ и почтовый сервер — управление окружением и исходящими письмами.
- Отладка, мониторинг, логирование — диагностика и наблюдение за состоянием системы в процессе разработки.

Работа с компонентами

Что это даёт бизнесу: система собирается из автономных блоков — модули разрабатываются, обновляются и заменяются независимо, не затрагивая остальное.

Компонент — это автономный функциональный модуль с чёткой структурой: публичная часть для пользователей, административная часть для управления, работа с данными, обработчики событий и виджеты. Компонентом может быть каталог товаров, корзина, личный кабинет, модуль платежей, форум — любая законченная функция.

Компоненты бывают разного масштаба: полноценные (с публичной и административной частями), служебные (только логика и API, без интерфейса) и обработчики событий (реагируют на действия других компонентов). Это позволяет подключать ровно тот объём функциональности, который нужен проекту, — без лишних сущностей и без доработки ядра.

Каждый компонент владеет своими данными и обращается к данным других через события, а не прямые вызовы: новый модуль подключается к системе, не изменяя код существующих. Такая архитектура упрощает поддержку и позволяет заменять или выделять отдельные модули в самостоятельные сервисы по мере роста проекта.

Практическое следствие: компонентная архитектура — не догма, а стратегия эволюции. При возникновении измеримой необходимости (разные паттерны нагрузки, нормативные требования, организационное разделение команд) любой модуль выделяется в самостоятельный сервис с минимальными изменениями.

Метрика. На единой компонентной базе работают 10 коробочных решений и сотни реализованных проектов на платформе — архитектура проверена на нагрузках от корпоративного портала до маркетплейса с миллионами товарных позиций.

Контроллеры

Что это даёт бизнесу: предсказуемая обработка запросов и прозрачная отладка — один HTTP-запрос соответствует одному контексту выполнения, а не цепочке сервисов.

Контроллер — центральный элемент компонента, точка входа для логики. Он принимает HTTP-запрос, валидирует входные данные, обращается к модели за данными, подготавливает их к отображению и возвращает ответ: HTML-страницу, JSON для API, редирект или иной формат.

Каждый компонент может иметь два контроллера: frontend — для публичной части сайта и backend — для административной панели. Такое разделение позволяет независимо развивать пользовательские и административные сценарии, не смешивая их в одном коде.

Ключевой принцип: контроллер не пишет прямые SQL-запросы — он обращается к методам модели. Это обеспечивает безопасность (защита от SQL-инъекций встроена в модель), централизацию логики данных и возможность замены СУБД без изменения контроллеров.

Работа с моделями

Что это даёт бизнесу: безопасная и предсказуемая работа с данными — защита от SQL-инъекций, централизация логики данных и полный контроль над производительностью запросов.

Модель инкапсулирует работу с данными компонента: создание, чтение, обновление, удаление, фильтрацию и валидацию. Все операции с базой данных проходят через модель, которая обеспечивает автоматическую фильтрацию входных данных и защиту от SQL-инъекций через подготовленные выражения. Контроллеры обращаются к методам модели — это централизует логику данных и позволяет менять СУБД без изменения контроллеров.

Модель — не ORM. Модель DST Platform — это не объект отдельной записи, а утилитарный класс, предоставляющий методы для работы с таблицами базы данных. ORM (Eloquent, Doctrine и подобные) не используется: прозрачность запросов и полный контроль над SQL сохраняются. Для сложных выборок доступны прямые оптимизированные запросы — это критично для высоконагруженных систем (см. «Технологии и архитектура», раздел 3.8).

Модели поддерживают наследование: дочерняя модель наследует все методы родительской и добавляет собственные. Это позволяет переиспользовать логику данных между компонентами без копирования кода — например, модель продавца (partner) наследует модель магазина (shop) и расширяет её специфичными методами.

Метрика. На каталоге из 5 млн товаров страница списка товаров выполняется за 3–8 запросов к базе данных и генерируется за 80–150 мс — против 30–120 запросов и 1 800–4 000 мс у типовых CMS/ORM-стеков (Magento 2, WooCommerce).

Работа с шаблонами

Что это даёт бизнесу: дизайн меняется без затрагивания логики, а кастомизация темы не конфликтует с обновлениями платформы.

Шаблоны отвечают за представление — HTML-разметку и визуальное оформление страниц. Они отделены от бизнес-логики: контроллеры и модели готовят данные, шаблоны их отображают. Такое разделение позволяет менять дизайн, не затрагивая функциональность, и наоборот — дорабатывать логику, не переписывая вёрстку.

Ключевой механизм — наследование тем. Дочерняя тема переопределяет только те файлы, которые действительно нужно изменить (шаблоны, стили, скрипты), а остальные наследует от базовой. Это даёт два практических следствия: кастомизация не копирует всю тему целиком и не разрастается; обновления базовой темы не затрагивают внесённые изменения. Отдельные страницы переопределяются и по URL, и по ID категории — посадочные страницы создаются без разработки.

Шаблоны содержат только HTML-разметку и минимальный PHP (условия, циклы, форматирование) — логика данных строго разделена с контроллерами и моделями. Это снижает риск ошибок при изменении дизайна и упрощает передачу проекта между командами.

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

Работа с CSS/JS (assets)

Что это даёт бизнесу: ресурсы загружаются аккуратно, без ручной сборки и сторонних сборщиков — меньше HTTP-запросов, предсказуемое поведение при обновлениях.

Управление ресурсами централизовано: подключение CSS и JS выполняется через единый механизм с учётом наследования темы. Стили и скрипты компонентов подключаются автоматически — система находит нужный файл с учётом наследования, и разработчику не нужно прописывать пути вручную.

Встроенные настройки объединения и минификации CSS/JS сокращают количество HTTP-запросов без сторонних сборщиков. Языковые константы передаются из PHP в JS-переменные штатным механизмом — интерфейс остаётся локализованным без дублирования переводов.
На практике. Наследование тем учитывается и в подключении ресурсов: стили и скрипты компонента система находит сначала в дочерней теме, затем в базовой — переопределение ресурса не требует правки кода компонента.

SEO-методы контроллера

Что это даёт бизнесу: SEO динамических страниц управляется из одного места — без ручной настройки для каждой карточки товара и категории.

Мета-данные страниц задаются в контроллерах: заголовок страницы, keywords, description, canonical, Open Graph и произвольные теги. Это позволяет управлять SEO динамических страниц — карточек товаров, категорий, городов — из единого места, а не вручную для каждой страницы.

Шаблоны мета-тегов настраиваются без кода: для каждого типа страниц задаются правила формирования заголовков и описаний, которые автоматически применяются ко всем сущностям этого типа.

На практике. Шаблон мета-тега для карточки товара задаётся один раз и автоматически применяется ко всем страницам типа: новые товары попадают в выдачу с корректными метаданными сразу после публикации.

Расширение через хуки

Что это даёт бизнесу: функциональность расширяется без изменения существующего кода — новые модули подключаются к работе системы, не нарушая её целостности.

Хуки позволяют внедрять логику в жизненный цикл других компонентов без их прямой правки. Когда компонент выполняет значимое действие — сохраняет данные, обновляет статус, публикует товар, — он инициирует событие. Другие компоненты могут подписаться на это событие и выполнить свою логику: валидацию, обогащение данных, побочные действия.

Имя обработчика соответствует имени события, а события инициируются компонентами платформы на ключевых этапах жизненного цикла данных — подписка доступна из любого компонента. Хуки возвращают изменённые данные в исходный поток выполнения: поведение системы меняется без правки ядра или чужого компонента.

Подробнее о системе событий и её архитектурной роли — в разделе 3.7 «Технологии и архитектура».

На практике. При создании заказа система автоматически уведомляет покупателя и продавца, обновляет статус, запускает документооборот и фиксирует событие в аналитике — без правки кода заказов и без изменений в ядре.

Создание собственных полей

Что это даёт бизнесу: нестандартные данные бизнеса — цвет, геокоординаты, специальные форматы — вводятся штатными механизмами, без ожидания вендора и обхода валидации.

Новые типы полей создаются добавлением класса в системную директорию полей. Поля используются в формах и типах контента и наследуют поведение системы: валидацию, кэширование, отображение, права доступа. Это позволяет вводить нестандартные типы данных и использовать их наравне со встроенными полями.

Автозагрузка и соглашения именования

Что это даёт бизнесу: структура кода легко читается — новый разработчик или подрядчик быстро ориентируется в проекте, а сторонние библиотеки подключаются без конфликтов с ядром.

Платформа использует собственную систему автозагрузки, основанную на соглашениях об именовании: имя класса однозначно определяет расположение файла (например, класс modelUsers находится в users/model.php). Кодовую базу легко навигировать без «приватных знаний» о проекте.

Дополнительно поддерживается загрузка классов по пространствам имён (namespaces): сторонние библиотеки подключаются без конфликтов с классами ядра и компонентов — современные практики PHP-разработки и внешние зависимости используются без риска для системы.

Рекомендации по разработке

Что это даёт бизнесу: проект сохраняет поддержку и безопасность на долгой дистанции — обновления не конфликтуют с доработками, а данные защищены на уровне архитектуры.

Чек-лист, обеспечивающий поддержку и безопасность проекта на долгой дистанции:

1. Не изменять ядро. Кастомизация — через хуки, наследование классов и шаблоны: правка ядра осложнит обновления.

2. Работа с БД — только через модель или подготовленные запросы. Защита от SQL-инъекций встроена в стандартные механизмы.

3. Контроллер не пишет SQL. Прямые запросы должны находиться в модели; контроллер обращается к её методам. Это обеспечивает централизацию логики данных.

4. Входные данные от пользователя — фильтровать. Стандартные механизмы платформы обеспечивают фильтрацию и валидацию входящих данных.

5. Валидация форм — декларативно. Правила задаются для каждого поля: обязательность, формат, диапазон; при нестандартных данных создаётся собственный тип поля.

6. Кэширование — активно. Тяжёлые выборки кэшируются с продуманным временем жизни по типу данных.

7. Производительность — настройки по умолчанию. OpCache включён в продакшене; объединение и минификация CSS/JS — через встроенные настройки, без сторонних сборщиков.

8. Отладка — только на staging. Режим отладки включается на тестовом окружении и не влияет на продакшен.

9. Границы компонентов — через события. Взаимодействие между компонентами выполняется через события, а не прямые вызовы чужих моделей и таблиц.

На практике. Проект, ведённый по этому чек-листу, обновляется вместе с платформой: доработки живут в хуках и наследовании, ядро остаётся неизменным, а очередная версия ставится без аудита всей кодовой базы.

Интеграции

Что это даёт бизнесу: платформа встраивается в существующий ИТ-ландшафт заказчика, а не требует его перестройки.

- REST API — для мобильных приложений и внешних систем.
- Готовые модули: платёжные шлюзы (ЮKassa, Robokassa, Т-Банк), доставка (CDEK и другие), картография, верификация, рассылки, аналитика.
- Обмен с 1С, CRM, ERP — типовой обмен реализуется штатными механизмами; кастомизированные конфигурации подключаются после анализа структуры учёта заказчика: согласование схемы обмена, настройка или разработка модуля.
- Нестандартные системы — модули интеграции разрабатываются силами DST Global или ИТ-команды заказчика: исходный код открыт и документирован.

Кто разрабатывает: три сценария

Проект не привязан к одному исполнителю — заказчик выбирает модель работы и может сменить команду без потери знаний о системе.

ИТ-отдел заказчика

Полный доступ к коду, документация и инструменты в админке позволяют вести разработку собственными силами — доработки не требуют обращения к вендору.

Сторонние подрядчики

Открытый код снимает зависимость от одного исполнителя: при смене команды проект продолжается без потери знаний о системе — структура кода документирована.

DST Global

Специалисты компании выполняют доработки и развитие с отчётностью и контролем — см. порядок работ ниже.

Порядок индивидуальной доработки

Прозрачный процесс с фиксированной отчётностью — заказчик видит, что и когда выполняется, и получает подтверждение по каждой задаче.

Процесс взаимодействия с DST Global формализован и прозрачен на каждом этапе:

- Договорные основы: лицензионный договор, сдача работ и передача лицензионных прав, договор на дополнительные работы.
- Два формата задач: задачи произвольной формы для незначительных работ или разработка по техническому заданию — для комплексных проектов. Тарификация — по таймеру или фиксированная стоимость при наличии полного ТЗ.
- Контроль выполнения: отчёты о выполненных задачах, видеозаписи процесса разработки, ведение коммуникации и управления проектом в единой CRM-системе DST Global.
- Персональный менеджер сопровождает проект на протяжении срока действия лицензии.
Подробнее в разделе «Разработка»

Клиенты и партнёры

Мы измеряем наш успех, успехами наших клиентов и партнёров. Наше стремление - это построение долгосрочных взаимоотношений, совместный рост и развитие.

Закажите демонстрацию платформы

Посмотрите платформу в действии. Специалисты DST Global продемонстрируют возможности под вашу бизнес-модель и ответят на вопросы.

Все продукты Получить консультацию