- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《PHP 源代码分析》第一章 构建系统 之 准备工具、库及需要具备的基础知识
PHP 源代码分析 V0.0.1
第一章 构建系统
准备 工具、库及需要具备的基础知识;
如何编译不同平台的版本?编译时的各个选项是什么含义?源码的目录结构。
如何创建一个 PHP 扩展/模块?如何创建一个 Zend 扩展?
如何调试 PHP?如何调试 PHP/Zend 扩展?
第二章 PHP 与 SAPI 的生命周期
脚本的运行周期,一切从 main() 开始;
模块/脚本的起始与终止函数;
PHP SAPI 协议;
嵌入式 PHP 设计。
第三章 内存管理
Zend 的内存管理器框架;
内存申请与释放流程,垃圾回收;
持久化(persistence)
第四章 线程安全
为何会有这个问题?Zend Engine 是如何解决的?
我是否该启用 ZTS?各有什么优缺点?
如何构建一个 ZTS 的程序/扩展?
第五章 变量与常量
PHP 中的数据类型。
变量、常量与静态变量。
引用计数机制;
资源的创建与回收;
未来字符串的 UNICODE 支持、JIT 支持。
第六章 函数
函数的内部布局;
函数的定义;
如何获取函数的参数、可选参数、参数默认值;
函数的返回值;
第七章 类与对象
类的内部布局(属性、方法);
构造函数与析构函数;
类的继承与转换(up casting 与 down casting);
接口(轻量级的类),微观上与类的差别;
类之间的 up casting 和 down casting。
stdClass。
第八章 错误与异常
什么是错误、什么是异常。两者的区别;
如何创建和抛出异常;
try/catch 的设计与实现;
第九章 流(Streams)支持
这方面我接触较少,内容待定;
第十章 虚拟机
脚本编译机制(词法分析、语法分析);
脚本的执行机制(CALL|SWITCH|GOTO);
各个符号表的作用;
开发 OPCode 缓存器;
开发 PHP 调试器;
附录
完整的 PHP API、Zend API 以及宏(Micro)参考(长期工程)
Zend Engine 1 的主要特性,与 Zend Engine 2的主要差别;
Zend Engine 3 的主要特性,与 Zend Engine 2的主要差别;
相关资源
项目发起:Ben (ben.yan at msn dot com
项目参与:Ben (ben.yan at msn dot com,http://www.yAnbiN.org)
项目启动:2007/06/09 (希望可以在明年奥运会开幕前完成 )
项目进度:
2007/06/09 项目启动,讨论项目规划;
2007/xx/xx 待续……
/blog/commentary-on-php-chap1_1-prep.html
源码分析,首先得看源码。记事本可以看,EditPlus 也可以看,但显然具有语法着色功能的 EditPlus 要比记事本爽。更显然,M$ 的 Visual C++ 比 EditPlus 还要爽。:D 因此我推荐的第一款神兵就是 M$ Visual C++(Sorry, Linuxer~)。既然用了 Visual C++ 那么有一款它的插件我们不得不提:Visual Assist X,还没有她的朋友尽快拥有她吧~
OK,现在源码是可以看了,而且是很舒服地在看,但有时我们还想实地进行单步调试以一窥究竟。要调试自然得先编译。很不幸,PHP 在 Windows 环境下的编译和调试并不像想象中的那么简单。我们至少得比在 xNix 环境下多做一下几个步骤:
下载 PHP 使用的 DNS 解析器的源代码(/extra/bindlib_w32.zip) 并将其编译输出一个名为 resolv.lib 的库文件。
下载 win32 编译工具 /extra/win32build.zip ,解压至某一目录(假定为 $work)。在 $work\lib 目录里面也有个 resolv.lib,我们把步骤 1 产生的 resolv.lib 复制到这个目录,覆盖之。
设置编译环境。把 $Work\bin 添加到系统 PATH 环境变量和 Visual C++ 的 Executable files 目录;把 $work\lib 添加到 Library files 目录;把 $Work\include 添加到 Include files 目录。
下载 PHP 源文件并解压至 $work 。
整理 PHP 的项目工程文件。PHP 4.x 的 VC 工程文件($PHP\win32\php4ts*.dsw)是当时一直在维护的,因此可以直接拿来就用。PHP 5.x 增加了一种新的基于命令行的类 Unix 编译系统,使得编
您可能关注的文档
最近下载
- (高清版)DB13∕T 5769-2023 钢丝编织隔离栅应用技术导则.pdf VIP
- 和美乡村建设工程监理细则.docx VIP
- 和美乡村建设工程监理工作总结.docx VIP
- 生命体征生命体征测量.ppt VIP
- 2024年9月28日上海市浦东新区社区工作者考试《综合能力测验》真题及答案.docx VIP
- GBT 15781-2015 森林抚育规程.pdf
- (正式版)D-L∕T 448-2016 电能计量装置技术管理规程.docx VIP
- 第二章坐标系统和时间系统.ppt VIP
- 顺河场镇中心学校食堂环境卫生方案.doc VIP
- 【国家标准】GBT 20828-2015 柴油机燃料调和用生物柴油(BD100).pdf
文档评论(0)