enpii / wp-proj
WordPress项目设置,适用于使用Laravel和EnpiiBase插件的现代WordPress开发
Requires
- php: ^8.0
- enpii/appeara-alpha: *
- enpii/demoda: *
- enpii/enpii-base: *
- johnpbloch/wordpress-core: ^6.0
- josegonzalez/dotenv: 4.0.0
- mcaskill/composer-exclude-files: ^3.0.0
- wp-plugins/woocommerce: ^8.0
- wpackagist-theme/storefront: ^4.0
- wpackagist-theme/twentytwentyfour: ^1.0.0
Requires (Dev)
- 10up/wp_mock: ^1.0.0
- automattic/vipwpcs: ^3.0.0
- brain/monkey: ^2.6.0
- codeception/codeception: ^5.0.0
- codeception/module-asserts: ^3.0
- codeception/module-phpbrowser: ^3.0
- mockery/mockery: ^1.6
- phpcompatibility/php-compatibility: ^9.3.5
- phpunit/phpunit: ^9.6
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