Composer Drupal Project — шаблон проекта предоставляет стартовый набор для управления зависимостями сайта при помощи Composer.
Данный способ установки Drupal является альтернативой установки Drupal из архива, скаченного на drupal.org.
¶Что предоставляет данный шаблон
Шаблон предоставляет свой composer.json файл, который берет на себя задачи:
- Ядро Drupal будет установлено в
web
директорию. - Будет использоваться сгенерированный Composer'ом
vendor/autoload.php
(автолоадер зависимостей), вместо поставляемого Drupal/web/vendor/autoload.php
. - Модули (пакеты типа
drupal-module
) будут установлены вweb/modules/contrib
. - Темы оформления (пакеты типа
drupal-theme
) будут установлены вweb/themes/contrib
. -
Установочные профили (пакеты типа
drupal-profile
) будут установлены вweb/profiles/contrib
. - Будут созданы со всеми необходимыми правами файлы по умолчанию settings.php и
services.yml
. - Будет создана
web/sites/default/files
. - Последняя версия Drush будет установлена с сайтом по пути
vendor/bin/drush
. - Последняя версия DrupalConsole будет установлена с сайтом по пути
vendor/bin/drupal
. - Будут созданы переменные окружения основанные на вашем
.env
файле. Для примера смотрите .env.example.
¶Часто задаваемые вопросы
¶Должен ли я коммитить в репозиторий проекта контриб модули которые я скачал?
Рекомендация Composer — нет. Они представляют аргументацию против данного подхода, а также решения, если все же решите так делать.
¶Должен ли я коммитить в репозиторий проекта скафолд файлы?
Плагин drupal-scaffold (поставляется с данным проектом) может загружать скафолд-файлы (например index.php, update.php, robots.txt и т.д. - те что лежать не в папке core в легаси варианте с архивом) в web папку вашего проекта. Если вы их не модифицируете, рекомендуется исключить данные файлы из вашего репозитория проекта. Если вам необходимо чтобы данный плагин запускался автоматически после каждой установки или обновления проекта, вы можете зарегистрировать @composer drupal:scaffold
команду на post-install и post-update события в вашем composer.json
"scripts": {
"post-install-cmd": [
"@composer drupal:scaffold",
"..."
],
"post-update-cmd": [
"@composer drupal:scaffold",
"..."
]
},
¶Как я могу применять патчи на загружаемые модули?
Если вам необходимо применять патчи, вы можете это сделать при помощи плагина composer-patches (поставляется с шаблоном).
Для того чтобы добавить патч для Drupal модуля "foobar", добавьте секцию "patches" в раздел "extra" вашего composer.json файла:
"extra": {
"patches": {
"drupal/foobar": {
"Patch description": "URL or local path to patch"
}
}
}
¶Как мне указать версию PHP?
Данный проект поддерживает PHP 5.6 как минимально требуемую версию для запуска, тем не менее вы можете скачать зависимости которые потребуют PHP 7+.
Для того чтобы предотвратить это, укажите конкретную версию PHP в config разделе composer.json:
"config": {
"sort-packages": true,
"platform": {
"php": "5.6.40"
}
},
¶Смотрите также
- Руководство по установке Drupal
- drupal/recommended-project — рекомендуемый шаблон для всех сайтов.
- drupal/legacy-project — альтернативный шаблон проекта, структура которого использовалась до релиза Drupal 8.8.0.
- Composer
¶Ссылки
- GitHub репозиторий проекта (англ.)
- Drupal 8: Два варианта установки ядра, Niklan, 2018
- Миграция с drupal-composer/drupal-project на drupal/recommended-project, Niklan, 2020