bdunogier/xmlrpcbundle

Symfony 2 简单 XML RPC 服务器

2.0.3 2014-01-03 15:22 UTC

This package is auto-updated.

Last update: 2024-09-19 10:45:48 UTC


README

Build Status Analytics

原理

这个 Symfony 2 扩展包将让您无需离开您熟悉的 Symfony 2 环境即可实现 XML-RPC 服务器。

它执行以下操作

  • 拦截对 XML-RPC 终端点的请求
  • 将 XML 有效载荷转换为唯一的路由(基于方法调用)
  • 将 XML 有效载荷转换为一系列原始参数(数组、散列、整数、字符串...)

使用示例

让我们考虑这个 XML-RPC 有效载荷

<methodCall>
  <methodName>myAPI.getLatestContent</methodName>
  <params>
    <param>
      <value>Some string</value>
    </param>
  </params>
</methodCall>

要处理这个调用,您只需创建一个匹配 /xmlrpc/API.getLatestContent 的路由,并按常规方式将其映射到控制器即可

myroute.getLatestContent:
  path: /xmlrpc/myAPI.getLatestContent
  defaults:
    _controller: MyBundle:API:getLatestContent

就是这样。在您的控制器中,您将收到一个标准的 HttpFoundation 请求,其中每个参数都是 POST 数据的一部分。

可以在扩展包内部找到这个 hello world 示例。

参数提供者

默认情况下,路由不会接收任何参数,XML-RPC 请求的参数将作为 $_POST[0]、$_POST[1]、... 提供

为了获得更有意义的控制器,可以使用 ParametersProcessor

参数处理器必须

  • 实现 BD\Bundle\XmlRpcBundle\XmlRpc\ParametersProcessorInterface
  • 作为服务注册,标签为 bdxmlrpc.parameters_processor,具有匹配 XML-RPC 方法的 methodName 属性

该接口要求两个方法: getRoutePathArgumentsgetParameters。这两个方法都将根据 $parameters 数组的内 容来细化请求参数,$parameters 是一个包含 XML-RPC 请求参数的数值数组。

ParametersProcessorInterface::getRoutePathArgument()

返回路由 URI 参数,作为一个数值索引的数组。每个参数都将添加到路由的路径中,由斜线分隔。

ParametersProcessorInterface::getParameters()

此方法必须返回一个数组,可以是关联的或非关联的,其中包含将添加到请求中的 POST 参数。

Bitdeli Badge