本篇文章给大家带来的内容是关于基于 hprose/hprose-php开发的Laravel扩展:laravel-hprosed的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

基于 hprose/hprose-php 开发的Laravel扩展:laravel-hprose

版本要求Laravel>=5.3

安装composer require "zhuqipeng/laravel-hprose:v1.0-alpha"

或者编辑composer.json"require": {

"zhuqipeng/laravel-hprose": "v1.0-alpha"

}

配置在 config/app.php 注册 ServiceProvider 和 Facade (Laravel 5.5 无需手动注册)'providers' => [

// ...

Zhuqipeng\LaravelHprose\ServiceProvider::class,

]'aliases' => [

// ...

'LaravelHproseMethodManage' => Zhuqipeng\LaravelHprose\Facades\HproseMethodManage::class,

]配置.env文件

监听地址列表,字符串json格式数组HPROSE_URIS=["tcp://0.0.0.0:1314"]

是否启用demo方法,true开启 false关闭,开启后将自动对外发布一个远程调用方法 demo

客户端可调用:$client->demo()HPROSE_DEMO=true // true or false创建配置和路由文件:php artisan vendor:publish --provider="Zhuqipeng\LaravelHprose\ServiceProvider"

应用根目录下的config目录下会自动生成新文件hprose.php

应用根目录下的routes目录下会自动生成新文件rpc.php

使用

路由

和 laravel 路由的用法相似,基于 dingo/api 的路由代码上做了简单修改

路由文件routes/rpc.php

添加路由方法\LaravelHproseRouter::add(string $name, string|callable $action, array $options = []);string $name 可供客户端远程调用的方法名

string|callable $action 类方法,格式:AppControllersUser@update

array $options 是一个关联数组,它里面包含了一些对该服务函数的特殊设置,详情请参考hprose-php官方文档介绍 链接

发布远程调用方法 getUserByName 和 update\LaravelHproseRouter::add('getUserByName', function ($name) {

return 'name: ' . $name;

});

\LaravelHproseRouter::add('userUpdate', 'App\Controllers\User@update', ['model' => \Hprose\ResultMode::Normal]);

控制器<?php

namespace App\Controllers;

class User

{

public function update($name)

{

return 'update name: ' . $name;

}

}

客户端调用$client->getUserByName('zhuqipeng');

$client->userUpdate('zhuqipeng');

路由组\LaravelHproseRouter::group(array $attributes, callable $callback);array $attributes 属性 ['namespace' => '', 'prefix' => '']

callable $callback 回调函数\LaravelHproseRouter::group(['namespace' => 'App\Controllers'], function ($route) {

$route->add('getUserByName', function ($name) {

return 'name: ' . $name;

});

$route->add('userUpdate', 'User@update');

});

客户端调用$client->getUserByName('zhuqipeng');

$client->userUpdate('zhuqipeng');

前缀\LaravelHproseRouter::group(['namespace' => 'App\Controllers', 'prefix' => 'user'], function ($route) {

$route->add('getByName', function ($name) {

return 'name: ' . $name;

});

$route->add('update', 'User@update');

});

客户端调用$client->user->getByName('zhuqipeng');

$client->user->update('zhuqipeng');

// 或者

$client->user_getByName('zhuqipeng');

$client->user_update('zhuqipeng');

启动服务php artisan hprose:socket_server

相关推荐:

php hprose,基于 hprose/hprose-php开发的Laravel扩展:laravel-hprosed的介绍相关推荐

  1. php异业联盟平台源码,基于ThinkPHP5.1框架开发的B2C在线商城系统PHP源码

    会员优惠 会员优惠 月费会员8折.年费会员5折.永久会员2折 源码介绍 基于ThinkPHP5.1框架开发的B2C在线商城系统PHP源码,支持WAP手机端+微信小程序+支付宝小程序+多种支付方式! 这 ...

  2. catia三维轴承_浅谈基于CATIA二次开发的单排四点接触球轴承三维设计论文

    浅谈基于CATIA二次开发的单排四点接触球轴承三维设计论文 一.概述 单排四点接触球转盘轴承是一种能够同时承受较大轴向负荷.径向负荷和倾覆力矩等综合载荷,集支承.旋转.传动.固定等多种功能于一身的特殊 ...

  3. miui12 android版本,miui12基于安卓几版本开发的?miui12是安卓11吗

    miui12基于安卓几版本开发的?miui12系统已经在内测阶段了,还没有体验的用户朋友们对于miui12系统非常的好奇,想知道miui12基于安卓几,是安卓11吗?为了帮助大家有更全面的了解,今天小 ...

  4. 基于FPGA的以太网开发

      基于FPGA的以太网开发,在调试过的FPGA玩家开来,其实算不上很难的技术!但是如果只是菜鸟级别的选手,没有调试过的话,就有些头疼了!早在自己在实习的时候,就接触到XAUI(万兆以太网口)接口,但 ...

  5. 基于IAR上搭建开发MM32的环境

    简 介: 初步搭建了MindMotion基于IAR的软件开发环境.测试了基于DAPLink对于SeekFree开发板的开发功能.但是对于测试实验板,DAPLink无法寻找到目标MCU. 利用MM32- ...

  6. 基于Servlet+JSP+JavaBean开发模式的用户登录注册

    基于Servlet+JSP+JavaBean开发模式的用户登录注册 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复 ...

  7. 基于MINA框架快速开发网络应用程序

    1.MINA框架简介  MINA(Multipurpose Infrastructure for Network Applications)是用于开发高性能和高可用性的网络应用程序的基础框架.通过使用 ...

  8. 基于原子探索者stm32f407开发板的ucos-iii+lwip1.4.1的tcp server并发服务器完美解决例程(转)...

    源:基于原子探索者stm32f407开发板的ucos-iii+lwip1.4.1的tcp server并发服务器完美解决例程 转载于:https://www.cnblogs.com/LittleTig ...

  9. 基于ASP.Net Core开发的一套通用后台框架

    基于ASP.Net Core开发一套通用后台框架 写在前面 这是本人在学习的过程中搭建学习的框架,如果对你有所帮助那再好不过.如果您有发现错误,请告知我,我会第一时间修改. 知其然,知其所以然,并非重 ...

  10. Dipforge 3.0 a3 发布,基于 Web 的集成开发环境

    Dipforge 3.0 a3 主要是增强了 Web IDE,增加了一些改进的图标. Dipforge 是一个应用服务器,提供了快速企业开发,无需 CRUD,侧重于解决实际的问题. Dipforge  ...

最新文章

  1. 精心安利8个良心好用的学习神器和办公神器
  2. 点云数据向图像数据转换(附源码)
  3. MySQL datetime类型字段的毫秒四舍五入
  4. 示波器基本原理之二:采样率
  5. Java基础查漏补缺(2)
  6. 关于企业管理信息系统
  7. log4j每天生成一份html格式的日志
  8. 教你如何使用flask实现ajax数据入库
  9. Python 第三方模块安装出现的问题和解决方案.
  10. python执行速度太慢为什么还_为什么你写的Python运行的那么慢呢?
  11. oracle crystall ball,Oracle Crystal Ball下载
  12. Selenium 官网打不开怎么办?
  13. matlab中如何去掉多行注释_MATLAB中多行注释的三种方法
  14. 速度曲线规划 ---- 梯形速度曲线
  15. html表格打印自动换行,html 表格自动换行问题
  16. 分享一套国产化技术开发JAVA语言,大佬手下留情
  17. RK3399平台开发系列讲解(高速设备驱动篇)6.45、蓝牙系统架构
  18. ssm项目——CRM客户管理系统开发准备
  19. cf自动退出服务器,win7登录穿越火线CF后自动退出四种解决方法
  20. Java同步锁Synchronized底层源码和原理剖析

热门文章

  1. excel文件修复工具_微软修复磁盘清理工具无法完全删除windows.old文件夹问题
  2. 服务器虚拟化分步实施,服务器虚拟化解决实施方案.doc
  3. 基于模型驱动低代码平台的实现原理
  4. Render to Texture
  5. 史上最全linux内核配置--Device drivers
  6. Windows右键菜单管理 图片右键菜单太长
  7. 解决Windows不在第一分区时变色龙引导问题
  8. 僵尸进程以及如何处理僵尸进程
  9. 索尼z5原生android6.0,索尼Z5怎么刷安卓6.0?索尼Z5刷安卓6.0固件包教程
  10. DW个人网站制作成品 简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码