MODX Revolution часто называют «CMS для разработчиков», но это не совсем точно. Правильнее сказать — это Content Management Framework, который даёт разработчику полную свободу, не навязывая свой стиль кодинга. Расскажу, что это такое и почему я выбрал именно MODX для своих проектов.

Что такое MODX Revolution

MODX Revolution (или просто MODX) — это веб-платформа с открытым исходным кодом, которая объединяет в себе возможности CMS и фреймворка. Это не просто «движок для сайтов», а полноценная платформа для создания веб-приложений любой сложности.

Краткая история

MODX появился в 2005 году как альтернатива тяжеловесным и негибким CMS того времени. Основная идея — дать разработчику полную свободу в создании сайта, не ограничивая его рамками системы.

В 2010 году вышел MODX Revolution — полностью переписанная версия с новой архитектурой, объектно-реляционным маппингом (xPDO) и современными возможностями.

Архитектура MODX: три кита системы

1. Ресурсы (Resources)

Ресурсы — это страницы вашего сайта. Каждый ресурс представляет собой отдельную запись в базе данных со своими уникальными характеристиками:

ID: 1
Заголовок: "О компании"
Псевдоним: "about"
URL: "https://site.ru/about/"
Шаблон: "page"
Контент: "Текст страницы..."

Типы ресурсов:

  • Документы — обычные страницы
  • Веб-ссылки — перенаправления на внешние URL
  • Символические ссылки — ссылки на другие ресурсы внутри сайта
  • Статические ресурсы — файлы (изображения, документы)

2. Элементы (Elements)

Элементы — это строительные блоки вашего сайта:

Шаблоны (Templates) Основа страниц. HTML-код с плейсхолдерами:

<!DOCTYPE html>
<html>
<head>
    <title>[[++site_name]] - [[*pagetitle]]</title>
</head>
<body>
    [[*content]]
</body>
</html>

Чанки (Chunks) Переиспользуемые фрагменты кода:

<!-- Чанк header -->
<header>
    <h1>[[++site_name]]</h1>
    <nav>[[getMenu]]</nav>
</header>

Сниппеты (Snippets) PHP-код для динамического контента:

<?php
// Сниппет getNews
$resources = $modx->getCollection('modResource', array(
    'parent' => 5,
    'published' => 1
));

$output = '';
foreach ($resources as $resource) {
    $output .= '<h3>' . $resource->get('pagetitle') . '</h3>';
}

return $output;

Плагины (Plugins) Расширяют функциональность системы, «слушая» события MODX.

3. Пакеты (Packages)

Дополнения, которые расширяют возможности MODX:

  • pdoTools — быстрая выборка данных
  • miniShop2 — интернет-магазин
  • FormIt — обработка форм
  • MIGX — кастомные TV-поля

MODX vs WordPress: чистый код против «макарон»

Многие спрашивают: «Зачем MODX, если есть WordPress?» Отвечу на основе 20-летнего опыта.

WordPress — это «макароны»

В WordPress темы, плагины и контент переплетаются в сложную структуру:

// Типичный WordPress код
if (have_posts()) {
    while (have_posts()) {
        the_post();
        the_title();
        the_content();
    }
}

Это работает, но:

  • Логика смешана с представлением
  • Сложно переиспользовать код
  • При смене темы может сломаться функциональность
  • Зависимость от хуков и фильтров WordPress

MODX — чистая архитектура

В MODX шаблоны не содержат PHP-логику:

<!-- Шаблон -->
<h1>[[*pagetitle]]</h1>
<div>[[*content]]</div>
[[getNews]]

<!-- Сниппет getNews -->
<?php
return $modx->runSnippet('pdoResources', array(
    'parents' => 5,
    'limit' => 10
));

Преимущества:

  • Чистое разделение логики и представления
  • Переиспользуемые компоненты
  • Независимость от дизайна
  • Простота отладки

Плейсхолдеры: язык MODX

MODX использует систему плейсхолдеров для вывода данных:

Системные переменные

[[++site_name]] — название сайта
[[++site_url]] — URL сайта
[[++base_url]] — базовый URL

Поля ресурса

[[*pagetitle]] — заголовок страницы
[[*content]] — контент
[[*createdon]] — дата создания
[[*id]] — ID ресурса

Вызов сниппетов

[[getMenu]] — без параметров
[[getMenu? &parents=`0` &level=`1`]] — с параметрами

TV-поля (Template Variables)

[[*my_custom_field]] — значение TV-поля

Менеджер файлов и медиа

MODX включает файловый менеджер с возможностями:

  • Загрузка файлов через drag & drop
  • Создание папок и управление структурой
  • Редактирование изображений
  • Просмотр свойств файлов

Пользователи и права доступа

Гибкая система управления доступом:

Группы пользователей

  • Администраторы — полный доступ
  • Редакторы — работа с контентом
  • Модераторы — ограниченные права

Контексты

Возможность создания отдельных разделов сайта с разными настройками (например, админка и сайт).

Преимущества MODX Revolution

1. Безопасность

За 20 лет работы с MODX я сталкивался с попытками взлома — DDoS, атаки через формы, тысячи запросов к базе. MODX устоял. Система довольно безопасна по умолчанию.

2. SEO из коробки

  • Дружелюбные URL (ЧПУ)
  • Настройка метатегов для каждой страницы
  • Автоматическая генерация sitemap.xml
  • Управление редиректами
  • Хлебные крошки

3. Гибкость

Можете создать любую структуру сайта:

  • Корпоративный портал
  • Интернет-магазин
  • Новостной сайт
  • Лендинг
  • Веб-приложение

4. Производительность

Встроенное кэширование на нескольких уровнях:

  • Кэш страниц
  • Кэш элементов
  • Кэш базы данных

Недостатки MODX

Буду честен — у MODX есть минусы:

1. Устаревшая админка

Админка написана на ExtJS — технологии 15-летней давности. Она функциональна, но выглядит устаревшей.

2. Сложности масштабирования команды

MODX — это монолит. Его сложно разложить на части для работы большой команды. Максимум 3 разработчика, дальше лучше рассматривать фреймворки типа Laravel или Symfony.

3. Крутая кривая обучения

Новичку сложно разобраться в архитектуре MODX. Нужно понять концепцию ресурсов, элементов, плейсхолдеров.

Кому подходит MODX

Идеальная аудитория:

  • Малый и средний бизнес — получают 90% технологий из коробки
  • Веб-студии — гибкость для реализации любых проектов
  • SEO-агентства — отличные возможности для продвижения

Размер проекта:

  • Корпоративные сайты (до 10 000 страниц)
  • Интернет-магазины (до 50 000 товаров)
  • Новостные порталы (до 100 000 статей)

Команда:

1-3 разработчика. Больше — уже стоит рассматривать специализированные фреймворки.

Установка и хостинг

Системные требования:

  • PHP 7.4+ (рекомендуется 8.1+)
  • MySQL 5.7+ или MariaDB 10.2+
  • Apache или Nginx
  • 256 MB RAM минимум

Рекомендуемый хостинг:

Timeweb — отличный вариант для MODX-проектов. Поддержка всех требований, SSD-диски, 24/7 техподдержка.

MODX и будущее

В эпоху ИИ технологии становятся менее важными. Нейросети могут писать код на любом языке. К MODX тоже несложно подключить ИИ-помощники — всё будет работать так же, как везде.

Выигрывает мышление, а не владение конкретной технологией. MODX даёт хорошую основу — безопасность, SEO, архитектуру. А детали реализации можно доверить ИИ.

Следующие шаги

Хотите изучить MODX глубже? Читайте мои детальные руководства:

  1. Разработка сайта на MODX Revolution: полное руководство — обзор всего процесса разработки
  2. Элементы MODX: шаблоны, чанки, сниппеты — как правильно структурировать код

Заключение

MODX Revolution — это мощная платформа для создания веб-сайтов любой сложности. Она подходит тем, кто ценит чистый код, гибкость и контроль над каждым аспектом сайта.

Да, есть кривая обучения. Да, админка устарела. Но если вам нужна надёжная основа для серьёзных проектов — MODX ваш выбор.

Нужна помощь с MODX? Обращайтесь! 20 лет опыта и более 60 проектов к вашим услугам.

Антон Ветров, веб-разработчик с 2006 года. Специализируюсь на MODX Revolution и SEO-продвижении.

Автор материала

Антон Ветров Разработка сайтов, поисковая доступность, автоматизация и эксплуатация.