Heim  >  Artikel  >  Detaillierte Erläuterung der Prinzipien der PHP-Multiplayer-Entwicklungsumgebung

Detaillierte Erläuterung der Prinzipien der PHP-Multiplayer-Entwicklungsumgebung

小云云
小云云Original
2017-12-08 09:12:162699Durchsuche

Als PHP-Entwickler können wir manchmal ein Projekt oder eine Funktion nicht alleine fertigstellen. Genauso wie bei einem Warehouse-Entwickler mit mehr als 1 oder 20 Personen kann jede Person unterschiedliche Module und Funktionen entwickeln und dabei Codeversions-Kontrolltools wie Der Prozess besteht wahrscheinlich darin, zunächst eine vollständige Umgebung lokal einzurichten, sie in der Testumgebung bereitzustellen und sie dann in der Vorabversion bereitzustellen ist im Grunde die gleiche wie die Linie, und dann wird das Produkt geprüft. Nach Abschluss der Abnahme wird es online freigegeben. Da es parallel entwickelt wird, 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 teilen wir mit Ihnen eine Analyse der Prinzipien der PHP-Multiplayer-Entwicklungsumgebung. git

PHP-Funktionsprinzip

Lassen Sie uns zunächst das Funktionsprinzip von

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

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;
  }
}

überwacht Port 80 und verwendet die entsprechende Nginx-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 vhost. Nginx wird über unix socket konfiguriert und leitet die Anfrage an fastcgi_pass weiter, um den PHP-Code zu analysieren ab PHP-FPM Starten Sie die Analyse, setzen Sie die Verarbeitung fort, führen Sie eine Reihe logischer Verarbeitungen durch, fragen Sie die Datenbank oder den Cache usw. ab, geben Sie ein index.php oder andere Ergebnisse an HTML zurück und geben Sie dann zum Browser. Der Prozess ist wie folgt: NginxNginx

Detaillierte Erläuterung der Prinzipien der PHP-Multiplayer-Entwicklungsumgebung

  • : Es handelt sich um eine Art Datenaustausch zwischen

    und CGI Protokoll. NginxPHP_FPM

  • : Wie

    handelt es sich um ein Kommunikationsprotokoll, das jedoch einige Effizienzoptimierungen aufweist als FastCGI. CGICGI

  • : Es handelt sich um das Schnittstellenprogramm des

    -Protokolls, das von PHP-CGI bereitgestellt wird. PHPNginxCGI

  • : Es handelt sich um ein Schnittstellenprogramm für das
  • -Protokoll, das von

    zu PHP-FPM bereitgestellt wird, und bietet außerdem eine relativ intelligente Aufgabenverwaltung. PHPNginxFastCGI

    Mehrpersonen-Entwicklungsumgebung
Aus dem

-Prinzip können wir erkennen, dass PHP eigentlich nur eine interpretierte Skriptsprache ist und jede Anfrage bei Können wir nach dem einmaligen Parsen viele Ordner auf dem Server nach den Namen verschiedener Entwickler benennen?

Wechseln Sie in das Code-Repository und in einen eigenen Zweig. Lassen Sie dann

den Index im Verzeichnis jeder Person verwalten. Greifen Sie beispielsweise direkt auf PHP zu, rufen Sie index.php in clone ab und legen Sie Nginx auf das Verzeichnis http://wulv.test.com/ fest, damit Sie auf den Code im Verzeichnis Nginx zugreifen können. Sie können wulv wie folgt festlegen: rootwulvwulv Wir können Nginx das Verzeichnis des Benutzers übertragen lassen, es in

abfangen und an den folgenden Orten übertragen:
set $who www;
if ($http_who != "") {
   set $who $http_who;
}
root /data/gateway/$who/html;

URLNginx

:
  • hosthttp://wulv.test.com

    :
  • pathhttp://www.test.com/wulv

    :
  • queryhttp://www.test.com?http_who=wulvDies kann im Allgemeinen die Anforderungen erfüllen, es gibt jedoch immer noch einige Probleme. Beispielsweise sind einige Links auf der Seite fest codiert und verwenden keine relativen Pfade, sobald Sie darauf klicken , sie werden erneut ausgeführt

    Gehen Sie dorthin, oder einige Anwendungen von Drittanbietern wie
  • müssen den Domänennamen überprüfen. Wenn der Domänenname nicht mit dem Online-Domänennamen übereinstimmt, können Sie sich überhaupt nicht anmelden. Daher sind andere Wege erforderlich, um dies zu erreichen, wie zum Beispiel:

www.test.comOAuth

  • http request header

  • cookieWir können das Browser-Plugin „Modify Headers“ verwenden, um die Header-Informationen

    zu ändern, einen Parameter
  • auf
zu setzen und ihn dann in

abzurufen. http requesthttp_whoErweiterungwulvNginxWenn die Bedingungen es zulassen, können Sie tatsächlich einen Gateway-Server erstellen, eine Konfigurationsseite erstellen und die Verzeichnisse konfigurieren, auf die beim nächsten Besuch zugegriffen werden muss Das Gateway hilft Ihnen direkt dabei,

als Proxy für den entsprechenden Server festzulegen. Auf diese Weise müssen Sie nicht einmal Browser-Plug-Ins installieren, was den Betrieb und das Produktdesign benutzerfreundlicher macht.

http header

PHP ist die beste Sprache der Welt und macht etwa 80 % des Webs aus. Kleine und mittlere Unternehmen nutzen grundsätzlich die lnmp-Architektur. Wenn es mehr als 1 oder 20 Entwickler in einem Warehouse gibt, entwickelt jede Person möglicherweise unterschiedliche Module und Funktionen und verwendet Tools zur Codeversionskontrolle wie git, um verschiedene Zweige zu öffnen. Der Prozess besteht wahrscheinlich darin, zunächst eine vollständige Umgebung lokal einzurichten Nach der Entwicklung wird es in der Testumgebung bereitgestellt. Nach dem Selbsttest oder Testertest wird es in der Vorabversionsumgebung bereitgestellt, und dann wird das Produkt akzeptiert. Nachdem die Abnahme abgeschlossen ist, wird sie freigegeben und online 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.

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 Nginx-Konfiguration von vhost 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 test.com-Konfiguration, wenn festgestellt wird, dass der vom Benutzer besuchte Domänenname vhost ist. Auf dem Server startet PHP-FPM einen Dienst und lauscht auf einen Port (z. B. 9001) oder einen unix socket. Nginx wird über fastcgi_pass konfiguriert und leitet die Anfrage an PHP-FPM weiter, um den PHP-Code zu analysieren Beginnt jedes Mal mit Starten Sie die Analyse, setzen Sie die Verarbeitung fort, führen Sie eine Reihe logischer Verarbeitungen durch, fragen Sie die Datenbank oder den Cache usw. ab, geben Sie ein index.php oder andere Ergebnisse an HTML zurück und geben Sie dann zum Browser. Der Prozess ist wie folgt: NginxNginx

Detaillierte Erläuterung der Prinzipien der PHP-Multiplayer-Entwicklungsumgebung

  • : Es handelt sich um eine Art Datenaustausch zwischen

    und CGI Protokoll. NginxPHP_FPM

  • : Wie

    handelt es sich um ein Kommunikationsprotokoll, das jedoch einige Effizienzoptimierungen aufweist als FastCGI. CGICGI

  • : Es handelt sich um das Schnittstellenprogramm des

    -Protokolls, das von PHP-CGI bereitgestellt wird. PHPNginxCGI

  • : Es handelt sich um ein Schnittstellenprogramm für das
  • -Protokoll, das von

    zu PHP-FPM bereitgestellt wird, und bietet außerdem eine relativ intelligente Aufgabenverwaltung. PHPNginxFastCGI

    Mehrpersonen-Entwicklungsumgebung
Aus dem

-Prinzip können wir erkennen, dass PHP eigentlich nur eine interpretierte Skriptsprache ist und jede Anfrage bei Können wir nach dem einmaligen Parsen viele Ordner auf dem Server nach den Namen verschiedener Entwickler benennen? In jedem Ordner,

gutes Code-Repository, wechseln Sie zu einem eigenen Zweig. Lassen Sie dann

den Index im Verzeichnis jeder Person verwalten. Greifen Sie beispielsweise direkt auf PHP zu, rufen Sie index.php in clone ab und legen Sie Nginx auf das Verzeichnis http://wulv.test.com/ fest, damit Sie auf den Code im Verzeichnis Nginx zugreifen können. Sie können wulv wie folgt festlegen: rootwulvwulv Wir können Nginx das Verzeichnis des Benutzers übertragen lassen, es in

abfangen und an den folgenden Orten übertragen:
set $who www;
if ($http_who != "") {
   set $who $http_who;
}
root /data/gateway/$who/html;

URLNginx

:
  • hosthttp://wulv.test.com

    :
  • pathhttp://www.test.com/wulv

    :
  • queryhttp://www.test.com?http_who=wulvDies kann im Allgemeinen die Anforderungen erfüllen, es gibt jedoch immer noch einige Probleme. Beispielsweise sind einige Links auf der Seite fest codiert und verwenden keine relativen Pfade. Sie werden erneut ausgeführt

    Gehen Sie dorthin, oder einige Anwendungen von Drittanbietern wie
  • müssen den Domänennamen überprüfen. Wenn der Domänenname nicht mit dem Online-Domänennamen übereinstimmt, können Sie sich überhaupt nicht anmelden. Daher sind andere Wege erforderlich, um dies zu erreichen, wie zum Beispiel:

www.test.comOAuth

  • http request header

  • cookieWir können das Browser-Plugin „Modify Headers“ verwenden, um die Header-Informationen

    zu ändern, einen Parameter
  • auf
zu setzen und ihn dann in

abzurufen. http requesthttp_whoErweiterungwulvNginxWenn die Bedingungen es zulassen, können Sie tatsächlich einen Gateway-Server erstellen, eine Konfigurationsseite erstellen und die Verzeichnisse konfigurieren, auf die beim nächsten Besuch zugegriffen werden muss Das Gateway hilft Ihnen direkt dabei,

als Proxy für den entsprechenden Server festzulegen. Auf diese Weise müssen Sie nicht einmal Browser-Plug-Ins installieren, was den Betrieb und das Produktdesign benutzerfreundlicher macht.

Verwandte Empfehlungen:

http header

Enthüllung der Übernahme der integrierten Entwicklungsumgebung phpstudy mit der größten Benutzerzahl im Land durch die chinesische PHP-Website

Liste der integrierten PHP-Entwicklungsumgebungen

So erstellen Sie eine JSP-Entwicklungsumgebung


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