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.phpAjouter une méthode de routage
\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]);Contrôleur
<?php namespace App\Controllers; class User { public function update($name) { return 'update name: ' . $name; } }Appels clients
$client->getUserByName('zhuqipeng'); $client->userUpdate('zhuqipeng');Groupe de routes
\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'); });Préfixe
$client->getUserByName('zhuqipeng'); $client->userUpdate('zhuqipeng');Appel client
\LaravelHproseRouter::group(['namespace' => 'App\Controllers', 'prefix' => 'user'], function ($route) { $route->add('getByName', function ($name) { return 'name: ' . $name; }); $route->add('update', 'User@update'); });Démarrer le service
$client->user->getByName('zhuqipeng'); $client->user->update('zhuqipeng'); // 或者 $client->user_getByName('zhuqipeng'); $client->user_update('zhuqipeng');Recommandations associées :
php artisan hprose:socket_serverRésumé de la configuration du routage du framework Laravel et conseils de configuration, framework laravel Fonctions d'extension et extensions dans le framework Laravel Méthodes de classe personnalisées, framework laravel
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!