ホームページ >バックエンド開発 >PHPの問題 >php はどのエンジンに基づいていますか?

php はどのエンジンに基づいていますか?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼オリジナル
2019-09-25 11:37:183377ブラウズ

php はどのエンジンに基づいていますか?

Zend エンジン

Zend エンジンは PHP 実装の中核であり、言語実装のインフラストラクチャを提供します。 PHP 言語の中核となる Zend Engine は、PHP ソース コード ディレクトリの Zend サブディレクトリに存在します。

なぜ Zend Engine なのか ?

·PHP3 は解釈と実行を同時に行う動作モードを採用しており、動作効率が非常に悪いです。

コード全体の結合度は比較的高く、スケーラビリティは十分ではありません。

1997 年、Zeev Suraski と Andi Gutmans は、これら 2 つの問題を解決するためにコードを書き直すことにしました。

最終的に、彼らはこのテクノロジーのコアエンジンを Zend Engine と名付けました。Zend とは Zeev Andi を意味します。

関連する推奨事項: 「php 基本チュートリアル

Zend エンジン関数

最初にプリコンパイル (コンパイル) してから実行しますまた。

字句解析 (Lexer): コードをトークン Toekn に分割します。

文法解析 (パーサー): 文法チェック。

オペレーション コード (オペコード) の生成: Zend エンジンはこれらのトークンをコンパイルし、コードをオペコードにコンパイルし、対応するパラメータと関数呼び出しをバインドします。

実行: Zend エンジンはこれらのオペコードを実行します。

php はどのエンジンに基づいていますか?メモリ管理

詳細なプロセスは次のとおりです。

PHP ソース コードディレクトリ構造

/    :主要包含一些说明文件以及设计方案。
Zend :Zend 引擎的实现目录。包括词法语法解析,OPCODE,提供语言运行环境。
TSRM :线程安全资源管理器。
build:放置一些和源码编译相关的一些文件。
ext  :官方扩展目录。包括array系列,pdo系列,spl系列等函数的实现。
main :最为核心的文件,实现PHP的基本设施。
pear :PHP 扩展与应用仓库。
sapi :各种服务器抽象层的代码。例如apache的mod_php,cgi,fastcgi以及fpm等等接口。
tests:PHP的测试脚本集合。
scripts:Linux 下的脚本目录。
win32:Windows平台相关的一些实现。

PHP コア

PHP コアは、Zend Engine と PHP Core の 2 つの部分で構成されます。

PHP コアは SAPI 層にバインドされており、PHP は上位の「サーバー」との通信を抽象化し、すべてのロジックを SAPI に抽象化してカプセル化します。

上位層サーバーの場合、PHP への呼び出しは SAPI を通じて行うことができ、「分離と統合」を実現します。
SAPI を呼び出す一般的な方法は次のとおりです。

·mod_php5: Apache 用の PHP モジュール。

·

CGI: フォークして実行。

Fastcgi: ロングライブ型 CGI。

CLI: PHP コマンドライン モード。 php はどのエンジンに基づいていますか?

###PHP のアーキテクチャ###############

以上がphp はどのエンジンに基づいていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。