globalis/wp-cubi

为开发者提供的WordPress现代化堆栈

安装: 439

依赖项: 0

建议者: 0

安全: 0

星标: 66

关注者: 7

分支: 7

开放问题: 0

类型:项目

1.10.0 2023-09-29 10:21 UTC

README

PHP Version Require Latest Stable Version License

为开发者提供的WordPress现代化堆栈

wp-cubi

概览

wp-cubi提供了一套现代堆栈和项目结构,用于使用WordPress创建专业的网络应用程序。

使用Composer依赖管理器和Robo任务执行器构建。

功能

安全优化

要求

安装

  1. 创建一个新项目:composer create-project --remove-vcs globalis/wp-cubi your-project && cd your-project
  2. 运行安装命令并回答问题:./vendor/bin/robo install --setup-wordpress
  3. 访问您的新网站管理:/wpcb/wp-admin/

配置

wp-cron任务

为了在生产环境中实现最优的wp-cron配置,应用以下配置

  • ./config/environments/production.php中将常量DISABLE_WP_CRON设置为true
  • 添加到您的生产服务器crontab
*/1 * * * * /usr/bin/php8.2 /var/www/my-app/web/wpcb/wp-cron.php &>/dev/null

注意

  • 确保您在上述命令中适配PHP二进制路径(带准确版本)和您的应用程序路径
  • 推荐使用绝对路径

WordPress核心自动更新

尽管WordPress不符合语义版本规范,但核心的小版本更新通常遵循向后兼容性,并且可以自动应用,以保障安全。

可以通过添加到您的预发布和生产服务器crontabs来实现

*/30 * * * *  /usr/bin/php8.2 /var/www/my-app/vendor/bin/wp core update --minor  &>/dev/null

注意

  • 确保您在上述命令中适配PHP二进制路径(带准确版本)和您的应用程序路径
  • 推荐使用绝对路径

此cron任务将确保,每30分钟,服务器上运行的WordPress实例与其当前分支的最新小版本保持更新。

此cron任务不会自动更改composer.lock文件中的roots/wordpress版本。

为了避免在部署时发生不想要的回滚,wp-cubi deploy命令将在每次部署前检查您是否要部署WordPress当前分支的最后一个小版本。如果不是,它将邀请您中止部署并运行./vendor/bin/robo wp:apply-available-patch

命令

wp-cli

编码标准

  • ./vendor/bin/phpcs [directory]:检查编码标准(见./phpcs.xml
  • ./vendor/bin/phpcbf [directory]:修复编码标准可自动修复的违规行为

Robo

  • ./vendor/bin/robo install [--setup-wordpress]
  • ./vendor/bin/robo configure
  • ./vendor/bin/robo build
  • ./vendor/bin/robo build:composer
  • ./vendor/bin/robo build:config
  • ./vendor/bin/robo build:htaccess
  • ./vendor/bin/robo wp:apply-available-patch
  • ./vendor/bin/robo wp:language-install [<language>] [--activate]
  • ./vendor/bin/robo wp:language-update [<language>] [--activate]
  • ./vendor/bin/robo wp:update-timezone
  • ./vendor/bin/robo wp:install-acf-pro [--username="<username>"] [--password="<password>"]
  • ./vendor/bin/robo feature:start <feature-name>
  • ./vendor/bin/robo feature:finish <feature-name>
  • ./vendor/bin/robo hotfix:start [--semversion=<version>]
  • ./vendor/bin/robo hotfix:finish [--semversion=<version>]
  • ./vendor/bin/robo release:start [--semversion=<version>]
  • ./vendor/bin/robo release:finish [--semversion=<version>]
  • ./vendor/bin/robo deploy <environment> <version> [--ignore-assets] [--ignore-composer]
  • ./vendor/bin/robo deploy:setup <environment>
  • ./vendor/bin/robo media:dump <environment> [--delete]
  • ./vendor/bin/robo media:push <environment> [--delete]

WordPress插件

wp-cubi通过Composer处理WordPress插件依赖项(包括wordpress.org插件)。

如果您想使用通过wordpress.org或公共Composer仓库不可用的插件,您有两个选择

  1. 最简单的方法:手动将插件添加到您的./web/app/modules/目录中,然后在您的./gitignore文件中将其列入白名单
  2. 推荐的方法:创建一个私有Composer仓库以托管您的插件

日志

wp-cubi附带inpsyde/wonolog,它允许通过单行代码记录任何内容,并自动记录多个事件,如PHP错误、数据库错误、HTTP API错误、wp_mail()错误等。

基本配置可以在wp-cubi的./config/application.php./config/environments/文件中完成,您可以在这些文件中更改日志文件的最大数量和日志级别。[详情](https://github.com/globalis-ms/wp-cubi/blob/master/config/application.php "application.php") [详情](https://github.com/globalis-ms/wp-cubi/tree/master/config/environments "config/environments/")

对于高级配置(添加通道或处理程序),您可以编辑./web/app/mu-modules/00-wp-cubi-core-mu/src/00-wonolog.php(参见[inpsyde/wonolog文档](https://inpsyde.github.io/Wonolog/)和[monolog文档](https://github.com/Seldaek/monolog/tree/master/doc))

部署

wp-cubi提供了一个基本的部署命令./vendor/bin/robo deploy,该命令使用rsync构建并部署应用程序。

您可以通过编辑./RoboFile.php来使用[Deployer](https://deployer.org/)、[Capistrano](https://capistrano.ruby-lang.org.cn/)或其他工具构建自己的部署方法。[详情](https://github.com/globalis-ms/wp-cubi/blob/master/RoboFile.php "RoboFile.php")

区块编辑器去哪了?

我们使用[globalis/wp-unhooked](https://github.com/globalis-ms/wp-unhooked "globalis/wp-unhooked")来禁用WordPress核心中的许多功能,例如区块编辑器、REST-API、xmlrpc、评论、大多数仪表板小工具和少数管理员菜单条目。

这可以让您的应用程序更干净、更快、更轻量。它还通过在不需要时禁用潜在的攻击路径来提高安全性。

如果您需要激活这些功能之一,请编辑config/application.php中的WP_UNHOOKED_CONFIG常量。[详情](https://github.com/globalis-ms/wp-cubi/blob/master/config/application.php "config/application.php")