mediacurrent/drupal-project

适用于使用Composer的Drupal项目的项目模板


README

Open in Gitpod

文档

有关Ignite CMS的完整文档,请参阅https://mediacurrent.gitbook.io/ignite-cms/

安装与本地设置

1)检出代码库

Ignite包可在推荐的Drupal composer模板的修改版本中克隆。

首先,克隆公共Bitbucket仓库
git clone git@bitbucket.org:mediacurrent/drupal-project.git shortcode_project
切换到项目文件夹,并运行以下命令以初始化代码库。
cd shortcode_project
composer install
rm web/sites/default/.gitignore

这会运行composer install。由于这是第一次运行,因此它是composer update,并计算所有依赖项。您应该准备好启动本地Drupal站点...

2)启动本地环境

任何本地开发工具都应该可以工作,以下步骤适用于DDEV。

配置DDEV-Local
  • 非交互式配置。项目名称必须是字母数字的,或者是带连字符的。 $ ddev config --docroot=web --project-name="example" --project-type=drupal9 --webserver-type="nginx-fpm" --create-docroot
  • 交互式配置替代方案 $ ddev config
启动DDEV
  • $ ddev start
    • 域名显示在ddev start的输出中,也可以通过ddev describe访问。
初始化项目
  • $ ./scripts/hobson project:init example.ddev.site
  • $ ddev restart <= 此命令确保config/config.yml已就位并且已设置域名。
  • 要继续项目开发,请转到下一节:“配置安装配置文件”。
开发设置
  • 文件 ./web/sites/default/settings.local.php 包含用于自定义开发环境的设置。这禁用了Drupal的内置缓存,并额外激活了 sites/development.services.yml 以进一步自定义开发环境。
  • 有关在本地开发中禁用缓存的更多详细信息,请访问:https://www.drupal.org/node/2598914
您应该知道的Drush命令
  • 使用 ddev drush uli 登录您的本地安装。
  • ddev drush cr 清除Drupal缓存
  • ddev drush cex 导出配置更改
  • ddev drush cim 导入配置更改

附加信息

开发工作流程

  • 使用Composer添加第三方依赖项和补丁。
  • 将自定义模块、主题等写入./web/目录。
  • 运行 ddev drush cex 将Drupal配置导出到config/sync文件夹。
  • 在启动新工单之前运行 $ ./scripts/build.sh。再次运行build.sh以测试在提交pull请求之前完成的工作。

测试

运行编码标准测试。

注意 在模块位于 "web/modules/custom" 目录中之前,测试将不会运行。

  • phpcs - ./tests/code-sniffer.sh ./web
  • phpcbf - ./tests/code-fixer.sh ./web

运行Drupal-check以进行自定义开发,以检查10个就绪性。

注意 检查将不会在模块位于 "web/modules/custom" 目录之前运行。

  • ./vendor/mediacurrent/ci-tests/tests/drupal-check.sh web

运行 BDD 测试。

  • ddev . tests/behat/behat-run.sh https://example.ddev.site

运行 phpunit 测试。

  • 单元测试 - composer robo test:phpunit-tests
  • 内核和功能测试 - ddev composer robo test:phpunit-tests -- --filter="/Kernel|Functional/"

运行 VRT。

  • 在 tests/visual-regression/README.md 中查看文档。
  • 从 "使用 Docker 快速开始" 开始。

运行无障碍测试。

注意 需要 pa11y

  • ./tests/pa11y/pa11y-review.sh https://example.ddev.site

OWASP Zap 基线扫描。

  • docker run --net=ddev_default -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-weekly zap-baseline.py -d -c owasp-zap.conf -p owasp-zap-progress.json -t https://ddev<项目名称>-web

GrumPHP

  • GrumPHP 将在即将提交的代码上运行一些测试。使用文件 grumphp.yml 进行配置。
    • 编码规范
    • 拒绝提交包含调试关键词的列表
    • json 和 yaml 代码检查
    • Composer 锁文件验证
    • Enlightn 安全检查器

如何应用下载的模块的补丁?

如果您需要应用补丁(根据要修改的项目,通常 pull request 是更好的解决方案),您可以使用 composer-patches 插件。

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

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

如何指定 PHP 版本?

本项目支持 PHP 8.1 作为最低版本(请参阅 Drupal 9 的环境要求),然而,可能 composer update 会升级某些包,这将要求 PHP 8.1+。

要防止这种情况,您可以在 composer.json 的 config 部分中添加以下代码来指定您要使用的 PHP 版本

"config": {
    "sort-packages": true,
    "platform": {
        "php": "8.1"
    }
},

附加链接