בעת יצירת תוסף עבור October CMS באמצעות Builder Plugin, מפתחים נתקלים לעיתים קרובות במגבלות: יחסי Many-to-Many מורכבים לא נוצרים, ווידג'טים מותאמים אישית דורשים התערבות ידנית, והקוד שנוצר מכיל לעיתים קרובות שאילתות N+1. לדוגמה, לקוח נזקק לחנות מקוונת עם מסנני קטגוריות; לאחר יצירת Builder, כל דף מוצר ביצע 50 שאילתות מסד נתונים עקב חוסר בטעינה מוקדמת (eager loading). חידדנו את הקוד, צמצמנו את השאילתות ל-5, והדף נטען תוך 0.3 שניות במקום 4, שיפור של 93%. נתקלנו בזה עשרות פעמים ופיתחנו מתכון מוכח: השתמשו ב-Builder לשלד + חידוד ידני לייצור. אנו מגדירים את RainLab Builder ומביאים את התוצאה לקוד מוכן לייצור. במשך 5 שנים, השלמנו יותר מ-50 פרויקטים, וחסכנו ללקוחות עד 60% מהתקציב בהשוואה לפיתוח ידני מאפס. עבור תוסף טיפוסי עם 15 מודלים, שירות החידוד שלנו עולה $1,200, וחוסך $2,800 בהשוואה לקידוד ידני. עלויות פרויקט טיפוסיות נעות בין $500 ל-$2,000 בהתאם למורכבות. עלות הפרויקט הממוצעת שלנו עבור הגדרת Builder וחידוד היא $800–$1,500.
Builder מייצר שאילתות N+1 עקב חוסר בטעינה מוקדמת
Builder מייצר יחסים ללא טעינה מוקדמת. לדוגמה, רשימת מוצרים עם קטגוריות מבצעת שאילתה נפרדת לכל קטגוריה, מה שמאט משמעותית את הדפים. אנו מתקנים זאת על ידי הוספת with() במודלים של Eloquent ושימוש בטעינה מוקדמת. כתוצאה מכך, מספר השאילתות יורד פי 5–10, ומהירות טעינת הדף עולה ב-80% או יותר. אופטימיזציה זו קריטית לייצור. בהשוואה לפלט Builder לא מותאם, הקוד המחודד שלנו נטען מהר יותר ב-93%.
הגדרת Builder Plugin מוכן לייצור
Builder הוא כלי מצוין לאב-טיפוס מהיר, יצירת מיגרציות, מודלים ובקרים תוך 2–4 שעות. אך עבור ייצור, יש צורך לחדד ולידציה, לבצע אופטימיזציה של שאילתות ולהוסיף לוגיקה מותאמת אישית. אנו מבצעים שלבים אלה ידנית, תוך ניצול ניסיון של 5+ שנים עם October CMS. השירות שלנו מהיר פי 3–5 מפיתוח ידני עבור מודולי CRUD, כפי שמוצג בטבלה למטה.
יכולות Builder
| פונקציה | תיאור | הערה |
|---|---|---|
| מסד נתונים | מעצב טבלאות ויזואלי | תומך בכל סוגי העמודות, האינדקסים ומפתחות הזרים של Laravel |
| מודלים | יצירת מודלים של Eloquent | הגדרת שדות, ולידציה, יחסים ומתודות scope |
| בקרי Backend | בקרי CRUD | התנהגויות list, form, reorder |
| תפריטים | ניווט אדמיניסטרטיבי | הוספת פריטי תפריט |
| גרסאות | ניהול גרסאות | מיגרציות וגרסאות תוספים |
כיצד לבצע אופטימיזציה של שאילתות?
כדי למנוע N+1, במהלך החידוד אנו מוסיפים טעינה מוקדמת לכל המודלים. עבור רשימות, אנו משתמשים ב-with() בבקרים; במודלים, אנו משתמשים במתודות scope גלובליות. לדוגמה, במודל Product אנו מוסיפים protected $with = ['category']. זה מפחית את השאילתות מ-50 ל-5 – הפחתה של 90% – ומאיץ את זמן הטעינה ל-0.3 שניות. טכניקת האופטימיזציה שלנו יעילה פי 10 מהשארת שאילתות ללא שינוי.
חידוד התוסף שנוצר
לאחר יצירת השלד, אנו מבצעים את השלבים הבאים:
- בדיקת מיגרציות והוספת אינדקסים מורכבים למהירות שאילתות.
- הגדרת ולידציה בהתאם ללוגיקה העסקית (לדוגמה, שדות מורכבים ייחודיים).
- יישום מתודות scope מותאמות אישית לסינון ומיון (לדוגמה,
scopePopular,scopeByCategory). - הוספת יחסי Many-to-Many באמצעות טבלאות pivot עם שדות נוספים.
- אופטימיזציה של שאילתות: תיקון N+1 עם
with(), שימוש בטעינה מוקדמת לרשימות. - הוספת התנהגויות מותאמות אישית, לדוגמה, לייבוא המוני של CSV.
דוגמה: יצירת תוסף באמצעות Builder
- עברו ל-Backend → Builder → בחרו תוסף
- Database → Add Table — ציינו שם, הוסיפו עמודות
- Models → Add Model — בחרו טבלה, הגדירו
$fillable, כללים - Controllers → Add Controller — בחרו מודל, הגדירו עמודות רשימה ושדות טופס באמצעות 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
# 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 :
---
# 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 לעומת פיתוח ידני
| קריטריון | Builder | ידני |
|---|---|---|
| מהירות יצירת CRUD | 2–4 שעות (פי 3–5 מהר יותר) | 1–2 ימים |
| גמישות | מוגבלת | מלאה |
| איכות קוד | דורש חידוד | גבוהה |
| תמיכה בלוגיקה מורכבת | לא | כן |
Builder מאיץ את יצירת מודולי CRUD ב-פי 3–5 בהשוואה לפיתוח ידני, אך הקוד הסופי דורש חידוד. הצוות שלנו עוזר לכם לנווט בתהליך זה ללא שגיאות.
פרטים טכניים של ההגדרה
ההגדרה כוללת הגדרת קבצי YAML עבור מודלים ובקרים, הוספת מתודות scope מותאמות אישית ואופטימיזציה של שאילתות. לדוגמה, עבור מודל Product אנו מוסיפים 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 . אנו גם מגדירים הרשאות ותפריטי backend. ההגדרה המוכנה לייצור שלנו מבטיחה שטפסי backend נטענים תוך פחות מ-0.5 שניות.
סקירת תהליך
- ניתוח — לימוד דרישות התוסף.
- התקנה והגדרה של Builder — הגדרת סביבה.
- יצירת שלד — יצירת טבלאות, מודלים, בקרים.
- חידוד קוד — ולידציה, מתודות מותאמות אישית, אופטימיזציה.
- בדיקות — אימות מול דרישות.
- פריסה — פריסה לשרת.
מה כלול
- התקנה והגדרה של Builder Plugin.
- יצירת עד 5 מודלים עם טפסים ורשימות.
- הגדרת תפריטים והרשאות.
- חידוד לייצור (עד 20 שעות).
- אופטימיזציה של מהירות טעינת דפי backend.
- תיעוד התוסף.
- ייעוץ לתמיכה נוספת.
לוח זמנים ועלות
לוח זמנים: בין 3 ל-7 ימי עסקים בהתאם למורכבות. העלות מחושבת באופן אישי — צרו קשר להערכה. אנו מבטיחים חיסכון של עד 60% בתקציב בהשוואה לפיתוח ידני. עבור פרויקט ממוצע, העלות הכוללת כולל שירות החידוד שלנו היא בדרך כלל $800–$1,500. לדוגמה, תוסף עם 15 מודלים ויחסים מורכבים עולה $1,200, וחוסך $2,800.
הניסיון והיתרונות שלנו
ניסיון עם October CMS — למעלה מ-5 שנים. השלמנו יותר מ-50 פרויקטים. אנו מספקים אחריות על הגדרה וחידוד.
תיעוד רשמי של October CMS: https://octobercms.com/docs
צרו קשר לייעוץ — קבלו הערכה לפרויקט שלכם ותוסף מוכן לייצור עם קוד מחודד. הזמינו הגדרת Builder Plugin וקבלו תוסף מותאם.







