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 소스 코드 디렉토리 구조
/ :主要包含一些说明文件以及设计方案。 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!