PHPのライフサイクル

藏色散人
藏色散人転載
2019-11-08 15:22:042589ブラウズ

PHP アーキテクチャ図

PHPのライフサイクル

SAPI

SAPI (サーバー アプリケーション プログラミング インターフェイス)他の開発者が Web サーバーの機能を拡張できるように、Web サーバーによって提供されるアプリケーション プログラミング インターフェイス (API) です。外部条件を抽象化し、内部 PHP に一連の固定および統一されたインターフェイスを提供するため、PHP 自体の実装は外部環境の影響を受けることなく、ある程度の独立性を維持できます。

PHP で一般的に使用される SAPI には、cli (コマンド ライン モード、シングル プロセス)、php-fpm、CGI、Apache が含まれます...

これは、同じものを使用するストラテジー モードに似ています。インターフェイスですが、実装は少し異なります。

PHPのライフサイクルPHP の起動と終了

● リクエスト前の開始フェーズ:

MINIT:

モジュールの初期化フェーズ。拡張機能、定数、クラス、リソースなど、PHP スクリプトで使用されるすべてのものを初期化します。 (常駐メモリ。すべてのリクエストで使用できます。)

PRINT:

モジュールのアクティブ化フェーズ。 PHP はすべてのモジュールの RINIT 関数を呼び出します。この段階で、各モジュールは、このリクエストで使用される変数の初期化など、いくつかの関連操作も実行できます。

# リクエスト後の終了ステージ:

RSHUTDOWN:

このページのリクエストは実行されたか、ユーザーによって終了 (終了) されました。今度は、PHP はリサイクル プログラムを開始し、このリクエストで使用されたリソースをリサイクルします。今回は、ロードされたすべての拡張機能の RSHUTDOWN (一般にリクエスト シャットダウンとして知られています) メソッドが実行されます。このとき、拡張機能はカーネル内の変数テーブルを使用していくつかの処理を行うことができます。 PHP がすべての拡張 RSHUTDOWN メソッドを実行すると、変数テーブル内のすべての変数、このリクエストで要求されたすべてのメモリなど、このリクエストで使用されたすべてのリソースが解放されるためです。

MSHUTDOWN:

PHP はすべての拡張 MSHUTDOWN を実行し、リソースを解放します。

PHP のライフ サイクル

1. 単一プロセス SAPI ライフ サイクル (CLI/CGI)

2 .マルチプロセス SAPI ライフ サイクル (Apache2)PHPのライフサイクル

3.マルチスレッド SAPI ライフ サイクルPHPのライフサイクル

4 .Embed PHPのライフサイクル

Embed SAPI は、PHP/ZE が提供する関数を C/C 言語で呼び出すことができる特別な sapi です。

概要

PHP のライフサイクルと PHP の実行プロセス全体を見てみましょう。 SAPI を介して PHP モジュールと通信する方法.

以上がPHPのライフサイクルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。