slava-basko/symphony-json-rpc-server

为 symfony 简单 JsonRpc 服务器

dev-master 2017-02-02 08:00 UTC

This package is auto-updated.

Last update: 2024-09-27 01:46:13 UTC


README

安装

通过 composer 安装并添加到内核。

class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = [
            ...
            new JsonRpcServerBundle\JsonRpcBundle(),
        ];
        return $bundles;
    }
    ...

将以下内容添加到您的 routing.yml(或 xl, 等)文件中。

json_rpc_server:
    path: /api
    defaults:  { _controller: JsonRpcBundle:Server:process }

完成!

用法

只需将服务标记为 "rpc.service" 标签。

rpc_ping:
    class: RpcService\PaymentService
    tags:
        - { name: rpc.service }

高级配置

您可以将服务器作为服务使用。示例

class DefaultController extends Controller
{
    /**
     * @Route("/", name="homepage")
     * @param Request $request
     * @return JsonResponse
     */
    public function indexAction(Request $request)
    {
        // Some Logic. Auth, pre-actions, etc.
    
        $rpcServer = $this->get('rpc_server');
        if ($request->isMethod('get')) {
            return new JsonResponse($rpcServer->getServiceMap()->toArray());
        }
        return new JsonResponse($rpcServer->handle()->toJson(), 200, [], true);
    }
}