SAPI(Server Application Programming Interfac) is an application programming interface (API) provided by the web server to help other developers in extending the web server capabilities.
SAPI ist eine Anwendungsprogrammierschnittstelle (API), die anderen Entwicklungsprogrammen hilft, die Funktionalität von Webservern zu erweitern. Es abstrahiert externe Bedingungen und stellt eine Reihe fester und einheitlicher Schnittstellen für internes PHP bereit, sodass die eigene Implementierung von PHP nicht von der externen Umgebung beeinflusst werden kann und ein gewisses Maß an Unabhängigkeit gewahrt bleibt.
Zu den häufig verwendeten SAPIs in PHP gehören cli (Befehlszeilenmodus, Einzelprozess), php-fpm, CGI, Apache...
Es ähnelt ein wenig dem Strategiemodus und verwendet dieselbe Schnittstelle, aber die Implementierung wird es tun etwas anders sein.
Startphase vor Anfrage:
MINIT: Modulinitialisierungsphase. Initialisieren Sie einige Erweiterungen, Konstanten, Klassen, Ressourcen usw., alles Dinge, die von PHP-Skripten verwendet werden. (Residenter Speicher, kann von allen Anfragen verwendet werden.)
DRUCKEN: Modulaktivierungsphase. PHP ruft die RINIT-Funktion aller Module auf. In dieser Phase kann jedes Modul auch einige verwandte Vorgänge ausführen, z. B. die Initialisierung der von 本次请求
verwendeten Variablen.
Die Endphase nach der Anfrage:
RSHUTDOWN: Die Anfrage für diese Seite wurde ausgeführt, oder es wurde vom Benutzer gestorben (exit), zu diesem Zeitpunkt startet PHP das Recyclingprogramm, um die von dieser Anfrage verwendeten Ressourcen zu recyceln. Dieses Mal wird die RSHUTDOWN-Methode (allgemein als Request Shutdown bezeichnet) aller geladenen Erweiterungen ausgeführt. Zu diesem Zeitpunkt kann die Erweiterung die Variablentabelle im Kernel verwenden, um einige Dinge zu tun. Denn sobald PHP alle erweiterten RSHUTDOWN-Methoden ausführt, gibt es alle in dieser Anfrage verwendeten Ressourcen frei, wie zum Beispiel alle Variablen in der Variablentabelle, den gesamten in dieser Anfrage verwendeten Speicher usw.
MSHUTDOWN: PHP führt alle erweiterten MSHUTDOWN aus und gibt Ressourcen frei.
1. Einzelprozess-SAPI-Lebenszyklus (CLI/CGI)
2. Multi-Prozess-SAPI-Lebenszyklus (Apache2)
3. Multithread-SAPI-Lebenszyklus
4.Embed
Embed SAPI ist ein spezielles Sapi, mit dem Sie PHP/ZE in der C/C++-Sprachfunktion aufrufen können. (Ich weiß nicht viel darüber, ich schaue es mir morgen an! http://www.laruence.com/2008/09/23/539.html)
Sprechen Sie über den Lebenszyklus von PHP und den gesamten Ausführungsprozess von PHP. Und wie man mit dem PHP-Modul über SAPI kommuniziert. (Das Bild stammt im Wesentlichen vom Referenzlink und steht auf den Schultern der Vorgänger.)
PHP-Quellcode-Analyse – PHP-Lebenszyklus_PHP-Tutorial
PHP-Variablen-Lebenszyklus: PHP-Quellcode-Analyse – PHP-Lebenszyklus
PHP-Leben Zyklus-Opcode-Cache Was ist ein PHP-Wörterbuch-Scan? Wie man damit umgeht
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung des PHP-Lebenszyklus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!