php源码目录结构

sapi

输入输出层抽象

cgi模式对应bin/cgi

fastcgi模式对应sbin/php-fpm

cli模式对应bin/php

源码结构体:sapi_module_struct

cgi和fastcgi区别

zend

1.内存管理模块

Zend_alloc_sizes.h:

php内存分配单位

small:内存小与3072b

large:2072b-4kb之间

huge:大于2M

zend_alloc.h:内存操作函数声明

zend_alloc.c:内存管理实现,以及核心数据结构zend_mm_heap

2.垃圾回收

解决循环引用问题,引入了垃圾回收

zend_gc.h

zend.gc.c

3.数组实现

基于HashTable实现

zend_hash.h

zend_hash.c

main

sapi和zend粘合剂,分析脚本文件和参数,调用zend引擎之前初始化

php_module_startup:模块初始化

php_excute_script:脚本通用入口

ext

扩展相关

array、str、pdo等系列函数定义在这里

TSRM

线程安全资源管理器

你可能感兴趣的:(php源码目录结构)