pantheon-systems / example-wordpress-composer
Requires
- php: >=7.3
- composer/installers: ^1.3.0
- pantheon-systems/quicksilver-pushback: ^2
- pantheon-systems/wordpress-composer: *
- roots/wp-password-bcrypt: ^1.0.0
- vlucas/phpdotenv: ^3.1.0
- wpackagist-plugin/lh-hsts: ^1.24
- wpackagist-plugin/pantheon-advanced-page-cache: >=0.3.0
- wpackagist-plugin/wp-native-php-sessions: >=0.6.9
- wpackagist-theme/twentynineteen: ^1.2
Requires (Dev)
- brain/monkey: ^2.2.0
- dealerdirect/phpcodesniffer-composer-installer: ^0.7
- phpunit/phpunit: ^7.5.1
- roave/security-advisories: dev-master
- squizlabs/php_codesniffer: ^3.4.0
- wp-coding-standards/wpcs: ^1.2.1
- dev-master
- 2.4.5
- 2.4.4
- 2.4.3
- 2.4.2
- 2.4.1
- 2.4.0
- 2.3.0
- 2.2.1
- 2.2.0
- 2.1.0
- 2.0.0
- 1.0.1
- dev-rename-catalog-info-20240923
- dev-add-catalog-info-20240910
- dev-LOPS-2012
- dev-clu-2023-01-05-00-04
- dev-clu-2022-12-31-00-04
- dev-clu-2022-12-09-00-04
- dev-clu-2022-12-08-00-04
- dev-clu-2022-12-06-00-03
- dev-bugs-5332
- dev-clu-2022-12-03-00-04
- dev-clu-2022-12-01-00-03
- dev-clu-2022-10-26-00-03
- dev-clu-2022-10-25-00-04
- dev-clu-2022-10-20-00-03
- dev-clu-2022-10-13-00-03
- dev-clu-2022-10-07-00-04
- dev-clu-2022-09-24-00-03
- dev-clu-2022-09-22-00-04
- dev-clu-2022-08-29-00-03
- dev-CdrMarks-patch-1
- dev-clu-2022-08-07-00-03
- dev-clu-2022-07-22-00-03
- dev-clu-2022-07-09-00-02
- dev-clu-2022-07-08-00-02
- dev-clu-2022-07-01-00-02
- dev-clu-2022-06-30-00-03
- dev-clu-2022-06-26-00-03
- dev-clu-2022-06-23-00-02
- dev-clu-2022-06-19-00-03
- dev-clu-2022-06-12-00-02
- dev-clu-2022-06-11-00-02
- dev-clu-2022-06-04-00-02
- dev-clu-2022-06-03-00-02
- dev-clu-2022-05-13-00-02
- dev-clu-2022-05-12-00-02
- dev-clu-2022-05-02-00-02
- dev-clu-2022-05-01-00-02
- dev-fix-tests
- dev-clu-2022-04-24-00-02
- dev-clu-2022-04-23-00-03
- dev-clu-2022-04-15-00-02
- dev-clu-2022-04-13-00-03
- dev-clu-2022-04-03-00-03
- dev-clu-2022-03-18-00-03
- dev-clu-2022-03-04-00-02
- dev-clu-2022-02-26-00-03
- dev-clu-2022-02-14-00-02
- dev-clu-2022-02-06-00-02
- dev-clu-2022-02-05-00-03
- dev-clu-2022-01-26-00-02
- dev-clu-2022-01-15-00-03
- dev-clu-2021-12-16-00-03
- dev-mariadb-104
- dev-clu-2021-11-20-00-02
- dev-clu-2021-11-18-00-03
- dev-clu-2021-11-08-00-02
- dev-clu-2021-11-07-00-02
- dev-clu-2021-11-02-00-02
- dev-clu-2021-11-01-00-03
- dev-clu-2021-09-17-00-03
- dev-bump-wordpress-version-581
- dev-clu-2021-09-14-00-05
- dev-clu-2021-09-11-00-03
- dev-clu-2021-09-01-00-03
- dev-clu-2021-08-24-00-02
- dev-clu-2021-08-23-00-03
- dev-clu-2021-08-21-00-03
- dev-clu-2021-07-23-00-04
- dev-clu-2021-07-14-00-03
- dev-clu-2021-07-13-00-03
- dev-clu-2021-06-29-00-03
- dev-clu-2021-06-23-00-03
- dev-clu-2021-05-19-00-03
- dev-clu-2021-05-18-00-03
- dev-clu-2021-05-14-00-04
- dev-clu-2021-05-01-00-03
- dev-clu-2021-04-29-00-04
- dev-clu-2021-04-27-00-04
- dev-clu-2021-04-23-00-03
- dev-clu-2021-04-17-00-03
- dev-clu-2021-03-24-00-05
- dev-clu-2021-03-22-00-04
- dev-clu-2021-03-20-00-04
- dev-clu-2021-03-17-00-04
- dev-clu-2021-03-14-00-05
- dev-clu-2021-03-06-00-04
- dev-clu-2021-03-05-00-04
- dev-clu-2021-02-17-00-03
- dev-clu-2021-02-04-00-05
- dev-clu-2021-01-25-00-10
- dev-clu-2021-01-20-00-07
- dev-clu-2021-01-09-00-05
- dev-clu-2021-01-08-00-07
- dev-clu-2021-01-01-00-05
- dev-clu-2020-12-23-00-05
- dev-clu-2020-12-15-00-06
- dev-clu-2020-12-14-00-06
- dev-clu-2020-12-09-00-06
- dev-clu-2020-12-06-00-05
- dev-clu-2020-12-03-00-05
- dev-clu-2020-12-02-00-07
- dev-clu-2020-11-30-00-05
- dev-clu-2020-11-26-00-05
- dev-clu-2020-11-25-00-07
- dev-clu-2020-11-23-00-05
- dev-clu-2020-11-20-00-05
- dev-clu-2020-11-17-00-05
- dev-clu-2020-11-12-00-06
- dev-clu-2020-11-11-00-06
- dev-composer-2
- dev-clu-2020-10-31-00-06
- dev-clu-2020-10-30-00-06
- dev-clu-2020-10-26-00-05
- dev-clu-2020-10-24-00-04
- dev-clu-2020-10-16-00-05
- dev-clu-2020-10-08-00-04
- dev-clu-2020-10-05-00-04
- dev-clu-2020-09-30-00-06
- dev-clu-2020-09-25-00-05
- dev-clu-2020-09-24-00-04
- dev-clu-2020-08-30-00-04
- dev-clu-2020-08-29-00-04
- dev-main
- dev-clu-2019-11-13-01-53
- dev-clu-2019-10-17-00-04
- dev-clu-2019-10-14-22-25
- dev-clu-2019-08-09-16-39
- dev-clu-2019-08-04-00-04
- dev-clu-2019-06-06-00-02
- dev-clu-2019-05-25-00-02
- dev-clu-2019-05-24-00-02
- dev-wordsesh-2019-demo
- dev-clu-2019-05-23-00-02
- dev-clu-2019-05-22-00-02
- dev-clu-2019-05-21-00-02
- dev-clu-2019-05-20-00-02
- dev-clu-2019-05-19-00-02
- dev-clu-2019-05-18-00-02
- dev-clu-2019-05-17-00-02
- dev-clu-2019-05-16-00-02
- dev-clu-2019-05-15-00-02
- dev-clu-2019-05-14-00-03
- dev-clu-2019-05-13-00-02
- dev-clu-2019-05-12-00-06
- dev-clu-2019-05-11-00-02
- dev-clu-2019-05-10-00-02
- dev-clu-2019-05-09-00-02
- dev-clu-2019-05-08-00-28
- dev-clu-2019-05-08-00-02
- dev-clu-2019-05-07-00-04
- dev-clu-2019-05-06-00-02
- dev-clu-2019-05-05-00-02
- dev-clu-2019-05-04-00-02
- dev-clu-2019-05-03-00-02
- dev-clu-2019-05-02-00-02
- dev-clu-2019-05-01-00-02
- dev-clu-2019-04-30-00-02
- dev-clu-2019-04-29-00-02
- dev-clu-2019-04-28-00-03
- dev-clu-2019-04-27-00-02
- dev-clu-2019-04-26-00-02
- dev-clu-2019-04-25-00-03
- dev-clu-2019-04-24-00-02
- dev-clu-2019-04-23-00-02
- dev-wordpress-5.1.1
- dev-custom-login
- dev-update-5.1
- dev-gitlab-ci-no-pr
- dev-clu-2018-12-06-22-44
- dev-default-php72
- dev-clu-2017-10-31-18-11
- dev-readme-instructions
- dev-issue-35-quicksilver-pushback-403
- dev-behat-example-for-webinar
- dev-php-70--global-variables
- dev-php-70--pin-wordhat
- dev-php-70-plus-logic-fix
- dev-php56
- dev-dynamic-build-tools-version
- dev-packagist-test
- dev-coming-soon
- dev-old-master
This package is auto-updated.
Last update: 2024-09-23 21:15:11 UTC
README
此存储库是一个参考实现和现代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.json
的require
部分来指定您的Web项目需要的任何依赖,即使是那些可能在非生产环境中使用的依赖。所有require
中的依赖都将推送到Pantheon。
应使用require-dev
部分来指定不是Web应用的一部分但构建或测试项目所必需的依赖。一些例子是php_codesniffer
和phpunit
。开发依赖项将不会部署到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
的子目录中:build
、deploy
或 test
。
构建脚本 .ci/build
构建适合部署的工件步骤。根据需要,您可以在此处添加其他构建脚本,例如安装 Node 依赖项。
.ci/build/php
使用 Composer 安装 PHP 依赖项
构建脚本 .ci/deploy
用于简化代码部署到 Pantheon 的脚本。
.ci/deploy/pantheon/create-multidev
为除默认 Git 分支之外的其他分支创建一个新的 Pantheon multidev 环境- 请注意,并非所有用户都有 multidev 访问权限。有关详细信息,请参阅 multidev 常见问题解答文档。
.ci/deploy/pantheon/dev-multidev
根据Git分支将构建的工件部署到 Pantheon 的dev
或 multidev 环境
自动化测试脚本 .ci/tests
根据测试需求,您可以在此处添加或删除脚本。
GitHub Actions 工作流程 .ci/.github
请将此文件夹复制到根目录的 .github 文件夹中以启用 GitHub Actions。还需要向 GitHub Actions 配置中添加一些秘密。
静态测试 .ci/test/static
和 tests/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
。
- 保存本地站点URL。它应该类似于
- 运行
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更新。