이전 기사 "A Brief Talk on the Responsibility Chain Model in PHP"에서 PHP의 책임 사슬 모델을 소개했습니다. 이 기사에서는 PHP 디자인 패턴의 에이전시 모델을 이해하도록 안내합니다.
에이전트라는 직업은 중국에서는 부동산 중개인, 보험 중개인이라는 또 다른 이름을 가지고 있습니다. 실제로 이 직업은 해외에서는 부동산 중개인 또는 보험 중개인이라고 합니다. 이름에서 알 수 있듯이 이는 우리 대부분에게 익숙하지 않은 전문 분야의 작업을 처리하는 데 도움이 됩니다. 동시에 이 기사에서는 순방향 프록시와 역방향 프록시에 대해서도 간략하게 소개합니다.
GoF 정의: 이 개체에 대한 액세스를 제어하기 위해 다른 개체에 대한 프록시 제공
GoF 클래스 다이어그램
코드 구현
interface Subject { public function Request(); } class RealSubject implements Subject { function Request() { echo "真实的操作", PHP_EOL; } } class Proxy implements Subject { private $realSubject; public function __construct() { $this->realSubject = new RealSubject(); } public function Request() { echo "代理的操作", PHP_EOL; $this->realSubject->Request(); } } $proxy = new Proxy(); $proxy->Request();
전체 코드: https://github.com/ zhangyue0503/designpatterns-php/blob/master/12.proxy/source/proxy.php
Example
SMS 전송 클래스 다이어그램
전체 소스 코드: https://github.com/zhangyue0503/designpatterns-php/blob/master/12.proxy/source/proxy-msg.php
<?php interface SendMessage { public function Send(); } class RealSendMessage implements SendMessage { public function Send() { echo '短信发送中...', PHP_EOL; } } class ProxySendMessage implements SendMessage { private $realSendMessage; public function __construct($realSendMessage) { $this->realSendMessage = $realSendMessage; } public function Send() { echo '短信开始发送', PHP_EOL; $this->realSendMessage->Send(); echo '短信结束发送', PHP_EOL; } } $sendMessage = new ProxySendMessage(new RealSendMessage()); $sendMessage->Send();로그인 후 복사설명
예제는 매우 간단하며 여전히 일반 프록시의 구현입니다. 여기서는 순방향 프록시와 역방향 프록시에 대해 이야기합니다.
보통 우리가 과학적 인터넷 액세스(fanqiang)라고 부르는 것은 순방향 프록시입니다. 우리가 직접 인터넷에 액세스하기 위해 소프트웨어를 사용하거나 프록시 게이트웨이를 구성한다는 것은 실제로 요청을 지정된 게이트웨이로 보낸 다음 이 게이트웨이가 우리를 대신하여 다른 웹사이트에 액세스하도록 허용한다는 것을 의미합니다. 대부분의 PHP 사용자는 역방향 프록시에 대해 비교적 명확하게 알고 있습니다. 결국 Nginx는 Apache를 대체하고 PHP의 표준 구성이 되었습니다. 웹사이트를 방문할 때 특정 경로나 도메인 이름이 반드시 이 서버에 있는 것은 아닙니다. 이러한 이름은 서버에서 다른 서버나 다른 사람의 사이트로 직접 프록시됩니다. 웹사이트를 탐색하는 우리는 이것을 모릅니다. 역프록시라는 것을 모르고 설명할 수 없는 상황이 발생합니다. 이는 일반적으로 서비스의 백엔드 운영 및 유지 관리에 필요한 지식입니다!
- 원본 주소: https://juejin.cn/post/6844903959988011016
- 저자: Hardcore Project Manager
추천 학습: "
PHP 비디오 튜토리얼"
위 내용은 PHP의 프록시 모드(정방향 프록시 및 역방향 프록시)에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!