Heim >Backend-Entwicklung >PHP-Tutorial >Beispielanalyse der Entwicklungsprinzipien von PHP-Multiplayer-Modulen

Beispielanalyse der Entwicklungsprinzipien von PHP-Multiplayer-Modulen

小云云
小云云Original
2017-12-14 09:57:301339Durchsuche

Als beste Sprache der Welt nimmt sie etwa 80 % des Webs ein. Kleine und mittlere Unternehmen nutzen grundsätzlich die LNMP-Architektur. Wenn es mehr als 1 oder 20 Entwickler in einem Warehouse gibt, kann jede Person unterschiedliche Module und Funktionen entwickeln und Tools zur Codeversionskontrolle wie Git verwenden, um verschiedene Zweige zu öffnen. Der Prozess besteht wahrscheinlich darin, zunächst eine vollständige Umgebung lokal einzurichten und zu entwickeln Stellen Sie es in der Testumgebung bereit und stellen Sie es in der Vorabversionsumgebung bereit. Nach Abschluss der Abnahme erfolgt die Bereitstellung. Es wird online veröffentlicht und gestartet.

Aufgrund der parallelen Entwicklung muss es Situationen geben, in denen mehrere Funktionen gleichzeitig akzeptiert oder getestet werden. Wessen Code wird zu diesem Zeitpunkt in der Vorabversionsumgebung bereitgestellt? Wenn Sie in den Zweig von A wechseln, kann B dies nicht akzeptieren. Daher hoffen wir, dass es eine Entwicklungsumgebung für mehrere Personen geben wird, in der sich der Entwicklungsprozess aller nicht gegenseitig beeinflusst. In diesem Artikel werden hauptsächlich die Prinzipien der PHP-Mehrpersonenentwicklung ausführlich erläutert und worauf geachtet werden muss. Ich hoffe, dass er allen helfen kann.

PHP-Funktionsprinzip

Lassen Sie uns zunächst das Funktionsprinzip von PHP analysieren und einen Blick auf die Spracheigenschaften von PHP werfen. Wenn wir eine Anfrage vom Browser initiieren, lauscht unser Webserver (Nginx, Apache usw.) auf Port 80 oder 443. Schauen wir uns die einfachste Vhost-Konfiguration von Nginx an:


server {
 listen    80;
 server_name test.com;
 
 root /data/gateway/html;
 index  index.php;

 location ~ \.php$ {
  fastcgi_pass  127.0.0.1:9001; #unix:/Users/run/php-fcgi.sock;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include    fastcgi_params;
 }
}


Nginx überwacht Port 80 und verwendet die entsprechende Vhost-Konfiguration, wenn festgestellt wird, dass der vom Benutzer besuchte Domänenname test.com ist. PHP-FPM startet einen Dienst auf dem Server und lauscht auf einen Port (z. B. 9001) oder einen Unix-Socket. Nginx leitet die Anfrage an PHP-FPM weiter, um den PHP-Code über die fastcgi_pass-Konfiguration zu analysieren Verarbeiten Sie es jedes Mal vollständig, führen Sie eine Reihe logischer Verarbeitungen durch, fragen Sie die Datenbank oder den Cache ab und geben Sie andere Vorgänge an Nginx zurück, und Nginx gibt es an den Browser zurück. Der Prozess ist wie folgt:

CGI: Es ist ein Protokoll für den Datenaustausch zwischen Nginx und PHP_FPM.

FastCGI: Wie CGI ist es ein Kommunikationsprotokoll, weist jedoch einige Effizienzoptimierungen auf als CGI.

PHP-CGI: Es ist das Schnittstellenprogramm von PHP für das von Nginx bereitgestellte CGI-Protokoll.

PHP-FPM: Es ist das PHP-Schnittstellenprogramm für das von Nginx bereitgestellte FastCGI-Protokoll. Es bietet auch eine relativ intelligente Aufgabenverwaltung.

Entwicklungsumgebung für mehrere Personen

Aus dem PHP-Prinzip können wir ersehen, dass PHP eigentlich nur eine interpretierte Skriptsprache ist und jede Anfrage vom Index analysiert werden muss. Können wir einmal viele Ordner auf dem Server nach den Namen verschiedener Entwickler benennen? Klonen Sie in jedem Ordner das Code-Repository und wechseln Sie zu einem eigenen Zweig. Lassen Sie dann Nginx den Index im Verzeichnis jeder Person verwalten. Greifen Sie beispielsweise direkt auf http://wulv.test.com/ zu, rufen Sie wulv in Nginx ab und legen Sie root auf das Wulv-Verzeichnis fest, damit Sie auf den Code im Wulv-Verzeichnis zugreifen können. Sie können Nginx wie folgt einstellen:


set $who www;
if ($http_who != "") {
  set $who $http_who;
}
root /data/gateway/$who/html;


Wir können die URL das Verzeichnis des Benutzers übertragen lassen und es in Nginx abfangen. Bringen Sie es an die folgenden Orte:

Host: http://wulv.test.com

Pfad: http://www.test.com/wulv

Abfrage: http://www.test.com?http_who=wulv

Dies kann im Allgemeinen die Anforderungen erfüllen, es gibt jedoch immer noch einige Probleme. Beispielsweise gibt es einige Links Seite sind fest codiert. Ohne die Verwendung eines relativen Pfads gelangen Sie zu www.test.com, sobald Sie darauf klicken, oder einige Anwendungen von Drittanbietern wie OAuth müssen den Domänennamen überprüfen, was jedoch nicht der Fall ist Sie können sich anmelden, wenn dieser nicht mit dem Online-Domänennamen übereinstimmt. Daher sind andere Wege erforderlich, um dies zu erreichen, wie zum Beispiel:

http-Request-Header

Cookie

Wir können das Browser-Plug-in „Modify Headers“ verwenden Um die HTTP-Anfrage zu ändern, setzen Sie für Header-Informationen einen Parameter http_who auf wulv und rufen Sie ihn dann in Nginx ab.

Erweitern

Wenn die Bedingungen es zulassen, können Sie bei Ihrem nächsten Besuch tatsächlich einen Gateway-Server erstellen und eine Konfigurationsseite erstellen, auf die zugegriffen werden muss , das Gateway Es hilft Ihnen direkt dabei, den HTTP-Header festzulegen und ihn an den entsprechenden Server weiterzuleiten. Auf diese Weise müssen Sie nicht einmal Browser-Plug-Ins installieren, was den Betrieb und das Produktdesign benutzerfreundlicher macht.

Verwandte Empfehlungen:

Einführung in Kenntnisse im Zusammenhang mit der PHP-Modulentwicklung

Was ist PHP-Modulentwicklung? Einführung in die einfache PHP-Modulentwicklung

Yii-Framework-Modulentwicklungsanalyse

Das obige ist der detaillierte Inhalt vonBeispielanalyse der Entwicklungsprinzipien von PHP-Multiplayer-Modulen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn