drupaljedi / project
为使用composer的Drupal 8项目提供的模板
Requires
- php: >=7.1.0
- ext-mcrypt: *
- composer/installers: ^1.2
- cweagans/composer-patches: ^1.6
- drupal-composer/drupal-scaffold: ^2.2
- drupal/admin_toolbar: ^1.19
- drupal/coffee: ^1.0@beta
- drupal/core: ~8.0
- webflo/drupal-finder: ^0|^1.0.0
Requires (Dev)
- drupal/devel: ^1.0
- drush/drush: ^8.1
Conflicts
This package is auto-updated.
Last update: 2024-09-12 04:40:20 UTC
README
此项目模板应该可以为使用Composer管理网站依赖提供一个起点。
用法
- 安装composer.
- 创建项目:
composer create-project drupaljedi/project project_name --stability dev --no-interaction
- 执行
./tools/scripts/before-install.sh project_name
命令以准备项目安装。 - 运行docker容器:
cd provision/local && docker-compose up -d && cd -
- 安装Drupal:
./tools/scripts/install.sh
使用 composer require ...
你可以下载新的依赖到你的安装中。
cd project_name
composer require drupal/be_sure
composer create-project
命令将所有文件的拥有权传递给创建的项目。你应该创建一个新的git仓库,并将所有由 .gitignore 文件排除的文件提交。
模板做了什么?
在安装指定的 composer.json
时,会处理一些任务
- Drupal将被安装在
docroot
-目录。 - 实现了自动加载器,使用
vendor/autoload.php
中的生成的composer自动加载器,而不是Drupal提供的自动加载器(drupal/vendor/autoload.php
)。 - 模块(类型为
drupal-module
的包)将被放置在docroot/modules/contrib/
- 主题(类型为
drupal-theme
的包)将被放置在docroot/themes/contrib/
- 配置文件(类型为
drupal-profile
的包)将被放置在docroot/profiles/contrib/
更新Drupal核心
此项目将尝试保持所有Drupal核心文件都是最新的;使用drupal-composer/drupal-scaffold 项目确保每次更新 drupal/core 时,你的脚手架文件都会更新。如果你自定义了任何“脚手架”文件(通常是 .htaccess),那么在Drupal核心的新版本中更新你修改的文件时,你可能需要解决合并冲突。
按照以下步骤更新你的核心文件。
- 运行
composer update
来更新Drupal核心、contrib模块及其依赖。 - 运行
git diff
以确定是否有任何脚手架文件已更改。检查文件以查找任何更改,并将对.htaccess
或robots.txt
的任何自定义更改恢复。 - 将所有内容一起提交到一个单独的提交中,以便在检出分支或运行
git bisect
时,docroot
与core
保持同步。
常见问题解答
我应该提交下载的contrib模块吗?
Composer建议不要。他们提供了反对的理由,但也为如果项目决定这样做提供了解决方案。
我应该提交脚手架文件吗?
drupal-scaffold 插件可以将脚手架文件(如index.php、update.php等)下载到项目的docroot/目录。如果你没有自定义这些文件,你可以选择不将这些文件检入你的版本控制系统(例如git)。如果你的项目是这样的,在每次安装或更新项目后自动运行drupal-scaffold插件可能很方便。你可以通过在composer.json中将@drupal-scaffold
注册为post-install和post-update命令来实现这一点。
"scripts": { "drupal-scaffold": "DrupalComposer\\DrupalScaffold\\Plugin::scaffold", "post-install-cmd": [ "@drupal-scaffold", "..." ], "post-update-cmd": [ "@drupal-scaffold", "..." ] },
我如何应用补丁到下载的模块?
如果您需要应用补丁(根据要修改的项目,提交一个拉取请求通常是一个更好的解决方案),您可以使用 composer-patches 插件来操作。
要将补丁添加到 foobar Drupal 模块中,请在 composer.json 的 extra 部分中插入 patches 部分
"extra": { "patches": { "drupal/foobar": { "Patch description": "URL to patch" } } }