Мы часто сталкиваемся с ситуацией, когда владельцы сайтов на 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 рабочих дней.







