Drupal 8 и 9: различия

c

Архитектурная основа: уход от устаревших зависимостей

Ключевое различие между Drupal 8 и 9 лежит на уровне программного стека. Drupal 9 полностью устраняет зависимости, которые были объявлены устаревшими (deprecated) в версии 8.9. Это не косметическое обновление — из ядра удалены библиотеки и модули, работавшие на устаревших версиях Symfony и Twig. Например, Drupal 8 поддерживал PHPUnit до версии 7, тогда как Drupal 9 требует PHPUnit 9.5. Разработчику, проходящему обучение, критически понимать, что код, написанный под Drupal 8 с использованием устаревших вызовов, не скомпилируется в девятой версии без рефакторинга.

Процесс обновления: чем Drupal 8->9 отличается от стандартного апгрейда

Миграция с Drupal 8 на 9 — это не обычное обновление (update), а скорее смена мажорной версии, которая тем не менее не требует полной перестройки сайта. Основной инструмент — модуль Upgrade Status. После его анализа вы получаете список всех устаревших функций в вашем коде. Критический момент: если ваш сайт на Drupal 8 не содержит кастомного кода с устаревшими вызовами, процесс обновления сводится к замене ядра и обновлению одной команды Composer. Однако, на практике, большинство проектов требуют исправления от 5 до 20 deprecated-функций.

В отличие от классического перехода с Drupal 7 на 8, где нужна была полная миграция контента, Drupal 9 использует тот же движок базы данных, что и Drupal 8.9. Это означает, что процесс миграции не затрагивает структуру таблиц — все модули и конфигурации остаются работоспособными при условии их совместимости. Обучение должно фокусироваться на поиске и замене устаревшего кода, а не на переносе данных.

Совместимость модулей и contrib-экосистемы

Экосистема Drupal 9 не является полностью обратно совместимой с Drupal 8 на уровне тысяч контриб-модулей. Хотя модули с версией 8.x-* могут работать под Drupal 9, если они не используют deprecated API, на практике многие модули требуют отдельной ветки, обычно 9.x-*. По состоянию на 2026 год все популярные модули (Views, Paragraphs, Pathauto) имеют стабильные версии для Drupal 9. Проблема возникает с модулями, которые полагаются на библиотеки jQuery UI, удалённые из ядра Drupal 9. Например, модули, отвечающие за интерфейсы с перетаскиванием (draggable), требуют переписывания на JavaScript-фреймворки без jQuery UI.

Для обучения рекомендуем использовать статический анализатор Drupal Rector, который автоматически исправляет до 80% deprecated-вызовов. Это ускоряет переход на 9-ю версию и снижает риск ошибок при ручном рефакторинге.

Практический пример рефакторинга: от Drupal 8 к Drupal 9

Рассмотрим типовую задачу: вы пишете кастомный модуль, который обращается к базе данных. В Drupal 8 распространён вызов db_query(), который является устаревшим. В Drupal 9 его необходимо заменить на подключение через сервис database: \Drupal::database()->query('SELECT ...'). Разница не только в синтаксисе — новая система требует явного указания префиксов таблиц через {}. Другой пример: в Drupal 8 для работы с сущностями часто использовался entity_create(), удалённый в Drupal 9. Теперь применяется статический метод: \Drupal::entityTypeManager()->getStorage('node')->create().

Для разработчиков, проходящих курс по Drupal 9, критически изучить новый сервис-контейнер Symfony 4. Drupal 9 требует явной инъекции зависимостей через конструктор, в отличие от Drupal 8, где часто допускался вызов статических методов из глобального Drupal-класса. Обучение должно включать практику написания сервисов с тегированием (tags) и использование консоли Drupal для генерации кода.

План действий при заказе курса по миграции

При заказе целевого обучения по переходу с Drupal 8 на 9 на нашей платформе вы получаете структурированный маршрут. После оплаты доступ к материалам открывается в течение 1 рабочего дня. Первый модуль — «Аудит текущего проекта»: вы загружаете composer.json и список модулей, система автоматически генерирует отчёт о совместимости. Второй модуль — «Рефакторинг кода»: пошаговые видеоуроки с разбором 50 наиболее частых deprecated-вызовов с примерами исправления. Третий модуль — «Living Demo»: доступ к виртуальному стенду, где вы можете безопасно провести миграцию тестового сайта.

Сроки обучения: базовый курс (8 академических часов) рассчитан на 2 недели интенсивной работы. Продвинутый курс (24 часа) включает работу с кастомными модулями, обновление тем и оптимизацию запросов. Все материалы остаются в личном кабинете на 12 месяцев. Техническая поддержка осуществляется через систему тикетов с ответом до 4 часов в рабочие дни. По окончании выдаётся сертификат с указанием версии Drupal 9 и пройденных модулей.

Важно: Курс не покрывает миграцию с Drupal 7 — это отдельная специализация. В рамках обучения мы предоставляем чек-лист для тестирования после обновления: проверка работы всех форм, отображение ошибок PHP, работа кэша и перестроение индексов поиска. Это гарантирует, что после обновления сайт не потеряет функциональность.

Преимущества своевременного перехода на Drupal 9

Таким образом, различие между Drupal 8 и Drupal 9 для практикующего разработчика — это не просто смена номера версии, а необходимость пересмотра архитектурных подходов, стека зависимостей и инструментов тестирования. Наша платформа предлагает структурированный путь обучения, который минимизирует риски при переходе и даёт конкретные инструменты для рефакторинга. Приступайте к аудиту вашего проекта сегодня, записавшись на курс «Drupal 9: практическая миграция».

Добавлено: 23.04.2026