Installer gRPC pour PHP

gRPC est un framework Open Source d'appel de procédure à distance, moderne et hautes performances. Si vous souhaitez utiliser des bibliothèques clientes PHP pour les API compatibles avec gRPC, vous devez installer gRPC pour PHP. Ce tutoriel explique comment installer et activer gRPC.

Objectifs

  • Installer l'extension gRPC pour PHP
  • Activer l'extension gRPC pour PHP

Conditions requises

  • PHP 7.0 ou version ultérieure
  • PECL (sauf si vous compilez à partir de la source)
  • Composer

Installer PECL

Ubuntu/Debian

sudo apt-get install autoconf zlib1g-dev php-dev php-pear

Si vous utilisez PHP 7.4 ou version ultérieure, PHP doit avoir été installé avec l'option --with-pear.

CentOS/RHEL 7

 sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
 sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
 sudo yum install php-devel php-pear gcc zlib-devel

macOS

 curl -O https://pear.php.net/go-pear.phar
 sudo php -d detect_unicode=0 go-pear.phar

Windows

Windows ne nécessite pas PECL.

Installer Composer

Linux

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

macOS

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Windows

Suivez les instructions d'installation officielles de Composer pour Windows.

Installer l'extension gRPC

À l'aide de PECL

sudo pecl install grpc

Cette opération compile et installe l'extension PHP gRPC dans le répertoire d'extension PHP standard.

Créer à partir de la source

Suivez ces instructions pour compiler la bibliothèque principale de gRPC et l'extension PHP depuis la source.

  1. Clonez le dépôt gRPC à partir de GitHub.

    git clone https://github.com/grpc/grpc
    
  2. Créez et installez la bibliothèque principale C de gRPC.

    cd grpc
    git submodule update --init
    make
    sudo make install
    
    It can take a few minutes to download and execute the library.
    If you have git version 1.8.4 or greater, you can speed up
    the `git submodule update --init` command by adding the `--depth=1`
    flag.
    
  3. Compilez l'extension PHP gRPC.

    cd src/php/ext/grpc
    phpize
    ./configure
    make
    sudo make install
    

Windows

Les utilisateurs Windows peuvent télécharger le package gRPC précompilé directement à partir du site Web PECL.

Lisez la documentation PHP sur l'installation d'extensions sous Windows.

Activer l'extension gRPC dans php.ini

Linux/macOS

Ajoutez cette ligne n'importe où dans votre fichier php.ini (par exemple, /etc/php7/cli/php.ini). Vous trouverez ce fichier en exécutant php --ini.

extension=grpc.so

Windows

Ajoutez cette ligne n'importe où dans votre fichier php.ini (par exemple, C:\Program Files\PHP\7.3\php.ini).

extension=php_grpc.dll

Ajouter gRPC en tant que dépendance de Composer

Utilisez Composer pour ajouter le package grpc/grpc à votre projet PHP :

composer require "grpc/grpc:^1.38"

Installer une bibliothèque d'exécution Protocol Buffers

Vous avez le choix entre deux bibliothèques d'exécution Protocol Buffers, qui proposent les mêmes API. La mise en œuvre C fournit de meilleures performances, tandis que la mise en œuvre PHP (native) est plus facile à installer.

Implémentation C

Pour des performances optimales avec gRPC, activez l'extension protobuf C.

Linux/macOS

Installez l'extension protobuf.so à l'aide de PECL.

sudo pecl install protobuf

Ajoutez la ligne suivante à votre fichier php.ini (par exemple, /etc/php5/cli/php.ini) :

extension=protobuf.so

Windows

Téléchargez l'extension protobuf précompilée directement à partir du site Web PECL.

Ajoutez la ligne suivante à votre fichier php.ini (par exemple, C:\Program Files\PHP\7.3\php.ini) :

extension=php_protobuf.dll

Implémentation PHP

Pour faciliter l'installation, spécifiez le package google/protobuf à l'aide de Composer.

composer require "google/protobuf:^3.17"

Étapes suivantes

Maintenant que vous avez installé gRPC et l'extension PHP gRPC, essayez les API compatibles avec gRPC, telles que Spanner.