>PHP 프레임워크 >Laravel >hprose/hprose-php를 기반으로 개발된 Laravel 확장: laravel-hprosed 소개

hprose/hprose-php를 기반으로 개발된 Laravel 확장: laravel-hprosed 소개

不言
不言원래의
2018-08-28 17:01:043096검색

이 글의 내용은 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"
}

Configuration

  1. 을 편집하세요. ServiceProvider를 config/app.php에 등록하고 Facade(Laravel 5.5에서는 수동 등록이 필요하지 않음)

'providers' => [
    // ...

    Zhuqipeng\LaravelHprose\ServiceProvider::class,
]
'aliases' => [
    // ...

    'LaravelHproseMethodManage' => Zhuqipeng\LaravelHprose\Facades\HproseMethodManage::class,
]
  1. Configuration.env 파일

Listening 주소 목록, 문자열 json 형식 배열

HPROSE_URIS=["tcp://0.0.0.0:1314"]

데모 방법을 활성화할지 여부, true로 활성화하면 false로 닫힙니다. 활성화된 후 자동으로 외부 세계에 노출됩니다. 원격 호출 방법 demodemo

客户端可调用:$client->demo()

HPROSE_DEMO=true // true or false
  1. 创建配置路由文件:

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官方文档介绍 链接

发布远程调用方法 getUserByNameupdate

를 게시합니다. 클라이언트는 다음을 호출할 수 있습니다: $client->demo()

\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 &#39;update name: &#39; . $name;
        }
    }
  • 새 파일 hprose.php가 다음 아래의 config 디렉토리에 자동으로 생성됩니다. 응용 프로그램 루트 디렉터리

    routesrpc.php가 /code> 디렉터리에 자동으로 생성됩니다
  • 라우팅

    사용
은 laravel 라우팅, dingo/api의 라우팅 코드를 기반으로 간단하게 수정

라우팅 파일

$client->getUserByName(&#39;zhuqipeng&#39;);
$client->userUpdate(&#39;zhuqipeng&#39;);

라우팅 메소드 추가

\LaravelHproseRouter::group(array $attributes, callable $callback);

string $name 원격으로 호출할 수 있는 메소드 이름 client

string|callable $action 클래스 메소드, 형식: AppControllersUser@update

array $options는 서비스 기능에 대한 일부 특수 설정이 포함된 연관 배열입니다. 자세한 내용은 hprose-php를 참조하세요. 공식 문서 소개 링크

🎜원격 호출 방법 getUserByNameupdate🎜
\LaravelHproseRouter::group([&#39;namespace&#39; => &#39;App\Controllers&#39;], function ($route) {
    $route->add(&#39;getUserByName&#39;, function ($name) {
        return &#39;name: &#39; . $name;
    });

    $route->add(&#39;userUpdate&#39;, &#39;User@update&#39;);
});
🎜Controller🎜
$client->getUserByName(&#39;zhuqipeng&#39;);
$client->userUpdate(&#39;zhuqipeng&#39;);
🎜Client call🎜
\LaravelHproseRouter::group([&#39;namespace&#39; => &#39;App\Controllers&#39;, &#39;prefix&#39; => &#39;user&#39;], function ($route) {
    $route->add(&#39;getByName&#39;, function ($name) {
        return &#39;name: &#39; . $name;
    });

    $route->add(&#39;update&#39;, &#39;User@update&#39;);
});
🎜Routing group🎜
$client->user->getByName(&#39;zhuqipeng&#39;);
$client->user->update(&#39;zhuqipeng&#39;);
// 或者
$client->user_getByName(&#39;zhuqipeng&#39;);
$client->user_update(&#39;zhuqipeng&#39;);
🎜🎜🎜array 공개 $속성 속성 ['네임스페이스' => '', '접두사' => '']🎜🎜🎜🎜호출 가능한 $callback 콜백 함수🎜🎜🎜
php artisan hprose:socket_server
🎜클라이언트 호출🎜rrreee🎜prefix🎜rrreee🎜클라이언트 호출🎜rrreee🎜 서비스 시작🎜rrreee🎜관련 권장사항: 🎜🎜🎜Laravel 프레임워크 라우팅 구성 요약, 설정 기술 모음, laravel 프레임워크 🎜🎜🎜🎜🎜 laravel 프레임워크에서 기능을 확장하고 사용자 정의 클래스를 확장하는 방법, laravel 프레임워크 🎜🎜

위 내용은 hprose/hprose-php를 기반으로 개발된 Laravel 확장: laravel-hprosed 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.