enpii/wp-proj

WordPress项目设置,适用于使用Laravel和EnpiiBase插件的现代WordPress开发

安装次数: 8

依赖者: 0

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:wordpress-project

v1.0.0 2024-05-11 05:22 UTC

This package is auto-updated.

Last update: 2024-09-20 08:36:25 UTC


README

初始化

  • 创建项目(稳定版本)
composer create-project enpii/wp-proj <folder-name>
  • 使用开发版本(分支 master
composer create-project -s dev enpii/wp-proj <folder-name>

如果您想指定分支(例如分支 develop

composer create-project -s dev enpii/wp-proj:dev-develop <folder-name>
  • 确保您有 .env 文件,如果没有,可以从示例文件中复制
cp .env.example .env
  • 然后使用适合您工作环境的适当环境变量,记得检查SALTS部分以使用正确的变量。

开发

  • 安装(或更新)依赖项
docker run --rm --interactive --tty -e XDEBUG_MODE=off -v $PWD:/app -v ~/.composer:/root/.composer npbtrac/php80_cli composer install

使用Docker部署

Docker文件基于 serversideup/docker-php 构建 https://github.com/serversideup/docker-php(根据 Server Side Up 团队的说法,这些已经准备好投入生产使用)

  • 启动所有容器
docker-compose up -d

然后网站将在 http://127.0.0.1:19180/ 可用(端口号19180可以在 .env 文件中编辑)- 如果 WP_DEBUG 设置为 0 或 'off' 或未设置,则容器中的WordPress将具有xDebug运行,因为我们处于调试模式

  • 使用Docker更新composer(禁用xDebug可以帮助composer安装/更新更快)
docker-compose exec -e XDEBUG_MODE=off wordpress composer update
  • 运行wp-cli(您必须使用webuser用户运行,以避免以root用户运行)
docker-compose exec --user=webuser wordpress wp plugin list

或检查系统信息

docker-compose exec --user=webuser wordpress wp enpii-base info

或添加管理员用户

docker-compose exec --user=webuser wordpress wp user create <admin_username> <admin_email> --user_pass=<admin_password> --role=administrator
  • 运行wp-app artisan
docker-compose exec --user=webuser wordpress ./wp-enpii-base-artisan wp-app:hello

docker-compose exec --user=webuser wordpress wp enpii-base artisan wp-app:hello

使用GIT

  • 您可以将自己的插件、主题、mu-plugins放入相应的文件夹。然后如果您使用git,您可以通过以下方式将这些内容添加到您的仓库中
    • 更新 ./wp-content/.gitignore 允许您的插件、mu-plugins、主题
    • 例如 您有一个名为 hello-world 的插件,您需要添加以下内容
    !plugins/hello-world
    !plugins/hello-world/**
    
    • 然后您可以通过 git add <your-plugin-folder> 将这些内容添加到仓库

编译资源(CSS、JS)

  • 此仓库包含一个示例插件 Demoda 和一个示例主题 Appeara Alpha,它具有webpack配置来编译插件和主题的CSS和JS。资源将被编译到 public-assets/dist 文件夹

要安装依赖项

docker compose exec wordpress yarn install

编译插件资源

docker compose exec wordpress yarn build-plugin

或观看并编译

docker compose exec wordpress yarn dev-plugin

类似地,对于主题使用

docker compose exec wordpress yarn build-theme

并观看

docker compose exec wordpress yarn dev-theme

处理翻译

  • 为Appeara Alpha主题创建pot文件
docker compose exec --user=webuser wordpress yarn i18n:make-pot <path/of/plugin-or-theme/folder> <path/to/pot-file>

例如

docker compose exec --user=webuser wordpress yarn i18n:make-pot public/wp-content/themes/appeara-alpha public/wp-content/themes/appeara-alpha/languages/appeara-alpha.pot

注意:如果您使用Yarn < 1.0,您需要在参数前添加 --,例如这样

docker compose exec --user=webuser wordpress yarn i18n:make-pot -- public/wp-content/themes/appeara-alpha public/wp-content/themes/appeara-alpha/languages/appeara-alpha.pot
  • 将pot文件更新到现有的po文件(相同的父文件夹)
docker compose exec --user=webuser wordpress yarn i18n:update-po <path/to/pot-file>

例如

docker compose exec --user=webuser wordpress yarn i18n:update-po public/wp-content/themes/appeara-alpha/languages/appeara-alpha.pot
  • 从po文件创建mo文件(与po文件相同的父文件夹)
docker compose exec --user=webuser wordpress yarn i18n:make-mo <po-path>

例如

docker compose exec --user=webuser wordpress yarn i18n:make-mo public/wp-content/themes/appeara-alpha/languages/appeara-alpha-vi.po

注意:当然,您可以更新脚本(在package.json中)以匹配您的项目。

处理PHP代码风格(PHPCS)

  • 检查项目的PHP代码风格(使用phpcs配置文件)
docker compose exec wordpress yarn phpcs
  • 检查特定目录的PHP代码风格
docker compose exec wordpress yarn phpcs <path/to/folder>

例如

docker compose exec wordpress yarn phpcs public/wp-content/plugins/demoda

您应该使用相对路径

  • 修复PHP代码风格
docker compose exec wordpress yarn phpcbf <path/to/folder>

例如

docker compose exec wordpress yarn phpcbf public/wp-content/plugins/demoda

处理单元测试

此项目使用PHPUnit和配置了Codeception测试框架。您应该使用PHPUnit运行测试,因为它支持isolationProcess,允许Mockery重载和别名发生。如果您想,您也可以运行Codeception。

创建测试文件

  • 添加新的单元测试文件
docker-compose exec --user=webuser wordpress wp enpii-base artisan wp-app:make:phpunit <relative/path/without/.php>

例如

docker-compose exec --user=webuser wordpress wp enpii-base artisan wp-app:make:phpunit tests/Unit/Demoda/App/WP/Tmp_Test

或使用Codeception

docker compose exec wordpress yarn codecept:generate-unit Demoda/Test/Test.php

此命令将在代码ception单元设置的路径suites/tests/unit下创建文件Demoda/Test/Test.php请务必记住使用setUp()方法而不是_before()方法,以便能够使用PHPUnit运行测试文件。

运行单元测试

  • 使用PHPUnit在单个文件/文件夹上运行单元测试
docker compose exec wordpress yarn phpunit tests/Unit/Demoda
  • 如果您只想运行特定文件/文件夹的单元测试,并且只想在该文件/文件夹上查看覆盖率报告,可以使用PHPUnit运行。
docker compose exec wordpress yarn phpunit:coverage-single --whitelist=<path/to/folder/to/perform/the/coverage> <path/to/test/folder>

例如(使用额外的--debug选项)

docker compose exec wordpress yarn phpunit:coverage-single --bootstrap=tests/bootstrap-unit.php --debug --whitelist=public/wp-content/plugins/demoda/src/App/WP/Demoda_WP_Plugin.php tests/Unit/Demoda/App/WP/Demoda_WP_Plugin_Test.php
  • 使用PHPUnit运行单元测试(覆盖率报告输出到文件夹tests/_output/phpunit
docker compose exec wordpress yarn phpunit:coverage-html tests/_output/phpunit

或者您只想在控制台查看结果(而不是HTML文件)

docker compose exec wordpress yarn phpunit:coverage

注意事项:您可以使用Codeception进行单元测试,因为配置已经存在,但Codeception不支持isolationProcess,这意味着使用Mokery重载的测试将失败。

docker compose exec wordpress yarn codecept:unit