PHP アーキテクチャ図
SAPI
PHP で一般的に使用される SAPI には、cli (コマンド ライン モード、シングル プロセス)、php-fpm、CGI、Apache が含まれます...これは、同じものを使用するストラテジー モードに似ています。インターフェイスですが、実装は少し異なります。SAPI (サーバー アプリケーション プログラミング インターフェイス)他の開発者が Web サーバーの機能を拡張できるように、Web サーバーによって提供されるアプリケーション プログラミング インターフェイス (API) です。外部条件を抽象化し、内部 PHP に一連の固定および統一されたインターフェイスを提供するため、PHP 自体の実装は外部環境の影響を受けることなく、ある程度の独立性を維持できます。
PHP の起動と終了
● リクエスト前の開始フェーズ:
MINIT:
モジュールの初期化フェーズ。拡張機能、定数、クラス、リソースなど、PHP スクリプトで使用されるすべてのものを初期化します。 (常駐メモリ。すべてのリクエストで使用できます。)PRINT:
モジュールのアクティブ化フェーズ。 PHP はすべてのモジュールの RINIT 関数を呼び出します。この段階で、各モジュールは、このリクエストで使用される変数の初期化など、いくつかの関連操作も実行できます。# リクエスト後の終了ステージ:
RSHUTDOWN:
このページのリクエストは実行されたか、ユーザーによって終了 (終了) されました。今度は、PHP はリサイクル プログラムを開始し、このリクエストで使用されたリソースをリサイクルします。今回は、ロードされたすべての拡張機能の RSHUTDOWN (一般にリクエスト シャットダウンとして知られています) メソッドが実行されます。このとき、拡張機能はカーネル内の変数テーブルを使用していくつかの処理を行うことができます。 PHP がすべての拡張 RSHUTDOWN メソッドを実行すると、変数テーブル内のすべての変数、このリクエストで要求されたすべてのメモリなど、このリクエストで使用されたすべてのリソースが解放されるためです。MSHUTDOWN:
PHP はすべての拡張 MSHUTDOWN を実行し、リソースを解放します。PHP のライフ サイクル
1. 単一プロセス SAPI ライフ サイクル (CLI/CGI)
2 .マルチプロセス SAPI ライフ サイクル (Apache2)
3.マルチスレッド SAPI ライフ サイクル
4 .Embed
Embed SAPI は、PHP/ZE が提供する関数を C/C 言語で呼び出すことができる特別な sapi です。概要
PHP のライフサイクルと PHP の実行プロセス全体を見てみましょう。 SAPI を介して PHP モジュールと通信する方法.
以上がPHPのライフサイクルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。