zfcampus / zf-rpc
Requires
- php: ^5.6 || ^7.0
- zendframework/zend-eventmanager: ^2.6.3 || ^3.0.1
- zendframework/zend-http: ^2.5.4
- zendframework/zend-mvc: ^2.7.15 || ^3.0.2
- zendframework/zend-servicemanager: ^2.7.6 || ^3.1
- zendframework/zend-stdlib: ^2.7.7 || ^3.0.1
- zendframework/zend-view: ^2.8.1
- zfcampus/zf-api-problem: ^1.2.1
- zfcampus/zf-content-negotiation: ^1.2.1
Requires (Dev)
- phpunit/phpunit: ^5.7.27 || ^6.5.8 || ^7.1.5
- zendframework/zend-coding-standard: ~1.0.0
This package is auto-updated.
Last update: 2020-01-20 17:31:57 UTC
README
仓库废弃于 2019-12-31
此仓库已迁移至 laminas-api-tools/api-tools-rpc。
简介
实现RPC网络服务的Zend Framework模块。
启用
- 将控制器定义为PHP可调用函数。
- 创建HTTP请求方法的白名单;白名单外的请求将返回一个带有
Allow
响应头,指示允许的方法的405 Method Not Allowed
响应。
要求
请参阅 composer.json 文件。
安装
运行以下composer
命令
$ composer require zfcampus/zf-rpc
或者,手动将以下内容添加到您的composer.json
文件中,在require
部分
"require": { "zfcampus/zf-rpc": "^1.3" }
然后运行composer update
以确保模块已安装。
最后,将模块名称添加到项目配置的config/application.config.php
中的modules
键下
return [ /* ... */ 'modules' => [ /* ... */ 'ZF\Rpc', ], /* ... */ ];
zf-component-installer
如果您使用zf-component-installer,该插件会帮您将zf-rpc作为模块安装。
配置
用户配置
此模块使用zf-rpc
顶级配置键。
键:控制器服务名称
zf-rpc
模块使用控制器服务名称与值的映射,这些值确定RPC样式控制器将如何行为。键应是一个控制器服务名称,同时也匹配路由配置中分配给路由的控制器服务名称。
在此键内部,以下子键是必需的
http_methods
:用于配置此RPC服务控制器可以响应的方法。这也用于填充此服务的Allow
响应头。route_name
:用于链接回特定路由。这对于RPC路由需要在其响应中构建链接时特别有用。callable
(可选):用于指定在调度时将被调用的可调用函数。在调度时,这些可调用函数通常被包装在一个ZF\Rpc\RpcController
实例中,这是一个可调用的动作控制器。
示例
'zf-rpc' => [ 'Application\Controller\LoginController' => [ 'http_methods' => ['POST'], 'route_name' => 'api-login', 'callable' => 'Application\Controller\LoginController::process', ], ],
系统配置
以下配置确保此模块在ZF2应用程序的上下文中正常运行
'controllers' => [ 'abstract_factories' => [ 'ZF\Rpc\Factory\RpcControllerFactory', ], ],
ZF2事件
监听器
ZF\Rpc\OptionsListener
此监听器注册到MvcEvent::EVENT_ROUTE
事件,优先级为-100
。它负责确保对于给定RPC服务的OPTIONS
请求的HTTP响应包含正确配置和允许的HTTP方法在Allow
头中。这使用了匹配服务的zf-rpc
服务配置中http_methods
键的配置。此外,它验证传入的请求方法是否在配置的http_methods
中,如果不是,则返回一个包含填充的Allow
头的405 Method Not Allowed
响应。
ZF2 服务
模型
ZF\Rpc\ParameterMatcher
此特定模型用于并有用,用于接受一个可调用对象和一组命名参数,并确定哪些可以用于可调用对象的参数。
控制器
ZF\Rpc\RpcController
此控制器用于将注册为RPC服务的可调用对象包装起来,以便使其成为ZF2可分发的。