Налаштування Builder Plugin для October CMS під продакшен

Під час створення плагіна для October CMS через Builder багато розробників впираються в обмеження: складні відносини Many-to-Many не генеруються, кастомні віджети потребують ручного втручання, а згенерований код часто містить N+1 запити. Наприклад, клієнт хотів інтернет-магазин з фільтрами за катего

Розробка та обслуговування будь-яких видів сайтів:

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

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

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

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

Часті запитання

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1467
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1317
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1014
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1276
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1019
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1019

Під час створення плагіна для October CMS через Builder багато розробників впираються в обмеження: складні відносини Many-to-Many не генеруються, кастомні віджети потребують ручного втручання, а згенерований код часто містить N+1 запити. Наприклад, клієнт хотів інтернет-магазин з фільтрами за категоріями, але після генерації Builder виявилося, що кожна сторінка товару робить 50 запитів до БД через відсутність eager loading. Ми доопрацювали код, скоротивши запити до 5, і сторінка почала завантажуватися за 0.3 сек замість 4 сек. Ми стикалися з цим десятки разів і виробили рецепт: Builder для скелета + ручне доопрацювання під продакшен. Налаштовуємо Builder Plugin і доводимо результат до production-ready коду. Ми виконали понад 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 — значний. Виконали понад 50 проєктів. Надаємо гарантію на налаштування та доопрацювання.

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

Зв'яжіться з нами для консультації — отримайте оцінку вашого проєкту та готовий плагін із доопрацьованим кодом. Замовте налаштування Builder Plugin і отримайте готовий плагін з оптимізованим кодом.