לעתים קרובות אנו פוגשים בעלי אתרים על MODX Evolution המתלוננים על ארכיטקטורה מיושנת: PHP 5.6, ללא תאימות PSR, פרצות אבטחה שלא תוקנו. Evolution משתמשת בגישה פרוצדורלית, עם אובייקטים גלובליים $modx, בעוד ש-Revolution היא OOP מודרנית עם xPDO ORM. שדרוג ישיר אינו אפשרי — נדרשת הגירה מלאה עם עיבוד מחדש של הקוד. שירות ההגירה שלנו מ-MODX Evolution מעביר את כל התוכן, התבניות והקוד המותאם אישית, תוך הבטחת מעבר חלק ושמירה על SEO. Evolution אינה תומכת בקאשינג מודרני ובתקני autoloading, מה שמוביל לביצועים איטיים ולבעיות סקלביליות. Revolution מספקת קאשינג מובנה, מחלקות תואמות PSR ומערכת אירועים גמישה. לדוגמה, ב-Evolution, כדי להציג רשימת מסמכים היה צריך לכתוב שאילתות SQL ישירות, מה שהגדיל את הסיכון ל-SQL injection. ב-Revolution, זה מטופל דרך xPDO עם escape אוטומטי.
יתרונות מרכזיים של הגירה מ-MODX Evolution
המעבר ל-Revolution מספק יתרונות מדידים: זמן טעינת עמוד ממוצע נחתך בחצי הודות לקאשינג מובנה, פרצות האבטחה של הארכיטקטורה הישנה מבוטלות, ומתקבלת גישה לחבילות מודרניות ול-autoloading. חיסכון בעלויות אירוח יכול להגיע ל-30% — עבור אתר טיפוסי עם 50 משאבים, זה אומר חיסכון של $500–$2000 בשנה על אירוח. בנוסף, Revolution תומכת ב-PHP 8.x, מה שמאריך את מחזור החיים של האתר. עלויות התמיכה והפיתוח מופחתות בעד 40%.
מה מועבר בהגירה מ-MODX Evolution
| רכיב | שיטה |
|---|---|
| משאבים (עמודים) | ייצוא ל-JSON, ייבוא דרך API של Revolution |
| פרמטרי TV | שמירת מיפוי שמות |
| תבניות | נכתבות מחדש כ-chunks של Revolution |
| Snippets | עיבוד מחדש עבור ה-API החדש |
| פלאגינים | נכתבים מחדש באמצעות אירועי Revolution |
| תמונות | Rsync מ-assets/ |
| משתמשים | ייבוא דרך API |
מבנה התיקיות לתמונות בדרך כלל זהה, אך הנתיבים בתוכן עשויים להשתנות. אנו הופכים את ההחלפה לאוטומטית באמצעות regex או מיפוי ידני.
תהליך הגירה מ-MODX Evolution
ההגירה מתבצעת לפי השלבים הבאים:
- ביקורת – אנו מנתחים את מבנה האתר הנוכחי.
- ייצוא – אנו מייצאים את כל הנתונים ל-JSON.
- ייבוא – אנו מייבאים ל-Revolution.
- עיבוד מחדש – אנו כותבים מחדש snippets ופלאגינים.
- בדיקות – אנו בודקים ביסודיות את האתר החדש.
שלב 1: ניתוח האתר הנוכחי
לפני ההגירה, אנו עורכים ביקורת: איסוף נתונים על תבניות, פרמטרי TV, snippets ופלאגינים. דוגמה לשאילתת SQL להערכת עומס העבודה:
-- Количество документов по шаблонам
SELECT t.templatename, COUNT(d.id) as count
FROM site_content d
JOIN site_templates t ON t.id = d.template
GROUP BY t.templatename;
-- TV-параметры
SELECT tv.caption, tv.type, COUNT(tvv.id) as used
FROM site_tmplvars tv
LEFT JOIN site_tmplvar_contentvalues tvv ON tv.id = tvv.tmplvarid
GROUP BY tv.id;
-- Кастомные сниппеты
SELECT name, LENGTH(snippet) as size
FROM site_snippets;
-- Плагины
SELECT name, plugincode
FROM site_plugins
WHERE disabled = 0; שלב 2: הגירת פרמטרי TV
פרמטרי TV ממופים לפי שם. אם ב-Evolution השדה נקרא -- Количество документов по шаблонам SELECT t.templatename, COUNT(d.id) as count FROM site_content d JOIN site_templates t ON t.id = d.template GROUP BY t.templatename; -- TV-параметры SELECT tv.caption, tv.type, COUNT(tvv.id) as used FROM site_tmplvars tv LEFT JOIN site_tmplvar_contentvalues tvv ON tv.id = tvv.tmplvarid GROUP BY tv.id; -- Кастомные сниппеты SELECT name, LENGTH(snippet) as size FROM site_snippets; -- Плагины SELECT name, plugincode FROM site_plugins WHERE disabled = 0; , הוא נשאר color ב-Revolution. חשוב לבדוק סוגים: ב-Evolution, סוג ה-TV עשוי להיות שונה מזה שב-Revolution (לדוגמה, שדה טקסט לעומת אזור טקסט). אנו מתאימים את הסוגים ידנית. בנוסף, אנו מגדירים גישה ל-TVs דרך הגדרות המערכת של Revolution.
שלב 3: הגירת Snippets ופלאגינים
Snippets של Evolution כתובים בסגנון פרוצדורלי עם color גלובלי. ה-API של Revolution שונה. לדוגמה:
// Evolution (старый API)
$docs = $modx->getDocuments($parents = [5], $published = 1);
// Revolution (правильный API)
$c = $modx->newQuery('modResource');
$c->where(['parent' => 5, 'published' => 1]);
$docs = $modx->getCollection('modResource', $c);יש לכתוב את ה-snippets מחדש. למשימות טיפוסיות (רשימות, תפריטים, טפסים), השתמשו בתוספים מוכנים של Revolution: pdoResources, pdoMenu, FormIt. זה מזרז את הפיתוח ומפחית את הסיכוי לשגיאות.
שלב 4: הגירת תמונות וקבצים
# Структура изображений идентична (assets/images/) rsync -avz old-server:/var/www/evo-site/assets/images/ \ /var/www/revo-site/assets/images/ רשימת בדיקה מפורטת להגירה
- מלאי את כל רכיבי Evolution (תבניות, snippets, פלאגינים, TVs).
- ייצוא מסד הנתונים והנכסים ל-JSON ולתיקיות.
- התקנת Revolution עם החבילות הנדרשות.
- מיפוי שמות TV ישנים ל-TVs חדשים של Revolution.
- כתיבה מחדש של כל snippet לשימוש בשאילתות xPDO.
- המרת פלאגינים לאירועי Revolution.
- ייבוא תוכן דרך API של Revolution עם מזהי משאבים נכונים.
- התאמת כל הקישורים הפנימיים ונתיבי התמונות.
- הגדרת הפניות 301 עבור כתובות URL שהשתנו.
- בדיקת כל הפונקציונליות בסביבת staging.
- ביצוע בדיקות עומס לאימות שיפור הביצועים.
- פריסה לייצור ומעקב.
מקרה אמיתי: חנות מסחר אלקטרוני ב-4 שבועות
ללקוח שלנו הייתה חנות מסחר אלקטרוני על Evolution עם 300 משאבים, 20 snippets ו-10 TVs. השלמנו את הגירת MODX Evolution ב-4 שבועות. בעיות מרכזיות:
- ה-snippet של עגלת הקניות השתמש בשאילתות SQL ישירות — נכתב מחדש ל-xPDO.
- התבניות הכילו תגי
$modxמיושנים — הוחלפו ב-// Evolution (старый API) $docs = $modx->getDocuments($parents = [5], $published = 1); // Revolution (правильный API) $c = $modx->newQuery('modResource'); $c->where(['parent' => 5, 'published' => 1]); $docs = $modx->getCollection('modResource', $c);של Revolution. - מבנה ה-URL השתנה, הוגדרו הפניות .htaccess.
הלקוח ציין: "מהירות הטעינה עלתה ב-40%, ועומס השרת ירד בחצי."
תוצאה: מהירות טעינת העמוד עלתה ב-40% הודות לקאשינג של Revolution, פרצות האבטחה בוטלו, עומס השרת ירד. חיסכון באירוח עד 30% (כ-$500 בשנה). רוצים את אותו הדבר? הזמינו ביקורת של אתר ה-Evolution שלכם.
השוואת ביצועים: Evolution מול Revolution
Revolution טוענת עמודים פי 2 מהר יותר מ-Evolution, מה שמאשר את הביצועים המעולים שלה.
| פרמטר | Evolution | Revolution |
|---|---|---|
| זמן טעינת עמוד ממוצע | 1.2 שניות | 0.6 שניות |
| שימוש בזיכרון | 32 MB | 48 MB |
| קאשינג | אין | מובנה (SQL, קובץ) |
Revolution מהירה פי 2 בזמן הטעינה, והקאשינג מפחית את עומס השרת.
לוח זמנים ועלות
| סוג אתר | לוח זמנים | מחיר התחלתי |
|---|---|---|
| אתר פשוט (עד 50 משאבים, snippets סטנדרטיים) | 1–2 שבועות | $1,500 |
| בינוני (100–500 משאבים, snippets מותאמים אישית) | 3–5 שבועות | $3,000 |
| גדול (1000+ משאבים, פונקציונליות מורכבת) | 2–3 חודשים | $10,000 |
העלויות מבוססות על פרויקט; הערכה סופית לאחר הביקורת.
מה כלול בעבודה
- ביקורת: ניתוח תבניות, snippets, TVs ופלאגינים.
- ייצוא: כל הנתונים נשמרים כ-JSON.
- הגדרת Revolution: התקנה והגדרת קאשינג.
- הגירה: ייבוא תוכן עם עיבוד מחדש של תבניות ו-snippets.
- העברת קבצים: סנכרון תמונות עם תיקון נתיבים אוטומטי.
- שמירת SEO: הפניות 301 להמשכיות כתובות URL.
- בדיקות: אימות בסביבת staging.
- תיעוד: מדריך למנהל והדרכה.
- תמיכה לאחר השחרור: 30 יום של תיקוני באגים חינם.
למה לסמוך עלינו
- 10+ שנות ניסיון עם שתי גרסאות MODX.
- מעל 50 פרויקטי הגירה מ-MODX Evolution שהושלמו.
- מהנדסים מוסמכים של MODX Revolution.
- אחריות איכות: תיקוני באגים חינם תוך 30 יום.
צרו קשר להערכת עומס עבודה. הזמינו הגירה ושכחו מבעיות Evolution. קבלו ייעוץ תוך 2 ימי עסקים.







