pantheon-systems/example-wordpress-composer

此包的最新版本(2.4.5)没有可用的许可信息。

2.4.5 2024-03-11 18:53 UTC

This package is auto-updated.

Last update: 2024-09-23 21:15:11 UTC


README

CircleCI Actively Maintained

此存储库是一个参考实现和现代WordPress工作流程的起点,该工作流程利用Composer、持续集成(CI)、自动测试和Pantheon。尽管这是一个好的起点,但您仍需要自定义并维护您项目的CI/测试设置。

此存储库应由Terminus Build Tools插件一次性复制,但也可以用作模板。它不应直接克隆或分支。

Terminus Build Tools插件将构建一个新的项目,包括

  • A Git仓库
  • A免费Pantheon沙箱站点
  • 持续集成配置/凭证设置

有关创建新项目的更多详细信息和说明,请参阅Terminus Build Tools插件

重要文件和目录

/web

由于在pantheon.yml中的配置,Pantheon将从/web子目录中提供站点服务。这对于基于Composer的工作流程是必要的。将您的网站放在此子目录中还允许将测试、脚本以及与您的项目相关的其他文件存储在您的仓库中,而不会污染您的Web文档根目录或从Pantheon公开访问。如果它是公开的,它们可能仍然可以从您的版本控制项目中访问。有关详细信息,请参阅pantheon.yml文档。

/web/wp

即使在/web目录中,您也可能注意到其他目录和文件的位置与默认WordPress安装不同。WordPress允许将WordPress核心安装在它自己的目录中,这对于使用Composer安装WordPress是必要的。

有关关键设置,如必须更新的WP_SITEURL,请参阅/web/wp-config.php。仓库中目录的整体布局灵感来源于,但并不完全对应于Bedrock

composer.json

此项目使用Composer管理第三方PHP依赖。

应使用composer.jsonrequire部分来指定您的Web项目需要的任何依赖,即使是那些可能在非生产环境中使用的依赖。所有require中的依赖都将推送到Pantheon。

应使用require-dev部分来指定不是Web应用的一部分但构建或测试项目所必需的依赖。一些例子是php_codesnifferphpunit。开发依赖项将不会部署到Pantheon。

如果您只是在GitHub上浏览此存储库,您可能看不到上面提到的某些目录,例如web/wp。这是因为WordPress核心及其插件是通过Composer安装的,并且在.gitignore文件中被忽略。

本项目使用自定义的,Pantheon 的 WordPress Composer 版本作为 WordPress 核心的源。

第三方 WordPress 依赖项,例如插件和主题,通过 composer.json 文件添加到项目中。composer.lock 文件记录了依赖项的确切版本。Composer installer-paths 用于确保 WordPress 依赖项被下载到相应的目录。

非 WordPress 依赖项下载到 /vendor 目录。

.ci

.ci 目录存储了在持续集成上运行的脚本。特定提供者的配置文件,例如 .circle/config.yml.gitlab-ci.yml,会使用这些脚本。

根据其功能,脚本被组织到 .ci 的子目录中:builddeploytest

构建脚本 .ci/build

构建适合部署的工件步骤。根据需要,您可以在此处添加其他构建脚本,例如安装 Node 依赖项。

  • .ci/build/php 使用 Composer 安装 PHP 依赖项

构建脚本 .ci/deploy

用于简化代码部署到 Pantheon 的脚本。

  • .ci/deploy/pantheon/create-multidev 为除默认 Git 分支之外的其他分支创建一个新的 Pantheon multidev 环境
  • .ci/deploy/pantheon/dev-multidev 根据Git分支将构建的工件部署到 Pantheon 的 dev 或 multidev 环境

自动化测试脚本 .ci/tests

根据测试需求,您可以在此处添加或删除脚本。

GitHub Actions 工作流程 .ci/.github

请将此文件夹复制到根目录的 .github 文件夹中以启用 GitHub Actions。还需要向 GitHub Actions 配置中添加一些秘密。

静态测试 .ci/test/statictests/unit 静态测试在不执行代码的情况下分析代码。它擅长检测语法错误,但不擅长检测功能。

  • .ci/test/static/run 运行与 WordPress 编码标准兼容的 PHP CodeSniffer,PHP 单元测试和 PHP 语法检查
  • tests/unit/bootstrap.php 引导 Composer 自动加载器
  • tests/unit/TestAssert.php 一个单元测试示例。需要在 tests/unit 中创建特定于项目的测试文件。

视觉回归测试 .ci/test/visual-regression 视觉回归测试使用无头浏览器对网页进行截图并比较它们的视觉差异。

  • .ci/test/visual-regression/run 运行 BackstopJS 视觉回归测试。
  • .ci/test/visual-regression/backstopConfig.js BackstopJS 配置文件。在此处设置的设置需要根据您的项目进行更新。例如,pathsToTest 变量确定要测试的 URL。

GitHub Actions

如果您需要为现有项目启用 GitHub Actions,您应将 .ci/.github 复制到 .github,然后向 GitHub Actions 配置中添加以下秘密

  • ADMIN_EMAIL
  • ADMIN_PASSWORD
  • ADMIN_USERNAME
  • TERMINUS_TOKEN
  • TERMINUS_SITE
  • SSH_PRIVATE_KEY
  • GH_TOKEN

使用 Lando 在本地工作

要开始使用Lando进行本地开发,请完成以下一次性步骤。请注意,Lando是一个独立产品,并由Pantheon支持。如需进一步帮助,请参阅Lando文档

  • 如果尚未安装,请安装Lando
  • 从GitHub(或GitLab或BitBucket)本地克隆您的项目仓库。
  • 根据WordPress配方,手动创建一个包含您首选配置的.lando.yml文件。
  • 运行lando start以启动Lando。
    • 保存本地站点URL。它应该类似于https://<PROJECT_NAME>.lndo.site
  • 运行lando composer install --no-ansi --no-interaction --optimize-autoloader --no-progress下载依赖项。
  • 运行lando pull --code=none下载来自Pantheon的媒体文件和数据库。
  • 访问上面保存的本地站点URL。

您现在应该能够在本地编辑您的站点。上述步骤不需要在后续启动时完成。您可以使用lando stop停止Lando,然后使用lando start再次启动它。

警告:不要在Lando和Pantheon之间直接推送/拉取代码。所有代码都应推送到GitHub,并通过持续集成服务(如CircleCI)部署到Pantheon。

Composer、Terminus和wp-cli命令应在Lando中而不是在宿主机器上运行。这通过在所需命令前加上lando来实现。例如,在更改composer.json后,运行lando composer update而不是composer update

重新启用自动化

自2022年12月5日起,运行每日检查composer更新的自动化已禁用。Build Tools用户可以通过在.circleci/config.yml中取消注释scheduled_update_check来重新启用自动化以检查composer更新。