Le contenu de cet article concerne l'extension Laravel développée sur la base de hprose/hprose-php : l'introduction de laravel-hprosed, qui a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer, j'espère que cela sera utile. vous. aider.
Extension Laravel développée sur la base de hprose/hprose-php : laravel-hprose
Laravel>=5.3
composer require "zhuqipeng/laravel-hprose:v1.0-alpha"
Ou modifiez composer.json
"require": { "zhuqipeng/laravel-hprose": "v1.0-alpha" }
Enregistrez ServiceProvider et Facade dans config/app.php (Laravel 5.5 ne nécessite pas d'enregistrement manuel)
'providers' => [ // ... Zhuqipeng\LaravelHprose\ServiceProvider::class, ]
'aliases' => [ // ... 'LaravelHproseMethodManage' => Zhuqipeng\LaravelHprose\Facades\HproseMethodManage::class, ]
Fichier Configuration.env
Liste des adresses d'écoute, tableau au format string json
HPROSE_URIS=["tcp://0.0.0.0:1314"]
S'il faut activer la méthode de démonstration, true pour activer, false pour désactiver. Après l'activation, une méthode d'appel à distance sera automatiquement diffusée vers le monde extérieurdemo
Le client peut appeler : $client. ->demo()
HPROSE_DEMO=true // true or false
Créer des fichiers 配置
et 路由
:
php artisan vendor:publish --provider="Zhuqipeng\LaravelHprose\ServiceProvider"
De nouveaux fichiers seront automatiquement généré dans le répertoire config
sous le répertoire racine de l'application hprose.php
Un nouveau fichier sera automatiquement généré dans le répertoire routes
sous le répertoire racine de l'application rpc.php
et laravel
L'utilisation du routage est similaire. De simples modifications ont été apportées au code de routage basé sur dingo/api
Fichier de routage
<. 🎜>routes/rpc.php
\LaravelHproseRouter::add(string $name, string|callable $action, array $options = []);
et 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);
\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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!