comodojo/xmlrpc

另一个 PHP XMLRPC 解码/编码器

2.0.1 2021-01-31 14:21 UTC

This package is auto-updated.

Last update: 2024-08-29 04:03:20 UTC


README

build Latest Stable Version Total Downloads Latest Unstable Version License Scrutinizer Code Quality Code Coverage Quality Gate Status Reliability Rating

另一个 PHP XMLRPC 解码/编码器。

这是开发分支,请不要在生产环境中使用

主要功能

  • 支持 nilex:nil
  • 实现真正的、XML 兼容的、HTML 数值实体转换
  • 支持 CDATA 值

安装

  • 使用 Composer

    安装 composer,然后

    composer require comodojo/xmlrpc

编码

  • 创建编码器实例

    // create an encoder instance
    $encoder = new \Comodojo\Xmlrpc\XmlrpcEncoder();
    
    // (optional) set character encoding
    $encoder->setEncoding("utf-8");
    
    // (optional) use ex:nil instead of nil
    $encoder->useExNil();
    
    // (optional) declare special types in $data
    $encoder->setValueType($data['a_value'], "base64");
    $encoder->setValueType($data['b_value'], "datetime");
    $encoder->setValueType($data['c_value'], "cdata");
    
    // Wrap actions in a try/catch block (see below)
    try {
    
        /* encoder actions */
    
    } catch (\Comodojo\Exception\XmlrpcException $xe) {
    
        /* someting goes wrong during encoding */
    
    } catch (\Exception $e) {
    
        /* generic error */
    
    }
  • 单次调用

    $call = $encoder->encodeCall("my.method", array("user"=>"john", "pass" => "doe")) ;
  • 多次调用

    $multicall = $encoder->encodeMulticall( array (
        "my.method" => array( "user"=>"john", "pass" => "doe" ),
        "another.method" => array( "value"=>"foo", "param" => "doe" ),
    );

    替代语法(重复方法安全)

    $multicall = $encoder->encodeMulticall( array (
        array( "my.method", array( "user"=>"john", "pass" => "doe" ) ),
        array( "another.method", array( "value"=>"foo", "param" => "doe" ) )
    );
  • 单次调用成功响应

    $response = $encoder->encodeResponse( array("success"=>true) );
  • 单次调用错误响应

    $error = $encoder->encodeError( 300, "Invalid parameters" );
  • 多次调用成功/错误(在 $data 中应显式声明 faultString 和 faultCode)

    $values = $encoder->encodeResponse( array(
    
        array("success"=>true),
    
        array("faultCode"=>300, "faultString"=>"Invalid parameters")
    
    );

解码

  • 创建解码器实例

    // create a decoder instance
    $decoder = new \Comodojo\Xmlrpc\XmlrpcDecoder();
    
    // Wrap actions in a try/catch block (see below)
    try {
    
        /* decoder actions */
    
    } catch (\Comodojo\Exception\XmlrpcException $xe) {
    
        /* someting goes wrong during decoding */
    
    }
  • 解码单次或多次调用

    $incoming_call = $decoder->decodeCall( $xml_data );

    在单次请求的情况下,方法将返回一个数组

    array (
        0 => "my.method",
        1 =>  array(
            "param_1" => "value_1",
            "param_2" => "value_2",
            ...
        )
    )

    在多次调用的情况下

    array (
        0 => array (
            0 => "my.method",
            1 =>  array(
                "param_1" => "value_1",
                "param_2" => "value_2",
                ...
            )
        ),
        1 => array (
            0 => "my.otherMethod",
            1 =>  array(
                "param_a" => "value_a",
                "param_b" => "value_b",
                ...
            )
        )
    )
  • 解码响应

    $returned_data = $decoder->decodeResponse( $xml_response_data );

文档

贡献

欢迎贡献,并将获得全额认可。请参阅 CONTRIBUTING 获取详细信息。

许可

comodojo/xmlrpc 根据 MIT 许可证(MIT)发布。请参阅 许可文件 获取更多信息。

版权 (c) 2018 Marco Giovinazzi

有关更多信息,请访问 comodojo.org