zored / speech
PHP 的 JSON-RPC 2.0。支持 Symfony 2.0 到 3.0。
1.1
2017-04-14 13:50 UTC
Requires
- php: >=5.6
- jms/serializer-bundle: ~1.0
- symfony/dependency-injection: ~2.8|~3.0
- symfony/event-dispatcher: ~2.3|~3.0
- symfony/property-info: ~2.8|~3.0
- symfony/validator: ~2.0|~3.0
Requires (Dev)
- phpunit/phpunit: ~4.8
This package is not auto-updated.
Last update: 2024-09-29 02:26:28 UTC
README
PHP 的 JSON-RPC 2.0
JSON-RPC 2.0 的组件。可以作为 独立库 使用。也可以与 Symfony 一起使用。
功能
- 验证。基于 Symfony 验证组件。
- 反序列化。基于 JMS。
- 自定义。更改您的 JSON-RPC 2.0 规则。
使用
Symfony
- 安装包:
composer require zored/speech
。 - 将组件
new Zored\SpeechBundle\ZoredSpeechBundle()
添加到您的 Symfony 内核app/AppKernel.php
。 - 将路由添加到默认端点:
routing.yml
json_rpc: defaults: { _controller: ZoredSpeechBundle:Default:jsonRpc } methods: [POST] # Or GET for Zored RPC. path: /json-rpc
- 在
services.yml
中添加具有您的 JSON-RPC 方法的服务services: your.service: # Replace with your own class: class: 'Zored\SpeechBundle\Test\JsonRpc\Greeter'
- 通过
parameters.yml
允许此服务在默认控制器中运行parameters: zored.speech.controller.context.service_ids: ['your.service']
- 清除缓存。
- 测试
curl http://example.com/json-rpc/ \ --data '{"id":"1", "method":"your.service:greet", "params":{"person":{"name":"bob","age":19}},"jsonrpc":"2.0"}'
独立库
- 请参阅
web/index.php
中的示例 - 使用
php -S 127.0.0.1:8080
在那里运行服务器 - 测试
curl http://127.0.0.1:8080 \ --data '{"id":"1", "method":"your.service:greet", "params":{"person":{"name":"bob","age":19}},"jsonrpc":"2.0"}'
接下来是什么?
内部
- 您的请求 JSON 字符串将发送到 端点,它处理它并返回 Symfony 响应。
- 端点选择哪个 请求传递器 可以将 JSON 字符串传递给请求处理器。
- 请求传递器还反序列化 JSON 并进行验证。
- 请求传递器将请求对象传递给 请求处理器,它将请求推送到某个位置以获取响应。
- 现在使用 服务处理器 来
- 如果设置,使用 参数转换器 反序列化请求
params
。 - 使用这些参数调用服务的公共方法。 服务受
ServiceContext
限制。对于默认控制器,请参阅zored.speech.controller.context
参数。 - 等待
array
或AbstractResponse
。
- 如果设置,使用 参数转换器 反序列化请求
- 现在使用 服务处理器 来
- 然后请求返回并序列化为数组。
事件
您可以在 此处 查看可用的事件。