rbdwllr/atlantic-city

默认 WordPress 插件 Hello Dolly 的复制品,但适用于由 Composer 驱动的 WordPress 和歌曲 Atlantic City。

安装: 337

依赖项: 1

建议者: 0

安全: 0

星标: 5

关注者: 1

分支: 2

开放问题: 0

类型:wordpress-plugin

0.3.0 2020-11-25 09:21 UTC

This package is auto-updated.

Last update: 2024-08-27 17:42:22 UTC


README

Actions Status codecov PHP Version Support

一个基于 Composer 的 WordPress 插件,用于在 WordPress 管理后台显示歌曲 Atlantic City 的歌词。

创建此插件是为了向开发者展示如何创建托管在 Packagist 上的 WordPress 插件,并且与 Composer 友好的 WordPress 框架(如 Dusty)协同工作。

它还突出了如何使用 WP_Mock 为 WordPress 插件编写单元测试,以及如何与静态分析工具(如 PHPStan)集成。

Composer 设置

使用 Composer 构建的 WordPress 插件与标准 PHP 包之间只有一个区别,那就是包类型。对于 WordPress 插件,您需要在 Composer.json 文件 中将类型设置为 wordpress-plugin

"type": "wordpress-plugin",

这仅仅告诉 Composer 友好的 WordPress 框架如何处理该包,而不是将包放入 vendor 文件夹,而是将其放入 WordPress 插件目录。有关详细信息,请参阅 WPackagist

使用 WP_Mock 进行单元测试

要为 WordPress 编写单元测试,您需要使用一个名为 WP_Mock 的包。它是 PHP Unit 的扩展,允许您模拟 WordPress 自定义函数调用。

例如,这个库的 单元测试 模拟了 is_rtl() 函数,该函数告诉 WordPress 网站的文本是从右到左还是从左到右运行。

WP_Mock::userFunction('is_rtl', [
    'times' => 1,
    'return' => false
]);

要使用 WP_Mock,您需要创建一个自定义的 引导文件 并扩展 WP_Mock 测试用例类,而不是 PHP Unit 类。

namespace Tests;

use App\MyWordPressCode;
use WP_Mock\Tools\TestCase;
use WP_Mock;

class MyWordPressTests extends TestCase
{
    ...
}

WP_Mock 还提供了一些方便的功能,允许您检查 WordPress 动作或过滤器是否被调用。

WP_Mock::expectActionAdded('action', 'parameters');

其他代码分析工具

此插件与多种静态分析工具集成,包括 PHP Code SnifferPHP Mess Detection,这些工具将帮助提高您生产的 WordPress 插件代码质量。

它还展示了如何与 PHPStan 集成以在您的代码中添加一些类型安全。这需要对 WordPress 进行一些自定义处理,因此有一个 配置文件 以及与扩展 PHPStan 以支持 WordPress 的 szepeviktor/phpstan-wordpress 包的集成。