thinkshout/drupal-project

ThinkShout 为 Drupal 8 项目提供的 composer 项目模板

安装: 83

依赖者: 0

建议者: 0

安全: 0

星标: 5

关注者: 5

分支: 941

开放问题: 1

类型:项目

dev-8.x-pantheon 2022-03-07 21:42 UTC

README

您不应再使用此仓库创建新项目。请从 https://library.thinkshoutlabs.com/articles/new-drupal-site-setup 开始。

:::::::::::::::::::::: 以下代码可自定义 :::::::::::::::::::::

开发设置

这是一个使用 robo taskrunner 构建的 Drupal 9 网站。使用 git clone 将此仓库直接克隆到 ~/Sites 目录中,然后即可开始。

此网站使用 PHP 7.4:请确保您的本地环境正在运行 PHP 7.4(您可以使用 php --version 命令进行验证)。

首先,您需要 安装 composer

brew install composer

接下来,如果还没有,将 ./vendor/bin 添加到您的 PATH 变量中,位于 PATH 变量的开头。

使用 echo $PATH 检查。

使用 export PATH=./vendor/bin:$PATH 更新。

您还可以通过编辑您的 ~/.zshrc 文件来永久更改此设置: export PATH="./vendor/bin:..."

初始构建(现有仓库)-- 只需执行一次

在您的 ~/Sites 目录中运行

git clone git@github.com:thinkshout/new-project-name.git
cd new-project-name
composer install

构建

运行 robo configure 命令将读取 .env.dist、cli 参数和您的本地环境(DEFAULT_PRESSFLOW_SETTINGS),以生成 .env 文件。此文件将用于设置数据库和其他标准配置选项。如果没有提供数据库名称,将使用项目名称和 git 分支名称。如果没有提供数据库名称,将使用项目名称和 git 分支名称。请注意,传递给 robo configure 的参数可以包括:--db-pass;--db-user;--db-name;--db-host。

robo configure
# Use an alternate DB password
robo configure --db-pass=<YOUR LOCAL DATABASE PASSWORD>
# Use an alternate DB name
robo configure --db-name=<YOUR DATABASE NAME>
# Use an alternate release/production/live branch name
robo configure --prod-branch=<YOUR BRANCH NAME>

如果您想本地设置 DEFAULT_PRESSFLOW_SETTINGS,其结构如下

DEFAULT_PRESSFLOW_SETTINGS_={"databases":{"default":{"default":{"driver":"mysql","prefix":"","database":"","username":"root","password":"root","host":"localhost","port":3306}}},"conf":{"pressflow_smart_start":true,"pantheon_binding":null,"pantheon_site_uuid":null,"pantheon_environment":"local","pantheon_tier":"local","pantheon_index_host":"localhost","pantheon_index_port":8983,"redis_client_host":"localhost","redis_client_port":6379,"redis_client_password":"","file_public_path":"sites\/default\/files","file_private_path":"sites\/default\/files\/private","file_directory_path":"site\/default\/files","file_temporary_path":"\/tmp","file_directory_temp":"\/tmp","css_gzip_compression":false,"js_gzip_compression":false,"page_compression":false},"hash_salt":"","config_directory_name":"sites\/default\/config","drupal_hash_salt":""}

配置 Drush

Drush 选项可以在 .env 文件中进行配置。例如,为了设置 drush uli 等命令的默认 uri,添加以下内容

DRUSH_OPTIONS_URI="https://web.new-project-name.localhost"

Drush 配置文档

安装 -- 定期执行(尤其是在更改分支后)

运行 robo install 命令将运行 composer install 以添加所有必需的依赖项,然后安装网站并导入导出的配置。

robo install

提交代码 -- 定期执行

每次开始新任务时,您应该从 production 分支创建一个带有 github 工作项编号和简短描述分支目标的分支

git checkout production
git pull
git checkout -b issue-123-short-description

作为最佳实践,您现在应该重新安装

robo install

现在开始修改您的更改。确保配置更改已保存在代码库中。如果您进行配置更改并且它似乎没有影响您的代码库(即它没有对 config 文件夹进行任何更改),请运行 drush cex

一旦您对更改感到满意,从您的分支创建一个 pull request 到 github 中的 develop 分支,并在 PR 中标记技术负责人或 PM。同时,将您的工作项移动到 Zenhub 上的“技术审查”列。然后,有人将审查 PR 以进行潜在改进或修复,并将其合并,并将工作项移动到 Zenhub 上的“准备部署”列。此工作项现在已准备好与下一个版本一起发布。

测试 -- 需要时执行

测试在 CircleCI 上自动运行,但也可以使用以下命令在本地运行

robo test

我们还正在对自定义模块和主题目录运行Drupal代码检查器。如果你提交了一个包含一些编码标准错误的PR,你的构建在circle上将会失败。你可以通过运行以下命令在你的本地站点机器上运行相同的代码检查器:

composer code-sniff

如果你有错误,你可以运行此命令来自动修复大多数这些错误:

composer code-sniff-fix

该网站还在PR阶段使用backstopjs进行视觉回归测试,并在夜间在develop multidev上运行。关于backstopjs的更多信息,包括如何在本地运行,可以在.ci/test/visual-regression的README中找到。

如果你需要应用补丁(根据要修改的项目,拉取请求通常是一个更好的解决方案),你可以使用composer-patches插件。

要将补丁添加到drupal模块"foobar",请在composer.json的extra部分中插入patches部分

"extra": {
    "patches": {
        "drupal/foobar": {
            "Patch description": "URL to patch"
        }
    }
}

更新Drupal核心

此项目将尝试保持所有Drupal核心文件的最新状态;项目drupal-composer/drupal-scaffold用于确保每次更新drupal/core时都会更新你的脚手架文件。如果你自定义了任何“脚手架”文件(通常为.htaccess),如果你修改的任何文件在新版本的Drupal核心中更新,你可能需要合并冲突。

按照以下步骤更新你的核心文件。

  1. 运行composer update drupal/core "drupal/core-*" --with-all-dependencies以更新Drupal核心及其依赖项。