PHP8.1에 도입된 새로운 GRPC 확장
PHP는 웹 서버와 상호 작용하여 웹 콘텐츠를 동적으로 생성할 수 있는 널리 사용되는 서버 측 스크립팅 언어입니다. 최신 서비스 아키텍처의 요구 사항을 더 잘 충족하기 위해 PHP8.1 버전에는 PHP의 성능과 확장성을 더욱 향상시키는 새로운 GRPC 확장이 도입되었습니다. 이 기사에서는 GRPC 확장의 기본 개념을 소개하고 독자가 이 새로운 기능을 더 잘 이해하고 적용하는 데 도움이 되는 몇 가지 코드 예제를 제공합니다.
1. GRPC 소개
GRPC는 고성능 범용 오픈소스 RPC(원격 프로시저 호출) 프레임워크입니다. RPC는 프로그램이 기본 네트워크 세부 정보를 알지 못해도 다른 컴퓨터의 함수나 메서드를 직접 호출할 수 있도록 하는 컴퓨터 통신 프로토콜입니다. GRPC는 Google의 오픈 소스 HTTP/2 프로토콜 구현을 기반으로 하며 다음 특성을 가진 바이너리 전송 프로토콜을 사용합니다.
2. GRPC 확장 설치
GRPC를 사용하기 전에 먼저 GRPC 확장을 설치해야 합니다. PHP8.1에서는 GRPC 확장에 대한 지원이 기본적으로 제공됩니다.
GRPC 확장 설치: PECL 명령을 사용하여 GRPC 확장을 설치합니다.
pecl install grpc
php.ini 파일에서 GRPC 확장을 활성화합니다. php.ini 파일에 다음 구성을 추가합니다:
extension=grpc
3. GRPC 확장을 사용합니다.
설치가 완료된 후, GRPC 확장을 사용하여 원격 프로시저 호출을 수행할 수 있습니다. 아래에서는 GRPC 확장을 사용하는 방법을 설명하는 간단한 예를 제공합니다.
인터페이스 정의
먼저 인터페이스의 데이터 구조와 메소드를 설명하는 인터페이스 파일(.proto 파일)을 정의해야 합니다. 예를 들어, SayHello 메서드를 포함하는 Greeter 인터페이스를 정의합니다.
syntax = "proto3"; service Greeter { rpc SayHello (HelloRequest) returns (HelloResponse) {} } message HelloRequest { string name = 1; } message HelloResponse { string message = 1; }
코드 생성
다음으로 GRPC에서 제공하는 코드 생성 도구를 사용하여 .proto 파일을 기반으로 해당 클라이언트 및 서버 코드를 생성합니다. 먼저 프로토콜 버퍼 도구를 설치한 후 다음 명령을 실행하여 코드를 생성해야 합니다.
protoc --php_out=./out --grpc_out=./out --plugin=protoc-gen-grpc=/usr/local/bin/grpc_php_plugin greeter.proto
위 명령을 실행하면 생성된 PHP 코드 파일이 포함된 out 디렉터리가 생성됩니다.
서버 측 구현
다음으로 서버 측 코드를 구현할 수 있습니다. 코드에서는 인터페이스에 정의된 메서드를 구현해야 합니다. 예:
class GreeterImpl extends GreeterGreeterService { public function SayHello(GreeterHelloRequest $request): GreeterHelloResponse { $response = new GreeterHelloResponse(); $response->setMessage("Hello, " . $request->getName()); return $response; } }
서버 시작
다음 코드를 통해 GRPC 서버를 시작하고 지정된 포트를 수신할 수 있습니다.
$server = new SwooleServer('0.0.0.0', 50051, SWOOLE_PROCESS, SWOOLE_SOCK_TCP | SWOOLE_SSL); $server->set([ 'ssl_cert_file' => 'server.crt', 'ssl_key_file' => 'server.key', ]); $server->on("start", function (SwooleServer $server) { echo "GRPC server is started at 0.0.0.0:50051 "; }); $server->on("receive", function (SwooleServer $server, $fd, $fromId, $data) { $server->send($fd, $data); }); $server->start();
클라이언트 호출
마지막으로 원격 서버를 호출하는 클라이언트 코드를 작성할 수 있습니다. 네트워크 방법을 통해. 예:
$client = new GreeterGreeterClient('127.0.0.1:50051'); $request = new GreeterHelloRequest(); $request->setName("PHP"); $response = $client->SayHello($request); echo $response->getMessage();
위의 코드 예제를 통해 PHP8.1에서 GRPC 확장을 사용하여 원격 프로시저 호출을 만드는 방법을 배울 수 있습니다. GRPC 확장은 보다 효율적이고 안정적인 원격 통신 방법을 제공하여 현대적인 분산 시스템을 구축하는 데 도움을 줍니다. 실제 프로젝트에서는 GRPC 확장을 유연하게 사용하여 비즈니스 요구 사항에 따라 언어 간 마이크로서비스 아키텍처를 구축할 수 있습니다.
요약
GRPC 확장은 PHP8.1 버전에 도입된 중요한 기능으로, 이를 통해 PHP는 더욱 효율적이고 확장 가능한 RPC 기능을 가질 수 있습니다. 코드 예제를 통해 GRPC 확장의 기본 개념과 사용법을 이해했습니다. 독자들이 이 새로운 기능을 더 많이 배우고 적용하여 PHP 개발 능력을 향상시킬 수 있기를 바랍니다.
위 내용은 PHP8.1에 도입된 새로운 GRPC 확장의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!