hprose php用户手册,Laravel Hprose RPC 服务

该项目支持 Laravel 及非 Laravel 项目使用,支持 php >= 5.3 版本语法

注: 以下内容,默认你对 Hprose 已经有了一定了解。内容基于 Laravel 项目介绍。

安装

服务端安装即可,客户端可不安装

pecl install hprose

安装扩展包

composer require flc/laravel-hprose

配置

服务提供者与门面

Laravel >= 5.5 已增加包自动发现。旧版本,请手动设置

在 config/app.php 文件下加入服务提供者

'providers' => [

...

Flc\Laravel\Hprose\HproseServiceProvider::class,

]

在 config/app.php 文件下加入门面

'aliases' => [

...

'HproseRoute' => Flc\Laravel\Hprose\Facades\HproseRoute::class,

'HproseServer' => Flc\Laravel\Hprose\Facades\HproseServer::class,

'HproseClient' => Flc\Laravel\Hprose\Facades\HproseClient::class,

]

初始化文件

php artisan hprose:generator

执行完成后,会分别生成以下文件:

路由服务提供者:app/Providers/HproseRouteServiceProvider.php

路由文件:routes/hprose.php (该路由文件非 Laravel 路由,下文简称 Hprose 路由)

Hprose 路由控制器根目录默认在:app/Http/Controllers/Hprose 目录下,可自行在 app/Providers/HproseRouteServiceProvider.php 调整

在 config/app.php 文件下加入默认的 Hprose 路由服务提供者

'providers' => [

...

app\Providers\HproseRouteServiceProvider::class,

]

发布配置

php artisan vendor:publish --provider="Flc\Laravel\Hprose\HproseServiceProvider"

执行后,会生成配置文件路径:/config/hprose.php

使用

配置说明

配置文件路径:/config/hprose.php

return [

'server' => [

'default' => 'http',

'connections' => [

'http' => [

'protocol' => 'http',

],

],

],

'client' => [

'default' => 'http',

'connections' => array(

'http' => array(

'protocol' => 'http',

'uri' => 'http://192.168.2.67:9001/api/server', // 此处为服务端的连接地址

'async' => false,

),

),

]

];

目前版本,除客户端配置中的远程服务器地址外,其他配置默认即可

其他均为后续支持 swoole-http、tcp、websocket 等,做提前架设

服务端

增加一个 Laravel 路由,用于启动 Http 服务,如:

Route::any('hprose-server', 'HproseController@server');

对应控制器:

namespace App\Http\Controllers;

use HproseServer;

use HproseRoute;

class HproseController

{

public function server()

{

HproseServer::setRouter(HproseRoute::getRouter())->start();

}

}

Hprose 路由配置

HproseRoute::add('tests', 'Controller@tests');

HproseRoute::add('tests_one', 'Controller@tests')->option(['...']);

Controller@tests 的方法自行定义

客户端

namespace App\Http\Controllers;

use HproseClient;

class HproseController

{

public function client()

{

$result = HproseClient::tests('tests');

$result = HproseClient::connection('other')->tests('tests'); // 其他连接

$result = HproseClient::connection()->tests->one('tests');

print_r($result);

}

}

非 Laravel 项目使用

服务端

$router = new \Flc\Laravel\Hprose\Routing\Router;

$router->group(['prefix' => 'tests', 'namespace' => 'App\\Controllers'], function ($router) {

$router->add('one', 'Controller@one');

$router->add('two', 'Controller@two')->option(['...']);

$router->group(['prefix' => 'group'], function ($router) {

$router->add('one', 'Controller@group_one');

...

});

});

$app = [

'config' => [

'hprose.server.default' => 'http',

'hprose.server.connections' => [

'http' => [

'protocol' => 'http',

],

],

],

];

$server = new \Flc\Laravel\Hprose\Server($app);

$server->setRouter($router)->start();

客户端

$app = [

'config' => [

'hprose.client.default' => 'http',

'hprose.client.connections' => [

'http' => [

'protocol' => 'http',

'uri' => 'http://localhost/server.php',

'async' => false

]

]

]

];

$client = new \Flc\Laravel\Hprose\Client($app);

print_r($client->tests->one('222').PHP_EOL);

捐赠

如果你觉得本扩展对你有帮助,请捐赠以表支持,谢谢~~

1460000020026665?w=200&h=200 微信

1460000020026666?w=200&h=200支付宝

...

License

MIT

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值