本篇文章給大家帶來的內容是關于基于 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'?=>?[ ????//?... ????ZhuqipengLaravelHproseServiceProvider::class, ]
'aliases'?=>?[ ????//?... ????'LaravelHproseMethodManage'?=>?ZhuqipengLaravelHproseFacadesHproseMethodManage::class, ]
-
配置.env文件
立即學習“PHP免費學習筆記(深入)”;
監聽地址列表,字符串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="ZhuqipengLaravelHproseServiceProvider"
應用根目錄下的config目錄下會自動生成新文件hprose.php
應用根目錄下的routes目錄下會自動生成新文件rpc.php
使用
路由
和 laravel 路由的用法相似,基于 dingo/api 的路由代碼上做了簡單修改
路由文件
routes/rpc.php
添加路由方法
-
string $name 可供客戶端遠程調用的方法名
-
string|callable $action 類方法,格式:AppControllersUser@update
-
array $options 是一個關聯數組,它里面包含了一些對該服務函數的特殊設置,詳情請參考hprose-php官方文檔介紹 鏈接
發布遠程調用方法 getUserByName 和 update
LaravelHproseRouter::add('getUserByName',?function?($name)?{ ????return?'name:?'?.?$name; }); LaravelHproseRouter::add('userUpdate',?'AppControllersUser@update',?['model'?=>?HproseResultMode::Normal]);
控制器
<?php Namespace AppControllers; 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'?=>?'AppControllers'],?function?($route)?{ ????$route->add('getUserByName',?function?($name)?{ ????????return?'name:?'?.?$name; ????}); ????$route->add('userUpdate',?'User@update'); });
客戶端調用
$client->getUserByName('zhuqipeng'); $client->userUpdate('zhuqipeng');
前綴
LaravelHproseRouter::group(['namespace'?=>?'AppControllers',?'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
相關推薦: