hieu-le/wordpress-xmlrpc-client

一个为Wordpress网站提供的PHP客户端,它紧密实现了XML-RPC WordPress API,并内置了完整的测试套件。

2.6.0 2020-12-03 14:13 UTC

This package is auto-updated.

Last update: 2024-08-29 03:41:54 UTC


README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

一个为Wordpress网站提供的PHP客户端,它紧密实现了XML-RPC WordPress API

Hieu Le创建

MIT许可。

当前版本:2.4.2

所有重要功能

  • 内置完整的测试套件,支持使用您自己的Wordpress网站进行测试。
  • 支持使用Monolog库将错误记录到文件。现在,错误可以通过更灵活的方式通过错误回调(v 2.4.0)进行记录
  • 支持UTF-8内容。
  • 紧密实现整个XML-RPC WordPress API
  • 当发生错误时,将抛出详细的异常。
  • (v2.2) 支持代理和HTTP身份验证。
  • (v2.2.1) 允许将DateTime类的值正确转换为datetime.iso8601 XML-RPC类型。
  • (v2.4.0) 支持使用自定义用户代理字符串,除了默认用户代理字符串。
  • (v2.4.0) 支持在发送错误事件上使用回调

安装

您需要在您的机器上安装Composer才能使用此库 Composer现在不是必需的,但建议安装。通过输入以下命令来验证是否已安装composer

composer --version

选择以下方法之一来安装Wordpress XML-RPC PHP客户端

您的项目已使用composer

将此依赖项添加到您的composer.json文件中

"hieu-le/wordpress-xmlrpc-client":"~2.0"

然后,运行composer update以安装此包。

您的项目未使用composer

github克隆或下载此包的存档。将src目录中的所有文件包含到您的项目中,并开始使用Wordpress XML-RPC客户端。如果您不使用Composer,则需要手动更新此库的代码。

必需的PHP扩展是xmlrpc扩展。建议使用可选的curl扩展。

使用方法

所有API调用将通过WordpressClient类的一个实例执行。自2.4.0版本以来,构造函数中不再强制参数。可以通过调用setCredentials方法随时更新endPointusernamepassword。上一个版本构造函数中的最后一个参数(即\Illuminate\Log\Writer类的实例)已弃用,将在下一个主要版本中删除。以下是如何使用此库的示例

# Your Wordpress website is at: http://wp-website.com
$endpoint = "http://wp-website.com/xmlrpc.php";

# The Monolog logger instance
$wpLog = new Monolog\Logger('wp-xmlrpc');

# Create client instance
$wpClient = new \HieuLe\WordpressXmlrpcClient\WordpressClient();
# Log error
$wpClient->onError(function($error, $event) use ($wpLog){
    $wpLog->addError($error, $event);
});

# Set the credentials for the next requests
$wpClient->setCredentials($endpoint, 'username', 'password');

如果您已经使用了此库先前版本的日志功能,您应更新您的代码以使用上述新的日志方式,Monolog实例可以被您拥有的任何类型的日志工具替换。

要使用日期时间值,您必须使用DateTime类的实例而不是字符串。

此库可能会抛出两种类型的异常

  • XmlrpcException:如果服务器执行您的请求时出现错误,将抛出此类异常。
  • NetworkException:如果传输您的请求到服务器或获取响应时出现错误,将抛出此类异常。

有关API参考,请访问WordPress文档库API文档

用户代理(自2.4.0版起)

库在联系WordPress博客时使用默认用户代理。如果您想使用其他用户代理,请将自定义用户代理字符串传递给setUserAgent方法。如果您传递了一个假值nullfalse,...),则将使用默认值(感谢@WarrenMoore)

回调和事件(自2.4.0版起)

库允许开发者监听两个事件:SendingError。您可以通过调用带有闭包作为参数的on<event>方法来为每个事件添加新的闭包作为回调(请参阅上面的onError示例)。

onSending($event)

此事件在每个请求发送到WordPress博客之前触发。$event是一个数组

  • event:事件的名称,这里为sending
  • endpoint:当前端点的URL
  • username:当前用户名
  • password:当前密码
  • method:当前XML-RPC方法
  • params:传递给当前方法的参数
  • request:将要发送的当前请求正文
  • proxy:当前代理配置
  • auth:当前HTTP认证配置

onError($errorMessage, $event)

此事件在库遇到错误时触发,在抛出任何异常之前。 $errorMessage是一个字符串。$event是一个数组

  • event:事件的名称,这里为sending
  • endpoint:当前端点的URL
  • request:当前请求正文
  • proxy:当前代理配置
  • auth:当前HTTP认证配置

单元测试

默认情况下,项目使用记录的数据作为测试套件的默认数据。但是,如果您想使用自己的WordPress安装进行测试,可以在./tests/xmlrpc.yml文件中找到可用选项。

  • endpoint:您的WordPress XML-RPC端点的URL
  • admin_login:具有管理员角色的用户的电子邮件或用户名
  • admin_password:管理员用户的密码
  • guest_login:具有订阅者角色的用户的电子邮件或用户名
  • guest_password:访客用户的密码

更新./tests/xmlrpc.yml文件后,再次运行您的测试。