antanasga / xmlrpcencode
轻松编码XMLRPC请求
v0.1.2
2021-08-02 20:35 UTC
Requires
- php: >=7.0.0
README
轻松编码XMLRPC调用
文档
目录
安装
使用composer安装: composer.json
"require": { "antanasga/xmlrpcencode": "^0.1.2" }
在终端中
$ composer require antanasga/xmlrpcencode
注意
- 唯一解析的对象是
DateTime - 当需要特定类型时使用
([类型名称])- 示例:
(float) 1,返回<double>1.000000</double>。请记住float在XMLRPC规范中对应于double
- 示例:
使用方法
作为请求
请求
$e = new Encode( [ 'hello-world', [ "int" => 1, "double" => 1.1, "bool" => true, "string" => "one", "datetime" => new DateTime(), "array" => [1, "one", false] ], Encode::base64('Hello world') // PHP has no base64 object so we call it like that ], 'execute' ); echo $e;
输出
<?xml version='1.0'?> <methodCall> <methodName>execute</methodName> <params> <param> <value> <string>hello-world</string> </value> </param> <param> <value> <struct> <member> <name>int</name> <value> <int>1</int> </value> </member> <member> <name>double</name> <value> <double>1.100000</double> </value> </member> <member> <name>bool</name> <value> <boolean>1</boolean> </value> </member> <member> <name>string</name> <value> <string>one</string> </value> </member> <member> <name>datetime</name> <value> <dateTime.iso8601>2021-06-25T06:39:12+0000</dateTime.iso8601> </value> </member> <member> <name>array</name> <value> <array> <data> <value> <int>1</int> </value> <value> <string>one</string> </value> <value> <boolean>0</boolean> </value> </data> </array> </value> </member> </struct> </value> </param> <param> <value> <base64>SGVsbG8gd29ybGQ=</base64> </value> </param> </params> </methodCall>
作为响应
请求
$e = new Encode( [ 'hello-world', [ "int" => 1, "double" => 1.1, "bool" => true, "string" => "one", "datetime" => new DateTime(), "array" => [1, "one", false] ], Encode::base64('Hello world') ], ); echo $e;
输出
<?xml version='1.0'?> <methodResponse> <params> <param> <value> <string>hello-world</string> </value> </param> <param> <value> <struct> <member> <name>int</name> <value> <int>1</int> </value> </member> <member> <name>double</name> <value> <double>1.100000</double> </value> </member> <member> <name>bool</name> <value> <boolean>1</boolean> </value> </member> <member> <name>string</name> <value> <string>one</string> </value> </member> <member> <name>datetime</name> <value> <dateTime.iso8601>2021-06-25T06:45:04+0000</dateTime.iso8601> </value> </member> <member> <name>array</name> <value> <array> <data> <value> <int>1</int> </value> <value> <string>one</string> </value> <value> <boolean>0</boolean> </value> </data> </array> </value> </member> </struct> </value> </param> <param> <value> <base64>SGVsbG8gd29ybGQ=</base64> </value> </param> </params> </methodResponse>
作为错误
请求
$f = Encode::encodeFault('Does not exist', 'no backtrace'); echo $f;
输出
<?xml version='1.0'?> <methodResponse> <value> <struct> <member> <name>faultCode</name> <value> <string>Does not exist</string> </value> </member> <member> <name>faultString</name> <value> <string>no backtrace</string> </value> </member> </struct> </value> </methodResponse>