>  기사  >  백엔드 개발  >  PHP는 어떤 엔진을 기반으로 합니까?

PHP는 어떤 엔진을 기반으로 합니까?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼원래의
2019-09-25 11:37:183299검색

PHP는 어떤 엔진을 기반으로 합니까?

Zend Engine

Zend 엔진은 PHP 구현의 핵심이며 언어 구현을 위한 인프라를 제공합니다. PHP 언어의 핵심인 Zend 엔진은 PHP 소스 코드 디렉토리의 Zend 하위 디렉토리에 존재합니다.

왜 Zend 엔진인가?

​​ ·PHP3는 해석과 실행을 동시에 하는 운용 방식을 사용하고 있어 운용 효율이 매우 좋지 않습니다.

·코드의 전체적인 결합도가 상대적으로 높고 확장성이 좋지 않습니다.

1997년 Zeev Suraski와 Andi Gutmans는 이 두 가지 문제를 해결하기 위해 코드를 다시 작성하기로 결정했습니다.

결국 이 기술의 핵심 엔진을 Zend Engine이라고 명명했는데, Zend는 Zeev + Andi라는 뜻입니다.

관련 권장사항: "php 기본 튜토리얼"

Zend 엔진 기능

먼저 프리컴파일(Compile)한 후 실행(Execute)하세요.

·Lexer: 코드를 토큰으로 나눕니다.

·문법 분석(파서): 문법 검사.

​​ ·작동 코드(opcode) 생성: Zend 엔진은 이러한 토큰을 컴파일하고 해당 코드를 opcode로 컴파일한 후 해당 매개변수와 함수 호출을 바인딩합니다.

·실행: Zend 엔진은 이러한 opcode를 실행합니다.

·메모리 관리

자세한 과정은 아래 그림과 같습니다.

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 Core

PHP Core는 Zend 엔진 두 부분으로 구성됩니다. 그리고 PHP 코어.

PHP Core는 SAPI 레이어에 바인딩됩니다. PHP는 상위 "서버"와의 통신을 추상화하고 모든 로직을 SAPI로 추상화하고 캡슐화합니다.

상위 계층 서버의 경우 SAPI를 통해 PHP를 호출하여 "분리 및 통합"을 달성할 수 있습니다.

SAPI를 호출하는 일반적인 방법은 다음과 같습니다.

·mod_php5: Apache용 PHP 모듈.

·CGI: 포크 앤 실행.

·Fastcgi: Long-Live형 CGI.

·CLI: PHP 명령줄 모드.

PHP의 아키텍처

PHP는 어떤 엔진을 기반으로 합니까?

위 내용은 PHP는 어떤 엔진을 기반으로 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.