php源码 研究,PHP源码研究

本文探讨了PHP的内部结构,重点关注SAPI(服务器应用编程接口)和Zend引擎。SAPI作为PHP的接入层,处理用户请求并调用PHP内核执行脚本。常见的SAPI包括CLI和php-fpm,前者用于命令行执行,后者处理网络请求并与Web服务器交互。Zend引擎是PHP的核心,负责编译和执行PHP代码,包括编译器和执行器两部分。接下来的章节将主要分析Zend引擎的源码。
摘要由CSDN通过智能技术生成

最近闲来无事,所以对PHP这门语言进行更深一层的了解,对源码进行一番研究,是如何执行我们写的PHP脚本的。

1.1.3 PHP的相关组成

1.1.3.1 SAPI

PHP本身可以理解为是一个库函数,提供语言的编译与执行服务,它有标准的输入、输出,而SAPI是PHP的接入层,它接收用户的请求,然后调用PHP内核提供的一些接口完成PHP脚本的执行,所以严格意义上讲SAPI并不算PHP内核的一部分。

PHP的角色就好比是leveldb,它实现了基本存储功能,但是没有网络处理模块,而我们基于leveldb实现的完整存储服务就好比是SAPI。

PHP中常用的SAPI有cli、php-fpm,cli是命令行下执行PHP脚本的实现:bin/php script.php,它是单进程的,处理模型比较简单,而php-fpm相对比较复杂,它实现了网络处理模块,用于与web服务器交互。

1.1.3.2 Zend引擎

Zend是PHP语言实现的最为重要的部分,是PHP最基础、最核心的部分,它的源码在/Zend目录下,PHP代码从编译到执行都是由Zend完成的,后面章节绝大部分的源码分析都是针对Zend的。Zend整体由两个部分组成:

编译器: 负责将PHP代码编译为抽象语法树,然后进一步编译为可执行的opcodes,这个过程相当于GCC的工作,编译器是一个语言实现的基础

执行器: 负责执行编译器输出的opcodes,也就是执行PHP脚本中编写的代码逻辑

2.相关文章

[[译] 理解 PHP 内部函数的定义(给PHP开发者的PHP源码-第二部分)][1]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值