Maison >cadre php >Laravel >Extension Laravel développée sur la base de hprose/hprose-php : Introduction à laravel-hprosed

Extension Laravel développée sur la base de hprose/hprose-php : Introduction à laravel-hprosed

不言
不言original
2018-08-28 17:01:043078parcourir

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

Exigences de version

Laravel>=5.3

Installation

composer require "zhuqipeng/laravel-hprose:v1.0-alpha"

Ou modifiez composer.json

"require": {
    "zhuqipeng/laravel-hprose": "v1.0-alpha"
}

Configuration

  1. 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,
]
  1. 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
  1. 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

en utilisant

routage

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
Ajouter une méthode de routage

\LaravelHproseRouter::add(string $name, string|callable $action, array $options = []);
  • string $name Le nom de la méthode qui peut être appelée à distance par le client

  • string |callable $action class method, format : AppControllersUser@update

  • array $options est un tableau associatif, qui contient des paramètres spéciaux pour la fonction de service. Pour plus de détails, veuillez vous référer à hprose. -Lien d'introduction du document officiel php

Publier la méthode d'appel à distance

et getUserByNameupdate

\LaravelHproseRouter::add(&#39;getUserByName&#39;, function ($name) {
    return &#39;name: &#39; . $name;
});

\LaravelHproseRouter::add(&#39;userUpdate&#39;, &#39;App\Controllers\User@update&#39;, [&#39;model&#39; => \Hprose\ResultMode::Normal]);
Contrôleur

<?php

namespace App\Controllers;

class User
{
    public function update($name)
    {
        return &#39;update name: &#39; . $name;
    }
}
Appels clients

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

\LaravelHproseRouter::group(array $attributes, callable $callback);
  • array $attributes attributs ['namespace' => '', 'prefix' => 🎜>

  • Fonction de rappel $callback appelable
Appel client
\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;);
});

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

Appel client
\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;);
});

Démarrer le service
$client->user->getByName(&#39;zhuqipeng&#39;);
$client->user->update(&#39;zhuqipeng&#39;);
// 或者
$client->user_getByName(&#39;zhuqipeng&#39;);
$client->user_update(&#39;zhuqipeng&#39;);

Recommandations associées :
php artisan hprose:socket_server

Ré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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn