Речі, які я шкодую, що не знав про Drupal, коли тільки починав

Чесний і перевірений боями список для новачків (і не дуже новачків) у Drupal у 2025 році. Ці уроки заощадили б мені сотні годин болю.


1. Drupal — це перш за все інструмент моделювання контенту, а вже потім CMS

Більшість людей ставляться до Drupal як до WordPress. Це найшвидший спосіб його зненавидіти.

Головний зсув мислення: ви будуєте модель даних (сутності, поля, бандли, параграфи, макети), а потім дозволяєте Drupal це рендерити. Чим раніше ви приймете принцип «конфігурація замість коду» для структури контенту — тим щасливішими будете.

2. Ніколи, НІКОЛИ не правте ядро чи модулі з contrib

Я це робив у 2012 році. Мені досі сняться кошмари.

Правило №1 у Drupal: якщо ви відкрили файл у /core чи /modules/contrib і хочете щось змінити — негайно закрийте редактор. Використовуйте патч, хук, плагін або власний модуль.

3. Вивчіть Config Management з першого дня (Drupal 8+)

# Експорт
drush config:export

# Імпорт на іншому середовищі
drush config:import

# Показати різницю
drush config:status

Робити це з самого початку врятує вас від класичного «у мене на компі працює».

4. Використовуйте Composer правильно — не лише для встановлення Drupal

Погано (те, що робить більшість новачків):

composer create-project drupal/recommended-project

Добре (те, що треба робити):

composer create-project drupal/recommended-project my-site --no-interaction
cd my-site
composer require drupal/ctools drupal/token drupal/pathauto

Більше ніколи не завантажуйте модулі з drupal.org у вигляді zip-архівів.

5. Entities > Nodes

Перестаньте думати, що все має бути «вузлом» (node). Використовуйте кастомні сутності, коли це доречно.

6. Paragraphs vs Layout Builder vs Custom Blocks — коли що використовувати

МожливістьParagraphsLayout BuilderCustom Blocks
Повторне використанняТакНі (на конкретному об’єкті)Так
Свобода макету на сторінціНіТакОбмежено
ШвидкістьСередняНижчаНайкраща
Досвід редактораДуже добрийВідміннийБазовий

Моє правило у 2025 році: Paragraphs — для повторно використовуваних компонентів, Layout Builder — лише коли клієнт вимагає повної свободи на кожній сторінці (і ви готові до агресивного кешування).

7. Cache tags, cache contexts і render arrays — ваші найкращі друзі

Якщо сторінка повільна і ви не використовуєте теги кешу — ви робите щось не так.

$build = [
  '#markup' => $text,
  '#cache' => [
    'tags' => ['node:123'],
    'contexts' => ['url'],
    'max-age' => Cache::PERMANENT,
  ],
];
return $build;

8. Drush і Drupal Console досі незамінні у 2025

# Очистити кеш
drush cr

# Оновити БД після змін коду
drush updatedb -y

# Увімкнути модуль
drush en module_name -y

9. Сучасні інструменти — забудьте про FTP

10. Найнедооціненіший модуль: Admin Toolbar

Встановлюйте Admin Toolbar на кожен сайт. Він перетворює стандартне адмін-меню з жахливого на терпиме.

11. Twig — це круто. Перестаньте використовувати PHP у шаблонах

Погано (стиль Drupal 7):

Добре:

{{ some_variable }}

Також вивчіть without, filter, модуль Twig Tweak і команду drush twig:debug.

12. Views — це не панацея

Views дуже потужний, але іноді простий EntityQuery або кастомний контролер швидший і чистіший.

13. Завжди використовуйте строгу типізацію і сучасний PHP

У кожному кастомному модулі та класі:

declare(strict_types=1);

Drupal 10+ чудово працює з PHP 8.2+, атрибутами, enum та readonly-класами.

14. Спільнота — найкраща частина Drupal

Фінальна думка

Drupal не складний. Він просто інший. Як тільки ви приймете його філософію (сутності, dependency injection, управління конфігурацією, хуки/плагіни/сервіси), він стає однією з найпотужніших і найгнучкіших систем у світі.


Написано розробником Drupal, який обпікся на кожній з перелічених помилок — щоб ви не повторювали їх.