이 글의 내용은 hprose/hprose-php를 기반으로 개발된 Laravel 확장에 관한 것입니다. laravel-hprosed의 소개는 특정 참고 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
hprose/hprose-php를 기반으로 개발된 Laravel 확장: laravel-hprose
Laravel>=5.3
composer require "zhuqipeng/laravel-hprose:v1.0-alpha"
또는 작곡가.json
"require": { "zhuqipeng/laravel-hprose": "v1.0-alpha" }
을 편집하세요. ServiceProvider를 config/app.php에 등록하고 Facade(Laravel 5.5에서는 수동 등록이 필요하지 않음)
'providers' => [ // ... Zhuqipeng\LaravelHprose\ServiceProvider::class, ]
'aliases' => [ // ... 'LaravelHproseMethodManage' => Zhuqipeng\LaravelHprose\Facades\HproseMethodManage::class, ]
Configuration.env 파일
Listening 주소 목록, 문자열 json 형식 배열
HPROSE_URIS=["tcp://0.0.0.0:1314"]
데모 방법을 활성화할지 여부, true로 활성화하면 false로 닫힙니다. 활성화된 후 자동으로 외부 세계에 노출됩니다. 원격 호출 방법 demo
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]);
구성 만들기
및 route
파일:
<?php namespace App\Controllers; class User { public function update($name) { return 'update name: ' . $name; } }
hprose.php
가 다음 아래의 config
디렉토리에 자동으로 생성됩니다. 응용 프로그램 루트 디렉터리
routesrpc.php
가 /code> 디렉터리에 자동으로 생성됩니다 $client->getUserByName('zhuqipeng'); $client->userUpdate('zhuqipeng');라우팅 메소드 추가
\LaravelHproseRouter::group(array $attributes, callable $callback);string $name 원격으로 호출할 수 있는 메소드 이름 client
string|callable $action 클래스 메소드, 형식: AppControllersUser@update
array $options는 서비스 기능에 대한 일부 특수 설정이 포함된 연관 배열입니다. 자세한 내용은 hprose-php를 참조하세요. 공식 문서 소개 링크
🎜원격 호출 방법getUserByName
및 update
🎜\LaravelHproseRouter::group(['namespace' => 'App\Controllers'], function ($route) { $route->add('getUserByName', function ($name) { return 'name: ' . $name; }); $route->add('userUpdate', 'User@update'); });🎜Controller🎜
$client->getUserByName('zhuqipeng'); $client->userUpdate('zhuqipeng');🎜Client call🎜
\LaravelHproseRouter::group(['namespace' => 'App\Controllers', 'prefix' => 'user'], function ($route) { $route->add('getByName', function ($name) { return 'name: ' . $name; }); $route->add('update', 'User@update'); });🎜Routing group🎜
$client->user->getByName('zhuqipeng'); $client->user->update('zhuqipeng'); // 或者 $client->user_getByName('zhuqipeng'); $client->user_update('zhuqipeng');🎜🎜🎜array 공개 $속성 속성 ['네임스페이스' => '', '접두사' => '']🎜🎜🎜🎜호출 가능한 $callback 콜백 함수🎜🎜🎜
php artisan hprose:socket_server🎜클라이언트 호출🎜rrreee🎜prefix🎜rrreee🎜클라이언트 호출🎜rrreee🎜 서비스 시작🎜rrreee🎜관련 권장사항: 🎜🎜🎜Laravel 프레임워크 라우팅 구성 요약, 설정 기술 모음, laravel 프레임워크 🎜🎜🎜🎜🎜 laravel 프레임워크에서 기능을 확장하고 사용자 정의 클래스를 확장하는 방법, laravel 프레임워크 🎜🎜
위 내용은 hprose/hprose-php를 기반으로 개발된 Laravel 확장: laravel-hprosed 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!