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);
捐赠
如果你觉得本扩展对你有帮助,请捐赠以表支持,谢谢~~
微信
支付宝
...
License
MIT
hprose php用户手册,Laravel Hprose RPC 服务相关推荐
- PHP 使用 hprose RPC 服务 系列文章之二——Codeigniter3中使用Hprose
PHP 使用 hprose RPC 服务 系列文章之一--安装扩展 PHP 使用 hprose RPC 服务 系列文章之二--Codeigniter3中使用Hprose PHP 使用 hprose R ...
- golang python rpc_grpc - 使用 golang 带你从头撸一套 RPC 服务(一)
gRPC 是一个高性能.开源和通用的 RPC 框架,面向移动和 HTTP/2 设计,带来诸如双向流.流控.头部压缩.单 TCP 连接上的多复用请求等特.这些特性使得其在移动设备上表现更好,更省电和节省 ...
- 深入理解 RPC : 基于 Python 自建分布式高并发 RPC 服务
RPC(Remote Procedure Call)服务,也即远程过程调用,在互联网企业技术架构中占据了举足轻重的地位,尤其在当下微服务化逐步成为大中型分布式系统架构的主流背景下,RPC 更扮演了重要 ...
- NET Core微服务之路:自己动手实现Rpc服务框架,基于DotEasy.Rpc服务框架的介绍和集成...
原文:NET Core微服务之路:自己动手实现Rpc服务框架,基于DotEasy.Rpc服务框架的介绍和集成 本篇内容属于非实用性(拿来即用)介绍,如对框架设计没兴趣的朋友,请略过. 快一个月没有写博 ...
- pe修改rpc服务器不可用,ABBYY FineReader 12出现“RPC服务不可用”怎么办
原标题:ABBYY FineReader 12出现"RPC服务不可用"怎么办 是一款OCR图文识别软件,可快速方便地将扫描纸质文档.PDF文件和数码相机的图像转换成可编辑.可搜索的 ...
- yy神曲url解析php_使用PHP来简单的创建一个RPC服务
RPC全称为Remote Procedure Call,翻译过来为"远程过程调用".主要应用于不同的系统之间的远程通信和相互调用. 比如有两个系统,一个是PHP写的,一个是JAVA ...
- Laravel开发:Laravel核心——Ioc服务容器源码解析(服务器绑定)
服务容器的绑定 bind 绑定 bind 绑定是服务容器最常用的绑定方式,在 上一篇文章中我们讨论过,bind 的绑定有三种: 绑定自身 绑定闭包 绑定接口 今天,我们这篇文章主要从源码上讲解 Ioc ...
- voyage java_GitHub - yezilong9/voyage: 采用Java实现的基于netty轻量的高性能分布式RPC服务框架...
Voyage Overview 采用Java实现的基于netty轻量的高性能分布式RPC服务框架.实现了RPC的基本功能,开发者也可以自定义扩展,简单,易用,高效. Features 服务端支持注解配 ...
- 【.NET Core项目实战-统一认证平台】第十六章 网关篇-Ocelot集成RPC服务
一.什么是RPC RPC是"远程调用(Remote Procedure Call)"的一个名称的缩写,并不是任何规范化的协议,也不是大众都认知的协议标准,我们更多时候使用时都是创建 ...
- 基于 Python 自建分布式高并发 RPC 服务
RPC(Remote Procedure Call)服务,也即远程过程调用,在互联网企业技术架构中占据了举足轻重的地位,尤其在当下微服务化逐步成为大中型分布式系统架构的主流背景下,RPC 更扮演了重要 ...
最新文章
- 持续集成之戏说Check-in Dance
- iOS学习9_事件分发amp;响应链
- 使用lucce分词怎么_真小叮当深度学习:自然语言处理(三)文本处理之分词专题...
- Java开发者需要了解的移动开发编程语言
- springcloud-06-feign的使用
- 文件与目录权限,文件查找
- curl -windows下接口通讯
- Python3 协程 + 正则 批量爬取斗鱼美女图片
- dedecms备份mysql数据库文件_dedecms备份的数据库文件在哪里
- linux打开mysql某张表_Linux——MySQL多表连接
- 7-21-第三篇 validation相关操作
- 豆瓣电影详情数据爬取
- PHP实现手机号或身份证号中间几位变*
- 课堂笔记(3) 假设检验 Hypothesis testing
- Spark Mllib里的分布式矩阵(行矩阵、带有行索引的行矩阵、坐标矩阵和块矩阵概念、构成)(图文详解)...
- 机器学习的「反噬」:当 ML 用于密码破解,成功率竟然这么高!
- 2019计算机学院年会主持稿,2019年学术年会主持稿-范文汇编.doc
- [艺术创作]摄影构图的传统法则
- pythonsl火车加字_荐Python实现Radon变换——直接反投影和滤波反投影
- 取消小米笔记本插入耳机后弹框