floe / drupal-project
Composer 模板,用于在 Pantheon 上托管并使用 Docker 进行本地开发环境的 Drupal 8 项目
Requires
- composer/installers: ^1.0.20
- cweagans/composer-patches: ~1.0
- drupal-composer/drupal-scaffold: ^2.0.1
- drupal/console: ~1.0
- drupal/core: ~8.0
- 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
This package is not auto-updated.
Last update: 2020-06-12 19:29:35 UTC
README
⚠️ 实验性项目
此项目模板应提供以下启动
- 使用 Docker 管理您的本地开发环境
- 使用 Composer 管理您的站点依赖项
- 在 Pantheon 上托管您的站点
使用方法
首先您需要安装 docker 和 docker-compose。如果在 OS X 上使用,请安装 GNU coreutils 或其他 realpath
命令的实现。
之后您可以创建项目
docker run --rm -v $(pwd):/var/www/html -v $HOME/.composer/cache:/root/.composer/cache -e COMPOSER_ALLOW_SUPERUSER=1 -e USER_UID=$(id -u) -e USER_GUID=$(id -g) drupaldocker/php:7-cli composer create-project --stability dev --ansi floe/drupal-project some-dir 8.x
使用 docker-compose
在配置的 Docker 容器中运行应用程序
docker-compose run php-cli bash
:进入 shell 执行 CLI 应用程序(Composer、Drush、Drupal Console 等)docker-compose up web
:在 Docker 容器中启动 Web 服务器,可通过 https:// 访问。
在 bin
目录中提供了运行在 Docker 容器中最常用命令的别名。建议在处理项目时将 bin
添加到您的 PATH
中。推荐的方法是使用 direnv
查看 docker-compose
文件以获取配置容器的详细信息。
上述 create-project
命令将所有文件的所有权传递给创建的项目。您应该创建一个新的 Git 仓库,更新 README.me 和 composer.json 文件,然后提交 .gitignore 文件排除的所有文件。
该模板做什么?
- 在
docker-compose.yml
文件中定义了用于在项目上工作的 Docker 容器。 - 在
bin
目录中提供了运行在 Docker 容器中最常用命令的别名。 - 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/
- 创建
settings.php
和services.yml
的默认可写版本。 - 创建
sites/default/files
目录。 - 在本地安装最新版本的 drush,以便在
vendor/bin/drush
中使用。 - 在本地安装最新版本的 DrupalConsole,以便在
vendor/bin/drupal
中使用。
更新 Drupal 核心版本
本项目将尝试保持您的Drupal Core文件始终更新;项目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-patches插件。
要将补丁添加到drupal模块foobar,在composer.json的extra部分插入patches部分。
"extra": { "patches": { "drupal/foobar": { "Patch description": "URL to patch" } } }