PHP ソース コードの学習 -- ライフ サイクル_PHP チュートリアル
私はphpを2年間使っていますが、表面だけは知っていますが、内部は理解していません。勉強中はその意味を理解していません。ここで重要な点に注意してください。
すべての始まり: SAPI インターフェース
SAPI (サーバー アプリケーション プログラミング インターフェイス) は、PHP の特定のアプリケーション プログラミング インターフェイスを指し、Web サーバー、コマンド ライン、または他のプログラムへの埋め込みなど、さまざまな方法で実行できます。 Web サーバーで PHP スクリプトをテストするか、コマンドラインでスクリプトを実行します。スクリプトの実行後、Web サーバーが応答し、ブラウザーが応答情報を表示するか、端末にコンテンツを表示します。1) モジュール初期化フェーズ (MINIT)、このプロセスは、sapi ライフサイクル全体 (Apache が開始された後のライフサイクル全体、またはコマンドライン プログラムの実行プロセス全体など) で 1 回だけ実行されます。
2) モジュールアクティブ化フェーズ (RINIT)、このプロセスはリクエストフェーズで発生します。たとえば、URL を通じてページがリクエストされた場合、モジュールのアクティブ化はリクエストの前に実行されます。たとえば、PHP によって登録された一部の拡張モジュールが呼び出されます。 MINIT フェーズのすべてのモジュールを戻します。モジュールはこの段階で、定数の登録、モジュールで使用されるクラスの定義などの初期化作業を実行します。
2. リクエスト処理: リクエストが到着すると、PHP は、PHP の実行中に変数名と値の内容を保存するシンボル テーブルやすべてのシンボルを含む実行環境の作成など、スクリプトを実行するための基本的な環境を初期化します。現在の関数、クラス、その他の情報を表示します。次に、PHP はすべてのモジュールの RINIT 関数を呼び出します。この段階で、各モジュールはいくつかの関連する操作も実行できます。
3. リクエストの終了: リクエストが処理された後、通常、スクリプトが最後まで実行され、exit() または die() 関数が呼び出されるとき、PHP は対応する終了ステージに入ります。スタートステージ、エンドステージも2つのリンクに分かれています
。1)モジュール(RSHUTDOWN、RINITに相当)を無効化します
2) sapiライフサイクルが終了したら(Webサーバーが終了するか完了後にコマンドラインが終了する)、モジュール(MSHUTDOWN、MINITに相当)を閉じます
単一プロセス SAPI ライフサイクル
コマンドラインモードの PHP は単一プロセス sapi モードに属し、処理プロセス全体には次のリンクのみが含まれます: 開始-要求開始-要求終了-終了。ライフサイクルが完了します。単一プロセスの Sapi ライフサイクルは図に示すとおりです:
コマンドラインに加えて、Apache など、PHP リクエストを最もよく処理する別のタイプの Web サーバーがあります。Apache は、Web サーバーとして、Apache が起動された後、複数の自己プロセスをフォークします。プロセス、各プロセス メモリ空間は独立しており、各子プロセスは開始ステージと終了ステージを通過します。ただし、各子プロセスの開始はプロセスがフォークアウトした後にのみ発生し、プロセスの存続期間全体にわたって複数のリクエストが処理される可能性があります。サイクル。シャットダウン フェーズは、Apache がシャットダウンされるか、プロセスが終了した後にのみ開始され、これらの 2 つのフェーズの間で、各リクエストが処理され、リクエストは閉じられます。マルチプロセスsapiのライフサイクルは図のとおりです。
マルチスレッド モードはマルチプロセス モードと似ていますが、異なる点は、リクエストの開始と終了のリンクがライフサイクル全体にわたって並行して繰り返されることです。
(転載の際は出典を明記してください:著者: jmol、Weibo: http://weibo.com/yospace Blog Park: http://www.cnblogs.com/yoainet/)
http://www.bkjia.com/PHPjc/741586.html

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Vue.js と ASP.NET の組み合わせは、Web アプリケーションのパフォーマンスの最適化と拡張のためのヒントと提案を提供します。Web アプリケーションの急速な開発に伴い、パフォーマンスの最適化は開発者にとって不可欠かつ重要なタスクになっています。人気のフロントエンド フレームワークとして、Vue.js を ASP.NET と組み合わせることで、より優れたパフォーマンスの最適化と拡張を実現できます。この記事では、いくつかのヒントと提案を紹介し、いくつかのコード例を示します。 1. HTTP リクエストの削減 HTTP リクエストの数は、Web アプリケーションの読み込み速度に直接影響します。合格

翻訳者 | Chen Jun によるレビュー | Chonglou 1990 年代、ソフトウェア プログラミングというと、通常、エディタを選択し、コードを CVS または SVN コード ベースにチェックインし、コードを実行可能ファイルにコンパイルすることを意味していました。 Eclipse や Visual Studio などの対応する統合開発環境 (IDE) は、プログラミング、開発、ドキュメント化、構築、テスト、展開、その他のステップを完全なソフトウェア開発ライフ サイクル (SDLC) に統合できるため、開発者の作業効率が向上します。近年、人気のクラウド コンピューティングと DevSecOps 自動化ツールにより、開発者の包括的な能力が向上し、より多くの企業がソフトウェア アプリケーションを開発、展開、保守することが容易になりました。今日、生成 AI は次世代の開発です

ASP.NET プログラムで MySQL 接続プールを正しく使用し、最適化するにはどうすればよいですか?はじめに: MySQL は、高いパフォーマンス、信頼性、使いやすさを特徴とする、広く使用されているデータベース管理システムです。 ASP.NET 開発では、データ ストレージに MySQL データベースを使用することが一般的な要件です。データベース接続の効率とパフォーマンスを向上させるには、MySQL 接続プールを正しく使用し、最適化する必要があります。この記事では、ASP.NET プログラムで MySQL 接続プールを正しく使用し、最適化する方法を紹介します。

ASP.NETプログラムでMySQLに再接続するにはどうすればよいですか? ASP.NET 開発では、MySQL データベースを使用するのが非常に一般的です。ただし、ネットワークまたはデータベース サーバーの理由により、データベース接続が中断されたりタイムアウトになったりする場合があります。この場合、プログラムの安定性と信頼性を確保するために、接続が切断された後に接続を再確立する必要があります。この記事では、ASP.NET プログラムで MySQL 接続を再接続する方法を紹介します。必要な名前空間を最初に参照するには、コード ファイルの先頭でそれらを参照します。

Vue.js と ASP.NET の組み合わせにより、エンタープライズ レベルのアプリケーションの開発と展開が可能になります。今日の急速に発展するインターネット テクノロジ分野では、エンタープライズ レベルのアプリケーションの開発と展開がますます重要になっています。 Vue.js と ASP.NET は、フロントエンドとバックエンドの開発で広く使用されている 2 つのテクノロジであり、これらを組み合わせることで、エンタープライズ レベルのアプリケーションの開発と展開に多くの利点をもたらします。この記事では、コード例を通じて、Vue.js と ASP.NET を使用してエンタープライズ レベルのアプリケーションを開発およびデプロイする方法を紹介します。まず、インストールする必要があります

ASP.NETプログラムでMySQL接続プールを正しく構成して使用する方法は?インターネットの発展とデータ量の増加に伴い、データベースへのアクセスと接続の需要も増加しています。データベースのパフォーマンスと安定性を向上させるために、接続プーリングは不可欠なテクノロジーになっています。この記事では、データベースの効率と応答速度を向上させるために、ASP.NET プログラムで MySQL 接続プールを正しく構成および使用する方法を主に紹介します。 1. コネクションプーリングの概念と機能 コネクションプーリングはデータベースコネクションを再利用する技術であり、プログラムの冒頭で使用されます。

ASP.NET プログラムで MySQL 接続プールのトランザクション パフォーマンスを正しく使用し、最適化するにはどうすればよいですか? ASP.NET プログラムでは、データベース トランザクションは非常に重要な部分です。トランザクションにより、データベースの一貫性と整合性が確保されると同時に、パフォーマンスも向上します。 MySQL データベースを使用する場合、接続リソースを管理し、パフォーマンスを最適化するために接続プールを使用することが不可欠です。まず、MySQL 接続プールの概念を簡単に理解しましょう。接続プールは、接続グループのバッファ プールです。

Linux での ASP.NET 開発に Visual Studio を使用するための推奨構成の概要: オープン ソース ソフトウェアの開発と Linux オペレーティング システムの人気に伴い、Linux で ASP.NET を開発し始める開発者が増えています。 Visual Studio は、強力な開発ツールとして、Windows プラットフォームで常に支配的な地位を占めてきました。この記事では、Linux 上で VisualStudio を ASP.NE 用に構成する方法を紹介します。
