Im vorherigen Artikel „Ein kurzer Vortrag über das Verantwortungskettenmodell in PHP“ haben wir das Verantwortungskettenmodell in PHP vorgestellt. In diesem Artikel werden wir Sie mit dem Agenturmodell im PHP-Designmuster vertraut machen.
Der Beruf des Maklers hat in China einen anderen Namen: Immobilienmakler und Versicherungsmakler. Tatsächlich wird dieser Beruf im Ausland als Immobilienmakler oder Versicherungsmakler bezeichnet. Wie der Name schon sagt, helfen sie uns bei der Bewältigung der für die meisten von uns unbekannten Berufsfelder. Das Gleiche gilt für den Proxy-Modus. Gleichzeitig werden in diesem Artikel auch Forward-Proxy und Reverse-Proxy kurz vorgestellt.
GoF-Definition: Stellen Sie einen Proxy für andere Objekte bereit, um den Zugriff auf dieses Objekt zu steuern.
GoF-Klassendiagramm
Die Implementierung des Proxy-Modus ist eigentlich sehr einfach. Bitte beachten Sie den Unterschied zwischen dem Proxy-Modus und dem VorlagenmodusDekorator: Wenn ein Objekt dekoriert wird, erhöht sich normalerweise das Methodenverhalten, hauptsächlich durch Dekorieren des Objekts.
Adapter ändert im Allgemeinen das Methodenverhalten. Der Zweck besteht darin, die Einheit der Schnittstelle beizubehalten, aber unterschiedliche Implementierungen zu erhalten. Vorlagenmethodenmuster , worüber wir später sprechen werden. Soweit Sie hier wissen, besteht die Vorlagenmethode darin, die Methoden zum Aufrufen von Unterklassen in der abstrakten Klasse zu kombinieren. Es gibt verschiedene Formen des Proxy-Modus: Remote-Proxy (z. B. Schnittstellen-SDK eines Drittanbieters). ), virtueller Proxy (zum Beispiel: asynchrones Laden von Bildern), Schutz-Proxy und intelligente Führung (zum Beispiel: Berechtigungsschutz) und der am häufigsten von unserem Code implementierte Proxy besteht tatsächlich darin, die Proxy-Klasse den Betrieb der realen Klasse ersetzen zu lassen**
Vollständiger Quellcode: https://github.com/zhangyue0503/designpatterns-php/blob/master/12.proxy/source/proxy-msg.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();
Das Beispiel ist sehr einfach und es handelt sich immer noch um die Implementierung eines gewöhnlichen Proxys. Hier sprechen wir über Forward-Proxy und Reverse-Proxy. Normalerweise ist das, was wir als wissenschaftlichen Internetzugang (Fanqiang) bezeichnen, ein Forward-Proxy. Wir verwenden Software oder die Konfiguration eines Proxy-Gateways, um selbst auf das Internet zuzugreifen, bedeutet tatsächlich, dass wir die Anfrage an das angegebene Gateway senden und dieses Gateway dann in unserem Namen auf andere Websites zugreifen lassen. Dieser von uns festgelegte und ausgewählte Proxy ist die Weiterleitung Proxy ist den meisten PHPern relativ klar, schließlich hat Nginx mittlerweile Apache abgelöst und ist zur Standardkonfiguration von PHP geworden. Wenn wir eine Website besuchen, befinden sich bestimmte Pfade oder Domänennamen nicht unbedingt auf diesem Server. Sie werden auf dem Server direkt an andere Server oder sogar die Websites anderer Personen weitergeleitet. Diejenigen von uns, die auf der Website surfen, wissen nicht, dass es sich um eine Situation handelt, in der wir unerklärlicherweise einen Reverse-Proxy verwenden. Dies ist im Allgemeinen ein notwendiges Wissen über den Backend-Betrieb und die Wartung von Diensten.
Ursprüngliche Adresse: https://juejin.cn/post/6844903959988011016Autor: Hardcore Project Manager
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonLassen Sie uns über den Proxy-Modus in PHP sprechen (Forward-Proxy und Reverse-Proxy).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!