Источник - https://github.com/drupal-composer/drupal-project
Это шаблон проекта, который предоставляет стартовый набор для управления зависимостями вашего Drupal сайта с помощью Composer.
Если вы хотите узнать, как использовать его в качестве замены для Drush Make, посетите документацию на drupal.org.
Использование
Для начала необходимо установить Composer.
После этого вы можете создать проект:
composer create-project drupal-composer/drupal-project:8.x-dev some-dir --no-interaction
где some-dir - папка установки. Для установки в текущую директорию можно просто поставить точку.
С composer require ... вы можете загружать новые зависимости в вашу установку.
cd some-dir
composer require drupal/devel:~1.0
Команда composer create-project передает право собственности на все файлы создаваемому проекту. Вы должны создать новый репозиторий git и зафиксировать все файлы, кроме тех, которые перечислены в .gitignore.
Что делает шаблон?
При установке данного файла composer.json выполняются следующие задачи:
- Drupal будет установлен в web каталоге.
- Автозагрузчик реализован для использования сгенерированного composer autoloader в 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
Обновление ядра Drupal
Этот проект будет пытаться поддерживать все ваши файлы ядра Drupal в актуальном состоянии; проект drupal-composer/drupal-scaffold используется для обеспечения обновления ваших scaffold-файлов при каждом обновлении drupal/core. Если вы настраиваете какой-либо из файлов "scaffolding" (обычно .htaccess), вам может потребоваться объединить конфликты, если какой-либо из ваших измененных файлов будет обновлен в новом выпуске ядра Drupal.
Следуйте инструкциям ниже, чтобы обновить ваши основные файлы:
- Запустите composer update drupal/core webflo/drupal-core-require-dev "symfony/*" --with-dependencies для обновления Drupal Core и его зависимостей.
- Запустите git diff чтобы определить, изменились ли какие-либо файлы скаффолдинга. Проверьте файлы на наличие изменений и восстановите все настройки в .htaccess или robots.txt .
- Зафиксируйте все вместе в одном коммите, чтобы web оставался синхронизированным с ядром при проверке веток или запуске git bisect .
- Если на шаге 2 возникают нетривиальные конфликты, вы можете выполнить эти шаги в ветке и использовать git merge для объединения обновленных файлов ядра с вашими настроенными файлами. Это облегчает использование трехстороннего инструмента слияния, такого как kdiff3. Эта настройка не требуется, если ваши изменения просты; Хранение всех ваших изменений в начале или конце файла - хорошая стратегия, позволяющая легко выполнять слияния.
Создать composer.json из существующего проекта
С помощью Drush-расширения «Composer Generate» теперь вы можете создать базовый файл composer.json из существующего проекта. Обратите внимание, что созданный файл composer.json может отличаться от файла этого проекта.
Часто задаваемые вопросы
Должен ли я фиксировать загружаемые контриб модули?
Композер рекомендует этого не делать. Они приводят аргументы этого не делать, но также и решения, если это все таки понадобится.
Должен ли я фиксировать скаффолд файлы?
Плагин drupal-scaffold может загружать скаффолд файлы (такие как index.php, update.php, …) в каталог web/ вашего проекта. Если вы не изменяли эти файлы, вы можете не регистрировать их в своей системе контроля версий (например, git). Если же вы все таки настраивали эти файлы, может быть удобно автоматически запускать плагин drupal-scaffold после каждой установки или обновления вашего проекта. Вы можете добиться этого, зарегистрировав @composer drupal:scaffold качестве команды post-install и post-update в вашем composer.json:
"scripts": {
"post-install-cmd": [
"@composer drupal:scaffold",
"..."
],
"post-update-cmd": [
"@composer drupal:scaffold",
"..."
]
},
Как я могу применить патчи к загруженным модулям?
Если вам необходимо применить исправления (в зависимости от изменяемого проекта, pull request часто является лучшим решением), вы можете сделать это с помощью плагина composer-patches.
Чтобы добавить патч к модулю drupal, вставьте раздел патчей в дополнительный раздел composer.json:
"extra": {
"patches": {
"drupal/foobar": {
"Patch description": "URL or local path to patch"
}
}
}
Как мне перейти с packagist.drupal-composer.org на packages.drupal.org?
Следуйте инструкциям в документации на drupal.org.
Как мне указать версию PHP?
Этот проект поддерживает PHP 5.6 как минимальную версию (см. Требования Drupal 8 PHP ), однако возможно, что composer update может запросить некоторый пакет, который затем потребует PHP 7+.
Чтобы избежать этого, вы можете добавить этот код, указав версию PHP, которую вы хотите использовать в разделе config composer.json:
"config": {
"sort-packages": true,
"platform": {
"php": "5.6.40"
}
},