Ми часто стикаємося з ситуацією, коли власники сайтів на MODX Evolution скаржаться на застарілу архітектуру: PHP 5.6, відсутність PSR-сумісності, незакриті вразливості. Evolution використовує процедурний підхід, глобальні об'єкти $modx, а Revolution — сучасний ООП з xPDO ORM. Прямий апгрейд неможливий — потрібна повноцінна міграція з переробкою коду. Evolution не підтримує сучасні стандарти кешування та автозавантаження, що призводить до повільної роботи та проблем із масштабуванням. Revolution надає вбудоване кешування, PSR-сумісні класи та гнучку систему подій. Наприклад, в Evolution для виведення списку документів доводилося писати прямі SQL-запити, що збільшувало ризик SQL-ін'єкцій. В Revolution це завдання вирішується через xPDO з автоматичним екрануванням.
Навіщо мігрувати з MODX Evolution на Revolution?
Перехід на Revolution дає вимірні вигоди: середній час завантаження сторінки скорочується вдвічі за рахунок вбудованого кешування, усуваються вразливості старої архітектури, з'являється доступ до сучасних пакетів та автозавантаження. Економія на хостингу може сягати 30% — це до 20 000 грн на рік для типового проєкту. Крім того, Revolution підтримує PHP 8.x, що продовжує життєвий цикл сайту. Зниження витрат на підтримку та доопрацювання досягає 40%, що економить близько 50 000 грн щорічно.
Що переноситься при міграції
| Компонент | Метод перенесення |
|---|---|
| Ресурси (сторінки) | Експорт в JSON, імпорт через API Revolution |
| TV-параметри | Зберігаються маппінг назв |
| Шаблони | Переписуються під чанки Revolution |
| Сніпети | Рефакторинг під новий API |
| Плагіни | Переписуються з використанням подій Revolution |
| Зображення | Rsync з assets/ |
| Користувачі | Імпорт через API |
Структура папок зображень зазвичай ідентична, але шляхи в контенті можуть змінитися. Ми автоматизуємо заміну через regex або ручний маппінг.
Як проходить міграція?
Аналіз поточного сайту
Перед міграцією проводимо аудит: збираємо дані по шаблонах, TV-параметрах, сніпетах та плагінах. Приклад 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; Як перенести TV-параметри?
TV-параметри мапляться за назвою. Якщо в Evolution поле називалося color, в Revolution воно залишається color. Важливо перевірити типи: в Evolution тип TV може відрізнятися від Revolution (наприклад, текстове поле проти текстової області). Ми коригуємо типи вручну. Додатково налаштовуємо доступ до TV через системні налаштування Revolution.
Як мігрувати сніпети та плагіни?
Сніпети Evolution написані в процедурному стилі з глобальним $modx. В Revolution API інший. Наприклад:
// 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 Extra: pdoResources, pdoMenu, FormIt. Це прискорює розробку та знижує ймовірність помилок.
Міграція зображень і файлів
# Структура зображень ідентична (assets/images/) rsync -avz old-server:/var/www/evo-site/assets/images/ \ /var/www/revo-site/assets/images/ Реальний кейс: інтернет-магазин за 4 тижні
Наш клієнт — інтернет-магазин на Evolution з 300 ресурсами, 20 сніпетами та 10 TV. Ми виконали міграцію за 4 тижні. Ключові проблеми:
- Сніпет кошика використовував прямі SQL-запити — переписали на xPDO.
- Шаблони містили застарілі теги
[+...+]— замінені на[[+...]]Revolution. - Змінена структура URL, налаштовані редиректи .htaccess.
Клієнт відзначив: «Швидкість завантаження зросла на 40%, а навантаження на сервер знизилося вдвічі».
Результат: швидкість завантаження зросла на 40% за рахунок кешування Revolution, усунені вразливості, знижено навантаження на сервер. Економія на хостингу склала до 30%. Хочете так само? Замовте аудит свого сайту на Evolution безкоштовно.
Порівняння продуктивності: Evolution vs Revolution
| Параметр | Evolution | Revolution |
|---|---|---|
| Середній час завантаження сторінки | 1.2 сек | 0.6 сек |
| Споживання пам'яті | 32 MB | 48 MB |
| Кешування | Немає | Вбудоване (SQL, файлове) |
Revolution швидший у 2 рази за часом завантаження, а кешування знижує навантаження на сервер.
Терміни та вартість
| Тип сайту | Термін |
|---|---|
| Простий сайт (до 50 ресурсів, стандартні сніпети) | 1–2 тижні |
| Середній (100–500 ресурсів, кастомні сніпети) | 3–5 тижнів |
| Великий (1000+ ресурсів, складний функціонал) | 2–3 місяці |
Вартість розраховується індивідуально після аналізу кодової бази.
Що входить у роботу?
- Аудит поточного сайту: аналіз шаблонів, сніпетів, TV, плагінів.
- Експорт всіх даних зі збереженням структури.
- Встановлення та конфігурація Revolution з налаштуванням кешування.
- Імпорт контенту з рефакторингом шаблонів та сніпетів під xPDO.
- Міграція зображень та файлів з автоматичною заміною шляхів.
- Налаштування 301 редиректів для збереження URL.
- Тестування на staging-оточенні.
- Документація по новому сайту та навчання адміністраторів.
- Пост-релізна підтримка: безкоштовне виправлення багів протягом 30 днів.
Чому нам довіряють
- 10+ років досвіду з MODX обох версій.
- Понад 50 реалізованих проєктів з міграції.
- Сертифіковані інженери з MODX Revolution.
- Гарантія якості: безкоштовне виправлення багів протягом 30 днів.
Зв'яжіться з нами для безкоштовної оцінки обсягу робіт. Замовте міграцію — і забудьте про проблеми Evolution. Отримайте консультацію протягом 2 робочих днів.







