目次
SMS 機能を停止できません。今回はシンプルなプロキシ モードで前後のプロンプトを追加します。
ホームページ バックエンド開発 PHPチュートリアル PHP のプロキシ モード (フォワード プロキシとリバース プロキシ) について話しましょう。

PHP のプロキシ モード (フォワード プロキシとリバース プロキシ) について話しましょう。

Jul 13, 2021 pm 07:16 PM
php プロキシモード デザインパターン

前の記事「 PHP の責任連鎖モデルについての簡単な話 」では、PHP の責任連鎖モデルについて紹介しましたが、この記事では、PHP デザイン パターンにおけるエージェンシー モデルについて理解します。

PHP のプロキシ モード (フォワード プロキシとリバース プロキシ) について話しましょう。

代理店という職業は、中国では不動産ブローカー、保険ブローカーという別名があり、実際、海外では不動産エージェント、保険代理店と呼ばれています。名前が示すように、これらは私たちのほとんどにとってなじみのない専門分野での仕事を処理するのに役立ちます。プロキシモードについても同様ですが、同時にフォワードプロキシとリバースプロキシについても簡単に紹介します。

#Gof クラス図と説明

#GoF 定義: このオブジェクトへのアクセスを制御するために、他のオブジェクトにプロキシを提供します#GoF クラス図

##コードの実装PHP のプロキシ モード (フォワード プロキシとリバース プロキシ) について話しましょう。

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();
ログイン後にコピー

の実装プロキシ モードは実際には非常にシンプルです。うっかり使用してしまうことがよくあります。

プロキシ モードとデコレータやアダプタの違いに注意してください。また、テンプレート メソッドのパターンもよく似ています。
  • Decorator、一般にオブジェクトを装飾し、メソッドの動作が増加し、主にオブジェクトを変更します。
  • Adapter、一般にメソッドの動作が変更され、目的はインターフェイスの統一性を維持することです。ただし、別の実装を取得します
  • テンプレート メソッド パターンについては後で説明します。ここで知っている限り、テンプレート メソッドは抽象クラスのサブクラスを呼び出すメソッドを結合するものです。
  • プロキシ モードにはいくつかの形式があります: リモート プロキシ (例: サードパーティ インターフェイス SDK)、仮想エージェント (例: 画像の非同期ロード)、保護エージェントとインテリジェント ガイダンス (例: 権限の保護)、および最も一般的に実装されるエージェント私たちのコードは、実際には、実際のクラスの操作をエージェント クラスに置き換えることを目的としています
  • **
完全なコード: https://github.com/zhangyue0503/ designpatterns-php/blob/master/12.proxy/source/proxy.php

SMS 機能を停止できません。今回はシンプルなプロキシ モードで前後のプロンプトを追加します。

SMS 送信クラス図

完全なソース コード: https://github.com/zhangyue0503/designpatterns- php /blob/master/12.proxy/source/proxy-msg.phpPHP のプロキシ モード (フォワード プロキシとリバース プロキシ) について話しましょう。

<?php

interface SendMessage
{
    public function Send();
}

class RealSendMessage implements SendMessage
{
    public function Send()
    {
        echo &#39;短信发送中...&#39;, PHP_EOL;
    }
}

class ProxySendMessage implements SendMessage
{
    private $realSendMessage;

    public function __construct($realSendMessage)
    {
        $this->realSendMessage = $realSendMessage;
    }

    public function Send()
    {
        echo &#39;短信开始发送&#39;, PHP_EOL;
        $this->realSendMessage->Send();
        echo &#39;短信结束发送&#39;, PHP_EOL;
    }
}

$sendMessage = new ProxySendMessage(new RealSendMessage());
$sendMessage->Send();
ログイン後にコピー

手順

この例は非常に簡単です。はまだ通常のプロキシ実装です。ここでは、フォワード プロキシとリバース プロキシについて説明します。

通常、科学的インターネット アクセス (ファン強) と呼ばれるものは、フォワード プロキシです。インターネットにアクセスするには、ソフトウェアを使用するか、プロキシ ゲートウェイを自分で設定します。実際、私たちは「リクエストが指定されたゲートウェイに送信され、このゲートウェイが私たちに代わって他の Web サイトにアクセスします。私たちが指定および選択したこの種類のプロキシがフォワード プロキシです。
  • ほとんどの PHPer は比較的よく知っています」結局のところ、現在では Nginx が Apache に代わって PHP の標準構成となっています。私たちが Web サイトにアクセスするとき、特定のパスやドメイン名がこのサーバー上にあるとは限りません。それらは、サーバー上で他のサーバーや他の人のサイトに直接プロキシされます。 Webサイトを閲覧している私たちにはわかりませんが、このように知らず知らずのうちにプロキシされている状況がリバースプロキシなのですが、一般的にサービスのバックエンド運用や保守には必須の知識です!
  • 元のアドレス: https://juejin.cn/post/6844903959988011016
著者: ハードコア プロジェクト マネージャー

推奨学習: "

PHP ビデオ チュートリアル

"

以上がPHP のプロキシ モード (フォワード プロキシとリバース プロキシ) について話しましょう。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

See all articles