yipeecaiey / wordpress-xmlrpc-client
这是一个针对Wordpress网站的PHP客户端,它紧密实现XML-RPC WordPress API,并内置了完整的测试套件。
Requires
- php: >=7.0.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库将错误日志记录到文件。现在,错误可以通过更灵活的方式通过error callbacks
(v 2.4.0)进行记录- 支持UTF-8内容。
- 紧密实现整个XML-RPC WordPress API。
- 当发生错误时将抛出详细的异常。
- (v2.2)支持代理和HTTP认证。
- (v2.2.1)允许
DateTime
类的值正确转换为XML-RPC类型的datetime.iso8601
。 - (v2.4.0)支持使用自定义User Agent字符串,除了默认User Agent字符串。
- (v2.4.0)支持在
发送
和错误
事件上使用回调
安装
您需要在您的机器上安装Composer才能使用此库 Composer现在不是必需的,但推荐。通过输入此命令来验证composer是否已安装:
composer --version
选择以下方法之一来安装Wordpress XML-RPC PHP Client
您的项目已使用composer
将此依赖项添加到您的composer.json
文件中
"hieu-le/wordpress-xmlrpc-client":"~2.0"
之后,运行composer update
来安装此软件包。
您的项目未使用composer
从github克隆或下载此软件包的存档。将src
目录中的所有文件包含到您的项目中,并开始使用Wordpress XML-RPC Client
。如果您不使用Composer使用它,则必须手动更新此库的代码。
所需的PHP扩展是xmlrpc
扩展。curl
扩展是可选的,但推荐。
使用
所有API调用将通过WordpressClient
类的实例执行。自2.4.0版本以来,构造函数中没有强制参数。endPoint
、username
和password
可以通过调用setCredentials
方法随时更新。上一个版本构造函数中的最后一个参数(一个\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
文件后,再次运行测试。