dennis00 / denpal-distro
Drupal 8 的项目模板,包含默认模块
Requires
- composer/installers: ^1.2
- cweagans/composer-patches: ~1.0
- drupal-composer/drupal-scaffold: ^2.2
- drupal/config_installer: 1.x-dev
- drupal/console: ~1.0
- drupal/core: ~8.0
- drupal/poll: 1.2
- drupal/purge: ^3.0
- drupal/redis: ^1.0
- drupal/search_api: ^1.6
- drupal/search_api_solr: ^1.2
- drupal/varnish_purge: ^1.10
- drush/drush: ~8.0
Requires (Dev)
- behat/mink: ~1.7
- behat/mink-goutte-driver: ~1.2
- jcalderonzumba/gastonjs: ~1.0.2
- jcalderonzumba/mink-phantomjs-driver: ~0.3.1
- mikey179/vfsstream: ~1.2
- phpunit/phpunit: ~4.8
- symfony/css-selector: ~2.8
Conflicts
README
amazee.io 上 Drupal 项目的 Composer 模板
此项目模板应提供使用 Composer 管理您的站点依赖项的起点。它基于 原始 Drupal Composer 模板,但包含在 amazee.io 上运行所需的所有内容(无论是本地开发环境还是 amazee.io 服务器。)
要求
本地环境设置
- 检出项目仓库并确认路径在 docker 的文件共享配置中 - https://docs.dockerd.com.cn/docker-for-mac/#file-sharing
git clone https://github.com/amazeeio/drupal-example.git drupal8-lagoon && cd $_
-
确保主机机器上没有运行在端口 80 的任何东西(如 Web 服务器),然后运行
pygmy up
-
构建并启动构建镜像
docker-compose up -d
docker-compose exec cli composer install
- 访问新站点 @
http://drupal-example.docker.amazee.io
- 如果任何步骤失败,您可以从任何点重新运行,从头开始再次运行将只是重新确认更改。
模板做什么?
安装给定的 composer.json
时,会处理一些任务
- Drupal 将安装在
web
-目录中。 - 实现了自动加载器,以使用
vendor/autoload.php
中的生成 composer 自动加载器,而不是 Drupal 提供的自动加载器(web/vendor/autoload.php
)。 - 模块(类型为
drupal-module
的包)将放置在web/modules/contrib/
- 主题(类型为
drupal-theme
的包)将放置在web/themes/contrib/
- 配置文件(类型为
drupal-profile
的包)将放置在web/profiles/contrib/
- 创建
web/sites/default/files
-目录。 - 在本地安装最新版本的 drush,用于在
vendor/bin/drush
中使用。 - 在本地安装最新版本的 Drupal Console,用于在
vendor/bin/drupal
中使用。
更新 Drupal 核心
此项目将尝试保持所有 Drupal 核心文件都是最新的;项目 drupal-composer/drupal-scaffold 用于确保每次 drupal/core 更新时,您的支架文件都得到更新。如果您自定义了任何“支架”文件(通常是 .htaccess),那么在 Drupal 核心新版本中更新了您修改的文件时,您可能需要合并冲突。
按照以下步骤更新您的核心文件。
- 运行
composer update drupal/core --with-dependencies
以更新 Drupal 核心及其依赖项。 - 运行
git diff
以确定是否有任何支架文件已更改。检查文件以查找任何更改,并将任何自定义修改恢复到.htaccess
或robots.txt
。 - 将所有内容一起提交,以便在检出分支或运行
git bisect
时,web
与core
保持同步。 - 如果在步骤2中出现非平凡的冲突,您可能希望在单独的分支上执行以下步骤,并使用
git merge
将更新后的核心文件与您的自定义文件合并。这有助于使用kdiff3之类的三向合并工具。如果您的更改很简单,这种设置不是必需的;将所有修改保留在文件的开始或结束部分是一种保持合并容易的好策略。
常见问题解答
我应该提交下载的贡献模块吗?
Composer建议不这样做。他们提供反对的理由,但也提供了如果项目决定这样做时的解决方案。
我应该提交脚手架文件吗?
drupal-scaffold插件可以将脚手架文件(如index.php、update.php等)下载到项目的web/目录。如果您没有自定义这些文件,可以选择不将这些文件提交到版本控制系统(例如git)。如果您的项目是这样的,自动在每次安装或更新项目后运行drupal-scaffold插件可能很方便。您可以通过在composer.json中将@drupal-scaffold
注册为安装后和更新后命令来实现这一点。
"scripts": { "drupal-scaffold": "DrupalComposer\\DrupalScaffold\\Plugin::scaffold", "post-install-cmd": [ "@drupal-scaffold", "..." ], "post-update-cmd": [ "@drupal-scaffold", "..." ] },
如何应用下载的模块的补丁?
如果您需要应用补丁(根据要修改的项目,pull request通常是更好的解决方案),您可以使用composer-patches插件。
要将补丁添加到drupal模块foobar,在composer.json的extra部分插入patches部分
"extra": { "patches": { "drupal/foobar": { "Patch description": "URL to patch" } } }