php源代码分析

php源代码分析

ID:37177137

大小:46.51 KB

页数:4页

时间:2019-05-21

php源代码分析_第1页
php源代码分析_第2页
php源代码分析_第3页
php源代码分析_第4页
资源描述:

《php源代码分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《PHP源代码分析》第一章构建系统之准备工具、库及需要具备的基础知识PHP源代码分析V0.0.1第一章构建系统1.准备工具、库及需要具备的基础知识;2.如何编译不同平台的版本?编译时的各个选项是什么含义?源码的目录结构。3.如何创建一个PHP扩展/模块?如何创建一个Zend扩展?4.如何调试PHP?如何调试PHP/Zend扩展?第二章PHP与SAPI的生命周期1.脚本的运行周期,一切从main()开始;2.模块/脚本的起始与终止函数;3.PHPSAPI协议;4.嵌入式PHP设计。第三章内存管理1.Zen

2、d的内存管理器框架;2.内存申请与释放流程,垃圾回收;3.持久化(persistence)第四章线程安全1.为何会有这个问题?ZendEngine是如何解决的?2.我是否该启用ZTS?各有什么优缺点?3.如何构建一个ZTS的程序/扩展?第五章变量与常量1.PHP中的数据类型。2.变量、常量与静态变量。3.引用计数机制;4.资源的创建与回收;5.未来字符串的UNICODE支持、JIT支持。第六章函数1.函数的内部布局;2.函数的定义;1.如何获取函数的参数、可选参数、参数默认值;2.函数的返回值;第七章类

3、与对象1.类的内部布局(属性、方法);2.构造函数与析构函数;3.类的继承与转换(upcasting与downcasting);4.接口(轻量级的类),微观上与类的差别;5.类之间的upcasting和downcasting。6.stdClass。第八章错误与异常1.什么是错误、什么是异常。两者的区别;2.如何创建和抛出异常;3.try/catch的设计与实现;第九章流(Streams)支持1.这方面我接触较少,内容待定;第十章虚拟机1.脚本编译机制(词法分析、语法分析);2.脚本的执行机制(CALL

4、

5、SWITCH

6、GOTO);3.各个符号表的作用;4.开发OPCode缓存器;5.开发PHP调试器;附录1.完整的PHPAPI、ZendAPI以及宏(Micro)参考(长期工程)2.ZendEngine1的主要特性,与ZendEngine2的主要差别;3.ZendEngine3的主要特性,与ZendEngine2的主要差别;4.相关资源·项目发起:Ben(ben.yanatmsndotcom·项目参与:Ben(ben.yanatmsndotcom,http://www.yAnbiN.org)·项目启动:2

7、007/06/09(希望可以在明年奥运会开幕前完成)·项目进度:1.2007/06/09项目启动,讨论项目规划;2.2007/xx/xx待续……http://www.yanbin.org/blog/commentary-on-php-chap1_1-prep.html源码分析,首先得看源码。记事本可以看,EditPlus也可以看,但显然具有语法着色功能的EditPlus要比记事本爽。更显然,M$的VisualC++比EditPlus还要爽。:D因此我推荐的第一款神兵就是M$VisualC++(Sorry

8、,Linuxer~)。既然用了VisualC++那么有一款它的插件我们不得不提:VisualAssistX,还没有她的朋友尽快拥有她吧~OK,现在源码是可以看了,而且是很舒服地在看,但有时我们还想实地进行单步调试以一窥究竟。要调试自然得先编译。很不幸,PHP在Windows环境下的编译和调试并不像想象中的那么简单。我们至少得比在xNix环境下多做一下几个步骤:1.下载PHP使用的DNS解析器的源代码(http://www.php.net/extra/bindlib_w32.zip)并将其编译输出一个名为

9、resolv.lib的库文件。2.下载win32编译工具http://www.php.net/extra/win32build.zip,解压至某一目录(假定为$work)。在$worklib目录里面也有个resolv.lib,我们把步骤1产生的resolv.lib复制到这个目录,覆盖之。3.设置编译环境。把$Workbin添加到系统PATH环境变量和VisualC++的Executablefiles目录;把$worklib添加到Libraryfiles目录;把$Workinclude添加到Inc

10、ludefiles目录。4.下载PHP源文件并解压至$work。5.整理PHP的项目工程文件。PHP4.x的VC工程文件($PHPwin32php4ts*.dsw)是当时一直在维护的,因此可以直接拿来就用。PHP5.x增加了一种新的基于命令行的类Unix编译系统,使得编译PHP更为简单。于是相应的工程文件php5ts*.dsw便不再被PHP团队维护,也不能直接使用编译PHP5了。但我们恰恰不想单纯的编译,我们想的是在VisualC++里

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。