In diesem Artikel werden die Prinzipien der PHP-Mehrpersonenentwicklung ausführlich erläutert und worauf geachtet werden muss. Für diejenigen, die die PHP-Sprache gerade erst gelernt haben oder bereits damit begonnen haben Auf der Suche nach einem Job Hallo Leute, verpassen Sie nicht diesen Artikel über die Analyse der Entwicklungsprinzipien von PHP-Multiplayer-Modulen! !
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.
Das Funktionsprinzip von PHP
Lassen Sie uns zunächst das Funktionsprinzip von PHP analysieren und einen Blick auf die Sprache werfen Eigenschaften von PHP. 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 wird über fastcgi_pass konfiguriert und leitet die Anfrage an PHP-FPM weiter, um den PHP-Code zu analysieren Parser jedes Mal Beginnen Sie mit dem Parsen von index.php, verarbeiten Sie es vollständig, führen Sie eine Reihe logischer Verarbeitungen durch, Abfrage Datenbank oder Cache und andere Vorgänge, geben Sie einen HTML-Code oder andere Ergebnisse an Nginx zurück, und Nginx gibt es zurück zum Browser. 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.
Mehrpersonen-Entwicklungsumgebung
Aus dem PHP-Prinzip können wir erkennen, dass PHP eigentlich nur ein interpretiertes Skript ist Sprache: Jede Anfrage muss von index.php aus analysiert werden. Können wir dann viele Ordner auf dem Server nach den Namen verschiedener Entwickler benennen und in jedem Ordner das Code-Repository klonen und zu einem eigenen Zweig wechseln? 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-Anforderungsheader
Wir können Modify verwenden Durchsuchen Sie die Header des Server-Plug-Ins, ändern Sie die Header-Informationen der HTTP-Anforderung, legen Sie einen Parameter http_who auf wulv fest und rufen Sie ihn dann in Nginx ab.
Erweitern
Wenn die Bedingungen es zulassen, können Sie tatsächlich einen Gateway-Server erstellen und auf der Konfigurationsseite eine Konfigurationsseite erstellen Verzeichnis, auf das Sie zugreifen müssen, hilft Ihnen das Gateway 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.
Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er kann für alle hilfreich sein! !
Verwandte Empfehlungen:
Detaillierte Erläuterung der Prinzipien der PHP-Mehrspieler-Entwicklungsumgebung
So implementieren Sie Session with Redis in der PHP-DistributionDie perfekte Lösung für PHPs Unfähigkeit, große Dateien hochzuladen
Das obige ist der detaillierte Inhalt vonAnalyse der PHP-Multiplayer-Modulentwicklungsprinzipien_php-Fähigkeiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!