Настройка Builder Plugin для October CMS под продакшен

Создание плагинов для October CMS через Builder часто упирается в ограничения генератора: сложные связи и оптимизация запросов требуют ручной доработки. Мы настраиваем Builder Plugin и доводим сгенерированный код до production-ready состояния, устраняя узкие места и добавляя недостающую логику. Наша команда реализует проект под ключ — от аудита до поддержки, обеспечивая надёжное решение, которое масштабируется вместе с бизнесом.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Настройка Builder Plugin для October CMS под продакшен
Простой
от 1 дня до 3 дней
Часто задаваемые вопросы

При создании плагина для October CMS через Builder многие разработчики упираются в ограничение: сложные отношения Many-to-Many не генерируются, кастомные виджеты требуют ручного вмешательства, а сгенерированный код часто содержит N+1 запросы. Например, клиент хотел интернет-магазин с фильтрами по категориям, но после генерации Builder выяснилось, что каждая страница товара делает 50 запросов к БД из-за отсутствия eager loading. Мы доработали код, сократив запросы до 5, и страница стала загружаться за 0.3 сек вместо 4 сек. Мы сталкивались с этим десятки раз и выработали рецепт: Builder для скелета + ручная доработка под продакшен. Настраиваем Builder Plugin и доводим результат до production-ready кода. За 5 лет мы выполнили более 50 проектов, сэкономив клиентам до 60% бюджета по сравнению с ручной разработкой с нуля.

Настройка Builder Plugin под продакшен

Builder — отличный инструмент для быстрого прототипирования. Он генерирует миграции, модели и контроллеры за 2–4 часа. Но чтобы код работал в продакшене, нужно доработать валидацию, оптимизировать запросы и добавить кастомную логику. Мы выполняем эти шаги вручную, используя опыт работы с October CMS.

Что можно сделать с Builder?

Функция Описание Примечание
Database Визуальный конструктор таблиц Поддерживает все типы столбцов Laravel, индексы, внешние ключи
Models Создание Eloquent-моделей Настройка полей, валидации, отношений, scope-методов
Backend Controllers CRUD-контроллеры Поведения list, form, reorder
Menus Навигация в backend Добавление пунктов меню
Versions Управление версиями Миграции и версионирование плагина

Причины N+1 запросов в Builder

При генерации реляций Builder не добавляет жадную загрузку. Например, список товаров с категориями выполнит запрос на каждую категорию. Это резко замедляет страницу. Мы исправляем это, добавляя with() в модели и используя eager loading. В результате количество запросов сокращается в 5–10 раз, а скорость загрузки страницы увеличивается на 80%.

Как избежать N+1 запросов?

Чтобы избежать N+1, на этапе доработки добавляем жадную загрузку во все модели. Для списков используем with() в контроллерах, а в моделях — глобальные scope-методы. Например, в модели Product добавляем protected $with = ['category']. Это сокращает количество запросов с 50 до 5 и ускоряет загрузку до 0.3 сек.

Как доработать плагин после генерации?

После генерации скелета мы выполняем следующие шаги:

  • Проверяем миграции и добавляем составные индексы для ускорения запросов.
  • Настраиваем валидацию с учётом бизнес-логики (например, проверка уникальности составных полей).
  • Реализуем кастомные scope-методы для фильтрации и сортировки (например, scopePopular, scopeByCategory).
  • Добавляем отношения Many-to-Many через промежуточные таблицы с дополнительными полями (pivot).
  • Оптимизируем запросы: исправляем N+1 с помощью with(), используем жадную загрузку для списков.
  • Добавляем кастомные поведения, например для массового импорта CSV.

Пример: создание плагина через Builder

  1. Перейти в Backend → Builder → Выбрать плагин
  2. Database → Add Table — указать название, добавить столбцы
  3. Models → Add Model — выбрать таблицу, настроить $fillable, правила
  4. Controllers → Add Controller — выбрать модель, настроить list columns и form fields через YAML

Сгенерированный columns.yaml:

# models/Product/columns.yaml
columns:
  name:
    label: Название
    searchable: true
    sortable: true
  price:
    label: Цена
    type: number
    sortable: true
  is_active:
    label: Активен
    type: switch
  created_at:
    label: Создан
    type: timesince

fields.yaml:

# models/Product/fields.yaml
fields:
  name:
    label: Название
    type: text
    required: true
    span: left
  slug:
    label: Slug
    type: text
    preset:
      field: name
      type: slug
    span: right
  price:
    label: Цена (руб.)
    type: number
    span: left
  description:
    label: Описание
    type: richeditor
    size: large
  image:
    label: Изображение
    type: fileupload
    mode: image
    imageWidth: 1200
    imageHeight: 630
  tabs:
    fields:
      seo_title:
        tab: SEO
        label: SEO заголовок
        type: text
      seo_description:
        tab: SEO
        label: SEO описание
        type: textarea

Сравнение: Builder vs ручная разработка

Критерий Builder Ручная разработка
Скорость создания CRUD 2–4 часа 1–2 дня
Гибкость Ограниченная Полная
Качество кода Требует доработки Высокое
Поддержка сложной логики Нет Да

Builder ускоряет создание CRUD-модулей в 3–5 раз по сравнению с ручной разработкой, но финальный код требует доработки. Наша команда помогает пройти этот путь без ошибок.

Технические детали настройки

Настройка включает конфигурацию YAML-файлов моделей и контроллеров, добавление кастомных scope-методов и оптимизацию запросов. Например, для модели Product мы добавляем scopePublished и scopeInStock. Также настраиваем разрешения и меню для backend.

Процесс работы

  1. Аналитика — изучаем требования к плагину.
  2. Установка и настройка Builder — конфигурация окружения.
  3. Генерация скелета — создание таблиц, моделей, контроллеров.
  4. Доработка кода — валидация, кастомные методы, оптимизация.
  5. Тестирование — проверка на соответствие требованиям.
  6. Деплой — выкатка на сервер.

Что входит в работу

  • Установка и настройка Builder Plugin.
  • Создание до 5 моделей с формами и списками.
  • Настройка меню и разрешений.
  • Доработка кода под продакшен (до 20 часов).
  • Оптимизация скорости загрузки backend-страниц.
  • Документация по плагину.
  • Консультация по дальнейшей поддержке.

Сроки и стоимость

Сроки: от 3 до 7 рабочих дней в зависимости от сложности. Стоимость рассчитывается индивидуально — пишите для оценки. Мы гарантируем экономию бюджета до 60% по сравнению с ручной разработкой.

Почему выбирают нас?

Опыт работы с October CMS — более 5 лет. Выполнили более 50 проектов. Предоставляем гарантию на настройку и доработку.

Официальная документация October CMS: https://octobercms.com/docs

Свяжитесь с нами для консультации — получите оценку вашего проекта и готовый плагин с доработанным кодом. Закажите настройку Builder Plugin и получите готовый плагин с оптимизированным кодом.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1060