Необходимо реализовать Drupal-модуль factory_bridge, который выполняет роль моста между внешней SQLite базой данных и базой данных Drupal.
Модуль должен:
— читать данные об изделии из SQLite;
— выполнять расчёты на стороне PHP;
— сохранять агрегированные данные в БД Drupal;
— выводить таблицу операций изделия.
Задание является частью будущего переноса всей системы на Drupal. Важно не только получить рабочий результат, но и показать корректную архитектуру решения.
Условия
CMS: Drupal 10 или 11
Источник данных: внешняя SQLite БД workshop_bot.db
Дизайн и верстка не важны
Twig используется только для отображения данных
Вся бизнес-логика и расчёты выполняются в PHP
Архитектура
Модуль должен получать данные из SQLite через Drupal Database API с централизованным подключением (не в контроллерах).
Запрещено:
— использовать new PDO(), sqlite_open() в бизнес-логике;
— выполнять SQL-запросы в Twig;
— реализовывать бизнес-логику на уровне шаблонов.
Данные
В рамках тестового задания использ...
Видеть полную информацию и оставлять заявки могут только авторизованные пользователи.
Необходимо разработать модуль для Drupal, который будет служить мостом между внешней базой данных SQLite и базой данных Drupal. Модуль должен извлекать данные об изделиях из SQLite, выполнять необходимые расчёты на стороне PHP, сохранять агрегированные данные в базе данных Drupal и отображать таблицу операций изделия. Важно обеспечить правильную архитектуру решения, следуя заданным ограничениям и условиям, таким как использование Drupal Database API для подключения к SQLite и выполнение всех бизнес-логики в PHP.
Для выполнения этого задания потребуются навыки работы с Drupal (в частности, создание модулей), знание PHP для выполнения бизнес-логики и расчётов, опыт работы с базами данных, включая SQLite и Drupal Database API, а также понимание архитектурных принципов для интеграции различных систем.
Внимательно изучил задание по интеграции Drupal с внешней SQLite БД. Понимаю, что ключевая задача — не просто перенести данные, а создать архитектурно правильный модуль factory_bridge с разделением ответственности.
Мой подход к реализации:
1. Централизованное подключение: создам сервис для работы с SQLite через Drupal Database API (без new PDO в контроллерах)
2. Чистая архитектура: вся бизнес-логика (расчеты НЧ План, Ч Факт, Дельта) будет в отдельных сервисах, Twig — только для отображения
3. Сохранение данных: реализую через Custom Entity (как указано в ТЗ) для корректной интеграции с экосистемой Drupal
4. Код-стандарты: соблюдение Drupal Coding Standards и безопасность запросов
Готов приступить к выполнению сразу после обсуждения деталей. Для вашего удобства, могу разбить работу на этапы с промежуточными результатами.
Основная специализация: Веб-разработка и Продуктовый дизайн
Модуль factory_bridge нужен как переходный мост между существующей производственной SQLite-БД и Drupal в процессе поэтапного переноса системы.
Он получает из SQLite данные по изделиям и операциям (order_items, assigned_tasks, work_sessions), а дальше на стороне PHP выполняет расчёты:
плановые нормо-часы, фактическое время (с учётом активных сессий с end_time = NULL) и дельту план/факт.
В Drupal сохраняются уже агрегированные показатели, а в Twig передаются только подготовленные данные для вывода таблицы операций изделия.
По архитектуре:
подключение к SQLite — централизованно через Drupal Database API, не в контроллерах;
вся бизнес-логика и расчёты — в PHP-сервисах;
Twig используется только для отображения;
работа строго в рамках указанных таблиц, без лишних зависимостей.
Чтобы уложиться в разумный бюджет без нарушения ТЗ, предлагаю:
хранить агрегаты в Node-сущности (вариант допустим условиями);
пересчитывать и обновлять данные при обращении к изделию, без кронов и фоновой синхронизации;
простую таблицу без UI-полировки (дизайн не критичен по заданию).
Оценка:
25 000–28 000 р, срок 4–5 рабочих дней.
Архитектура остаётся расширяемой — при необходимости позже можно вынести данные в Custom Entity или добавить автоматическую синхронизацию.
Для старта уточню:
агрегаты нужно пересчитывать при каждом открытии изделия или достаточно обновлять при изменениях?
изделие однозначно определяется по order_item_internal_id?
Оставлять заявки могут только авторизованные пользователи.
Тестовое: Интеграция Drupal с внешней SQLite БД
Реклама
Тестовое: Интеграция Drupal с внешней SQLite БД
Необходимо реализовать Drupal-модуль factory_bridge, который выполняет роль моста между внешней SQLite базой данных и базой данных Drupal.
Модуль должен:
— читать данные об изделии из SQLite;
— выполнять расчёты на стороне PHP;
— сохранять агрегированные данные в БД Drupal;
— выводить таблицу операций изделия.
Задание является частью будущего переноса всей системы на Drupal. Важно не только получить рабочий результат, но и показать корректную архитектуру решения.
Условия
CMS: Drupal 10 или 11
Источник данных: внешняя SQLite БД workshop_bot.db
Дизайн и верстка не важны
Twig используется только для отображения данных
Вся бизнес-логика и расчёты выполняются в PHP
Архитектура
Модуль должен получать данные из SQLite через Drupal Database API с централизованным подключением (не в контроллерах).
Запрещено:
— использовать new PDO(), sqlite_open() в бизнес-логике;
— выполнять SQL-запросы в Twig;
— реализовывать бизнес-логику на уровне шаблонов.
Данные
В рамках тестового задания использ...