- php源码
去http://php.net/downloads.php下载自己想要的php源码版本,这里是php 5.6.30版本 - 解压后会如下列表:ls -l | grep ‘^d’
drwxr-xr-x. 2 1000 1000 4096 Jan 19 08:17 build
drwxr-xr-x. 79 1000 1000 4096 Jan 19 08:17 ext
drwxr-xr-x. 3 1000 1000 4096 Jan 19 08:52 main
drwxr-xr-x. 2 1000 1000 4096 Jan 19 08:17 netware
drwxr-xr-x. 2 1000 1000 4096 Jan 19 08:52 pear
drwxr-xr-x. 25 1000 1000 4096 Jan 19 08:17 sapi
drwxr-xr-x. 5 1000 1000 4096 Jan 19 08:17 scripts
drwxr-xr-x. 10 1000 1000 4096 Jan 19 08:17 tests
drwxr-xr-x. 3 1000 1000 4096 Jan 19 08:17 travis
drwxr-xr-x. 2 1000 1000 4096 Jan 19 08:17 TSRM
drwxr-xr-x. 3 1000 1000 4096 Jan 19 08:17 win32
drwxr-xr-x. 4 1000 1000 4096 Jan 19 08:52 Zend
- 下面依次介绍下各个目录作用和内容
- build : 源码编译相关文件如buildconf和环境检测等文件
- ext : 存放php扩展,包含绝大多数的函数定义和实现,如array、pdo、spl等函数实现。
- main:php核心文件,主要实现php的基本设施(Zend是实现语言运行的环境)
- zend : zend引擎实现的核心目录,脚本词法语法解析,opcode执行以及扩展机制的实现
- pear: php扩展与应用仓库,包含pear的核心功能
- sapi: 各服务器的抽象层代码.如apache的mod_php,fast_cgi,cgi,fpm的接口
- TSRM: php线程安全构建基础,常见*G宏是对TRSM的封装(线程安全资源管理器)