PHP 源代码分析.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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 编译系统,使得编

文档评论(0)

tcpe + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档