hieu-le / wordpress-xmlrpc-client
一个为Wordpress网站提供的PHP客户端,它紧密实现了XML-RPC WordPress API,并内置了完整的测试套件。
Requires
- php: >=5.3.0
- ext-xmlrpc: *
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- illuminate/support: ~4.0
- php-vcr/php-vcr: ^1.0
- php-vcr/phpunit-testlistener-vcr: *
- phpunit/phpunit: *
- symfony/yaml: 2.*
README
一个为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
方法随时更新endPoint
、username
和password
。上一个版本构造函数中的最后一个参数(即\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
方法。如果您传递了一个假值(null
,false
,...),则将使用默认值(感谢@WarrenMoore)
回调和事件(自2.4.0版起)
库允许开发者监听两个事件:Sending
和Error
。您可以通过调用带有闭包作为参数的on<event>
方法来为每个事件添加新的闭包作为回调(请参阅上面的onError
示例)。
onSending($event)
此事件在每个请求发送到WordPress博客之前触发。$event
是一个数组
event
:事件的名称,这里为sending
endpoint
:当前端点的URLusername
:当前用户名password
:当前密码method
:当前XML-RPC方法params
:传递给当前方法的参数request
:将要发送的当前请求正文proxy
:当前代理配置auth
:当前HTTP认证配置
onError($errorMessage, $event)
此事件在库遇到错误时触发,在抛出任何异常之前。 $errorMessage
是一个字符串。$event
是一个数组
event
:事件的名称,这里为sending
endpoint
:当前端点的URLrequest
:当前请求正文proxy
:当前代理配置auth
:当前HTTP认证配置
单元测试
默认情况下,项目使用记录的数据作为测试套件的默认数据。但是,如果您想使用自己的WordPress安装进行测试,可以在./tests/xmlrpc.yml
文件中找到可用选项。
endpoint
:您的WordPress XML-RPC端点的URLadmin_login
:具有管理员角色的用户的电子邮件或用户名admin_password
:管理员用户的密码guest_login
:具有订阅者角色的用户的电子邮件或用户名guest_password
:访客用户的密码
更新./tests/xmlrpc.yml
文件后,再次运行您的测试。