PHP扩展开发及内核应用 pdf版

摘要

PHP扩展开发及内核应用 pdf版,PHP扩展开发及内核应用这本书主要以Sara Golemon在2005年著作的《Extending and Embedding PHP》一书为蓝本翻译修改而来。这里先对Sara女士表示感谢,为我们奉献了这么优秀的一本技术图书

虽然用了书名号,但它是我的一个业余项目而已,它以Sara Golemon在2005年著作的《Extending and Embedding PHP》一书为蓝本翻译修改而来。这里先对Sara女士表示感谢,为我们奉献了这么优秀的一本技术图书。截止到目前(2011年),这几年以来,PHP的应用在中国突飞猛进,已经渗透到了互联网的各个方面,现在每个公司里都不可能一点没有PHP的影子了。有关PHP语言自身的书籍也是层出不穷,而有关PHP扩展开发以及PHP内核方面的文字却都比较零散,比较系统的有TIPI项目、Zend上面的几篇文章以及《Extending and Embedding PHP》这本书的英文版,不能不说这直接限制住了部分人在PHP语言上的深入研究与学习。我在学校的时候就翻阅过这本书的电子版,但因为是英文的终究没有在那时深入研究下去,也算是一件憾事。 浏览本项目,希望你已经具备以下技能:

比较熟悉PHP语言。熟悉基本的C语言

我希望你能在Linux上来实践这个项目里的东西,那会比较容易一些,当然win也没关系。

本项目不是一个翻译工作,而是以翻译为起点的一个系统的、持续的跟踪介绍PHP内核相关知识的系统,相对于原书来讲,本项目的内容有以下不同

基准PHP版本由5.1改为了5.3.6,也就是说本书的例子默认都是以PHP5.3.6为例的。记录的是2011年初次编辑的时候

改写了大部分例子,方便像我一样的初学者。

会根据PHP的发展与自身的进步不断添加新的内容、优化原有内容。

现在项目的第一期的工作(初译)已经完成了,正在进入后续发布工作,每校正完一节就发布一节,期间如果朋友你发现了错误,还请帮忙斧正,我将在项目日志里声明以示感谢。此外还希望你能持续关注本项目,让我们一起为中国PHP事业的发展奉献一份力量。

目录中汉字部分代表已经翻译完成的章节,带链接的表示已经发布的,未待链接的表示正在校正即将发布的。

PHP的生命周期

让我们从SAPI开始

PHP的启动与终止

PHP的生命周期

线程安全

小结

PHP变量在内核中的实现

变量的类型

变量的值

创建PHP变量

变量的存储方式

变量的检索

类型转换

小结

内存管理

内存管理

引用计数

总结

配置编译环境

编译前的准备

PHP编译前的config配置

Unix/Linux平台下的编译

在Win32平台上编译PHP

小结

第一个扩展

一个扩展的基本结构

编译我们的扩展

静态编译

编写函数

小结

函数的返回值

一个特殊的参数:return_value

引用与函数的执行结果

小结

函数的参数

zend_parse_parameters

Arg Info 与类型绑定

小结

Array与HashTable

数组(C中的)与链表

操作HashTable的API

在内核中操作PHP语言中数组

小结

PHP中的资源类型

复合类型的数据——资源

Persistent Resources

资源自有的引用计数

小结

PHP中的面向对象(一)

zend_class_entry

定义一个类

定义一个接口

类的继承与接口的实现

小结

PHP中的面向对象(二)

生成对象的实例与调用方法

读写对象的属性

小结

启动与终止的那点事

关于生命周期

MINFO与phpinfo

常量

PHP扩展中的全局变量

PHP语言中的超级全局变量

小结

ini配置文件

读写ini配置

小结

流式访问

流的概览

打开与读写流

Static Stream Operations

小结

流的实现

PHP Streams的本质

流的封装——wrapper

实现wrapper

Manipulation

状态与属性读取

小结

有趣的流

流的上下文

流的过滤器

小结

配置和链接

Autoconf

库的查找

强制模块依赖

Speaking the Windows Dialect

小结

扩展生成器

ext_skel生成器

PECL_Gen生成器

小结

设置宿主环境

嵌入式SAPI

构建并编译一个宿主应用

通过嵌入包装重新创建cli

老技术新用

小结

高级嵌入式

回调到php中

错误处理

初始化php

覆写INI_SYSTEM和INI_PERDIR选项

捕获输出

同时扩展和嵌入

小结