0

在我的网站中,我需要配置 REST、XML-RPC、SOAP 服务器。

REST: I have used the FriendsOfSymfony REST bundle
SOAP: PHP SOAP used (doc from symfony website
XML-RPC: I have planed to use the Zend XmlRpc

如何在 Symfony 中配置 Zend XmlRpc 服务器?

任何有用的链接逐步配置?

或者任何其他可以与 symfony 一起使用的 XML-RPC

在此先感谢,SVN

4

2 回答 2

1

我在 symfony 中使用了 zend xmlrpc

作曲家.json

"zendframework/zend-xmlrpc": "2.1.*"

配置.yml

services:
   MyTestService:
        class: Acme\DemoBundle\Controller\MyTestService
        arguments: ["@doctrine.orm.entity_manager"] 

路由.yml

_xmlrpc:
    pattern:  /xmlrpc
    defaults: { _controller: AcmeDemoBundle:Xmlrpc:index }
_xmlrpc_test:
    pattern:  /xmlrpc/test
    defaults: { _controller: AcmeDemoBundle:Xmlrpc:test }

控制器

public function indexAction()
{
    $server = new \Zend\XmlRpc\Server;
    $server->setClass($this->get('MyTestService'));

    $response = new Response();
    $response->headers->set('Content-Type', 'text/xml; charset=ISO-8859-1');
    ob_start();
    $server->handle();
    $response->setContent(ob_get_clean());
    return $response;
}
public function testAction()
{
    $client = new \Zend\XmlRpc\Client('`http://127.0.0.1/symfony_xmlrpc/web/app_dev.php/xmlrpc`');
    $result= $client->call('ping', array('test'));
    echo '<br/><br/>XmlRpc:<br/>';
    var_dump ( $result );

    $response = new Response();
    $response->headers->set('Content-Type', 'text');
    ob_start();

    $response->setContent('testme');
    return $response;

}

我的测试服务

namespace Acme\DemoBundle\Controller;

class MyTestService {

    /**
     * A simple ping service
     *
     * @param string $value
     * @return string
     */
    function ping($value) {
        return $value . ' back from server symfony';
    }
    /**
     * A simple pong service
     *
     * @param string $token
     * @param array $arg
     * @return array
     */
    function pong($token, $arg) {
        return array($token.'data'=>$arg);
    }
}
于 2014-01-24T12:43:35.123 回答
0

Xmlrpc(请求发送到外部 url 以检索数据)使用简单sudo apt-get install php5-xmlrpc,我们可以安装xmlrpc. 我们可以在 symfony 和 php 中使用它,也可以根据我们必须请求的 url 格式使用它。在控制器中:

public function testAction()
{

    $method = 'index.bus';
    $date = '2002-02-20';
    $source = 112;
    $dest = 69;
    $s_id = 1310;
    $seat = 'seat';
    $request = xmlrpc_encode_request($method, array("date"=>$date,
        "sourceids"=>$source,
        "destinationids"=>$dest,
        "serviceids"=>$s_id,
        "selected_seat"=>$seat));

    $context = stream_context_create(array('http' => array(
      'method' => "POST",
      'header' => "Content-Type: text/xml\r\nUser-Agent: PHPRPC/1.0\r\n",
      'content' => $request
    )));

    //(external url) their format of request
    $file = file_get_contents("http://url.com/api/cabs/server.php? SecurityKey=ATSELKSWER", false, $context);
   $response = xmlrpc_decode($file);

    if ($response && xmlrpc_is_fault($response)) {
      trigger_error("xmlrpc:$response[faultString]($response[faultCode])");
    } 
    else{
        print_r($response);
    }
}
于 2014-10-14T11:59:09.980 回答