lao-liu / laravel-hprose
Hprose客户端/服务器提供程序,适用于Laravel 5.x或Lumen 5.x
0.9.1
2016-12-27 05:22 UTC
Requires
- php: >=5.6.4
- hprose/hprose: ^2.0
- illuminate/support: >=5.0
Requires (Dev)
- laravel/laravel: >=5.0
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-09-14 20:14:56 UTC
README
Hprose https://github.com/hprose
HPROSE
是一个高性能远程对象服务引擎。
它是一个现代、轻量级、跨语言、跨平台、面向对象、高性能的远程动态通信中间件。它不仅易于使用,而且功能强大。
安装
# composer
composer require lao-liu/laravel-hprose
对于Laravel 5.x
配置
# edit app/config/app.php # include the provider 'providers' => [ [...] Laoliu\LaravelHprose\HproseServiceProvider::class, ]; # include the alias 'aliases' => [ [...] 'RpcClient' => Laoliu\LaravelHprose\HproseClientFacade::class, 'RpcServer' => Laoliu\LaravelHprose\HproseServerFacade::class, 'RpcService' => Laoliu\LaravelHprose\HproseServiceFacade::class, ]; # Laravel config php artisan vendor:publish --provider="Laoliu\LaravelHprose\HproseServiceProvider"
配置文件
# config/hprose.php
laravel使用方法
Hprose客户端
use RpcClient as Rpc; $result = Rpc::someServerMethod($params);
Hprose服务器
Route::any('/api', function() { $server = app('RpcServer'); // Hprose support XmlRPC and JsonRPC // if want support XmlRpc $server->addFilter(new Hprose\Filter\XMLRPC\ServiceFilter()); // if want support JsonRpc $server->addFilter(new Hprose\Filter\JSONRPC\ServiceFilter()); $server->addInstanceMethods(new \App\Services\SomeHprosePublishServices()); $server->start(); });
中间件设置
# app/Http/Middleware/VerifyCsrfToken.php [...] protected $except = [ 'api' // OR 'api*' ];
完成。
对于Lumen 5.x
配置
# edit bootstrap/app.php $app->register(Laoliu\LaravelHprose\HproseServiceProvider::class); [...] class_alias('Laoliu\LaravelHprose\HproseClientFacade', 'RpcClient'); class_alias('Laoliu\LaravelHprose\HproseServerFacade', 'RpcServer'); class_alias('Laoliu\LaravelHprose\HproseServiceFacade', 'RpcService'); return $app;
Lumen使用方法
Hprose客户端
$rpc = app('RpcClient')->useService('http://hproseServiceUrl/', $async); $result = $rpc->remoteMethods($params);
Hprose服务器
Route::any('/api', function() { $server = app('RpcServer'); // Hprose support XmlRPC and JsonRPC // if want support XmlRpc $server->addFilter(new Hprose\Filter\XMLRPC\ServiceFilter()); // if want support JsonRpc $server->addFilter(new Hprose\Filter\JSONRPC\ServiceFilter()); $server->addInstanceMethods(new \App\Services\SomeHprosePublishServices()); $server->start(); });