ホームページ >バックエンド開発 >PHPチュートリアル >技術専門家が PHP_PHP チュートリアルの基本的な動作原理について語ります

技術専門家が PHP_PHP チュートリアルの基本的な動作原理について語ります

WBOY
WBOYオリジナル
2016-07-20 10:58:02836ブラウズ

最近サーバーを構築したのですが、ランプがどのように機能するのか、それともどのように接続されているのかを突然感じました。私は普段プログラムを書くだけで、その動作原理について考えたことはありませんでした:

PHP の基本的な動作原理

技術専門家が PHP_PHP チュートリアルの基本的な動作原理について語ります

図 1 からわかるように、PHP は下から上への4層システム

①Zendエンジン

Zendは完全に純粋なCで実装されており、PHPのコア部分であり、PHPコード(字句解析、構文解析、および一連のコンパイルプロセス)を実行可能ファイルに変換します。オペコードの処理と対応する処理メソッドは、基本的なデータ構造 (ハッシュテーブル、OO など)、メモリの割り当てと管理を実装し、外部呼び出しに対応する API メソッドを提供します。これはすべての周辺機能が zend を中心に実装されます。

②拡張機能

拡張機能は、zend エンジンを中心として、コンポーネントベースでさまざまな基本サービスを提供します。一般的なさまざまな組み込み関数 (配列シリーズなど)、標準ライブラリなどはすべて拡張機能を通じて実装されます。ユーザーは、機能拡張やパフォーマンスの最適化などの目的を達成するために、必要に応じて独自の拡張機能を実装することもできます (たとえば、現在 Tieba で使用されている PHP 中間層やリッチ テキスト解析は、拡張機能の典型的なアプリケーションです)。

③Sapi

Sapi の正式名は、サーバー アプリケーション プログラミング インターフェイスです。これは、PHP が一連のフック関数を通じて周辺データと対話できるようにする、非常にエレガントで成功した設計です。 PHP は、SAPI により、PHP 自体を上位層のアプリケーションから切り離し、分離することに成功しました。PHP は、異なるアプリケーションとの互換性を考慮する必要がなくなり、アプリケーション自体も独自の特性に応じて異なる処理方法を実装できます。これは、後ほど sapi の章で紹介します

④ 上位層アプリケーション

これは、私たちが通常作成する PHP プログラムです。Web サーバーを介して Web アプリケーションを実装したり、Web アプリケーションを使用したりするなど、さまざまな Sapi メソッドを通じてさまざまなアプリケーション モードを取得できます。コマンドライン スクリプトとして実行など。

アーキテクチャのアイデア:

エンジン (Zend) + コンポーネント (ext) モデルにより内部結合が削減されます

中間層 (sapi) が Web サーバーと php を分離します

*********** ** *********************************************** *** ***********

phpが車なら

車の骨格はphpそのもの

Zendは車のエンジン(エンジン)です

Ext 色々以下のコンポーネントは車の車輪です

Sapi は道路とみなすことができ、車はさまざまな種類の道路を走ることができます

そして、php プログラムの実行は、車が道路を走ることを意味します。

したがって、必要なものは次のとおりです: 優れたパフォーマンスのエンジン + 適切なホイール + 正しい滑走路

Apache と php の関係

Apache による php の解析は、多くのモジュールの中の php モジュールを通じて完了します。

498)this.width=498;' onmousewheel = 'javascript:return big(this)' alt="wps_clip_image-31721" src="http://www.bkjia.com/uploadfile/2013/0904 /20130904095355122.png" width="378" height="299" />
技術専門家が PHP_PHP チュートリアルの基本的な動作原理について語ります
技術専門家が PHP_PHP チュートリアルの基本的な動作原理について語ります
技術専門家が PHP_PHP チュートリアルの基本的な動作原理について語りますwps_clip_image -27187
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。