Instala gRPC para PHP

gRPC es un marco de trabajo de llamada de procedimiento remoto moderno, de código abierto y de alto rendimiento. Si deseas usar las bibliotecas cliente de PHP con las API habilitadas en gRPC, debes instalar gRPC para PHP. En este instructivo, se explica cómo instalar y habilitar gRPC.

Objetivos

  • Instala la extensión de gRPC para PHP.
  • Habilita la extensión de gRPC para PHP.

Requisitos

  • PHP 7.0 o posterior
  • PECL (a menos que realices la compilación desde el origen)
  • Composer

Instala PECL

Ubuntu / Debian

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

Si usas PHP 7.4 o una versión superior, este se debe instalar con la marca --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 no requiere PECL.

Instala 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

Sigue las instrucciones de instalación oficiales de Composer para Windows.

Instala la extensión de gRPC

Cómo usar PECL

sudo pecl install grpc

Esto compila y también instala la extensión de gRPC para PHP en el directorio de extensiones de PHP estándar.

Compila a partir del código fuente

Sigue las instrucciones que se indican a continuación para compilar la biblioteca principal de gRPC y la extensión de PHP desde la fuente.

  1. Clona el repositorio de gRPC desde GitHub.

    git clone https://github.com/grpc/grpc
    
  2. Compila y también instala la biblioteca principal de gRPC C.

    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. Compila la extensión de gRPC para PHP.

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

Windows

Los usuarios de Windows pueden descargar el gRPC precompilado directamente desde el sitio web de PECL.

Lee la documentación de PHP para instalar extensiones en Windows.

Habilita la extensión de gRPC en php.ini

Linux/macOS

Agrega la siguiente línea en cualquier parte del archivo php.ini, por ejemplo, /etc/php7/cli/php.ini. Para encontrar este archivo, ejecuta php --ini.

extension=grpc.so

Windows

Agrega la siguiente línea en cualquier parte del archivo php.ini, por ejemplo, C:\Program Files\PHP\7.3\php.ini.

extension=php_grpc.dll

Agrega gRPC como una dependencia de Composer

Usa Composer para agregar el paquete grpc/grpc a tu proyecto de PHP:

composer require "grpc/grpc:^1.38"

Instala la biblioteca del entorno de ejecución de protobuf

Puedes elegir entre dos bibliotecas de Protobuf Runtime. Las API que ofrecen son idénticas. La implementación en C funciona mejor que la implementación (nativa) en PHP, mientras que la implementación nativa se instala más fácilmente que la implementación en C.

Implementación en C

Para mejorar el rendimiento con gRPC, habilita la extensión C en Protobuf.

Linux/macOS

Instala la extensión protobuf.so con PECL.

sudo pecl install protobuf

Ahora agrega esta línea a tu archivo php.ini, por ejemplo, /etc/php5/cli/php.ini.

extension=protobuf.so

Windows

Descarga la extensión precompilada de Protobuf directamente del sitio web de PECL.

Ahora agrega la línea siguiente a tu archivo php.ini, por ejemplo, C:\Program Files\PHP\7.3\php.ini.

extension=php_protobuf.dll

Implementación en PHP

Para facilitar la instalación, solicita el paquete google/protobuf mediante Composer.

composer require "google/protobuf:^3.17"

¿Qué sigue?

Ahora que instalaste gRPC y la extensión de gRPC para PHP, prueba las APIs habilitadas para gRPC, como Spanner.