Press "Enter" to skip to content

关于做PHP扩展开发的一些资源

最近有个感觉, 越来越多的人开始从事PHP扩展开发的工作(越来越多的人来问问题了, 呵呵)

在这里先说声抱歉, 有的时候, 有的同学的邮件进了垃圾邮件没有办法及时回复.

为了方便大家, 我在这里罗列一些可能用到的资源.

1. 首先, 要推荐一本书 《Extending and Embedding PHP》, 如果你有时间, 我建议你在做之前好好读读这本书(目前没有中文版)

2. Google/Baidu 这个就不用多说了吧

3. PHP的源代码中,包含了一些编写良好的”例子”, 都在ext/目录下, 绝大部分Zend_API的使用, 都在里面有例子.

4. pecl-dev at lists.php.net 这个邮件组是扩展开发的交流邮件组, 如果你实在是Google/baidu不到你的问题的答案, 可以发邮件到这个邮件组提问, 不过, 一般来说, 要有耐心等待回复(大部分人和我们有15个小时的时差, 当然, 如果我看到了, 我会尽量回复)

5. efnet #php.pecl 这里聚集了pecl开发者, 你也可以来这里提问(我整天都在上面), 不过这里只能说英文, 另外提问的时候要注意不要直接粘贴代码, 而应该使用pastebin之类的工具(所以还是建议大家发邮件到pecl-dev)

6. 尽量编写一些phpt测试用例(phpt的写法在每个标准扩展下面都有例子, tests目录下), 来测试你的扩展.

7. 测试的时候用–enable-debug编译PHP, 来测试你的扩展, 你要做到执行你的扩展逻辑, 不输出任何错误信息

8. 使用valgrind检测内存泄露.

希望对大家有帮助.

19 Comments

  1. mom
    mom 2016-07-18

    鸟哥,如何在一个php扩展中实例化其他扩展中的类,比如,在我的自定义扩展myextension中使用pdo类

  2. helius
    helius 2013-10-11

    这本书没中文真难肯,大牛你翻译一本吧我一定买

  3. syang
    syang 2013-04-08

    你好,鸟哥:
    我在编译php时,使用debug模式,调式扩展时,
    发现,如果自己定义inline函数,
    调用会报错,在符号表中找不到我的函数

    去掉inline后,可以调试

    虽然有一个内存泄漏清况,包括php内核自身的

    但是大部份的内存泄漏会报在
    MAKE_STD_ZVAL
    ZVAL_STRING
    这样的调用行!

    是不是过后需要用什么函数来释放呢?

  4. 雪候鸟
    雪候鸟 2011-09-14

    @早起的菜鸟 @Me.strone 诶, 私房菜的鸟哥是台湾的, 搞Linux的, :<

  5. 雪候鸟
    雪候鸟 2011-09-14

    @walu 我看了下,翻译的挺好, 不过有一点, 就是那本书成书已经好几年了, 最近PHP改变较多, 尤其是5.4, 底层结构变化也比较多, 如果忠实翻译还好, 否则可能要考虑新加入的东西:)

  6. Me.strone
    Me.strone 2011-09-14

    没注意,原来是传说中的鸟哥啊……看了你写的那两个私房菜,很不错。希望多多出好书!我们就多多向你学习了。

  7. 早起的菜鸟
    早起的菜鸟 2011-09-14

    鸟哥 你是不是那个写私房菜的鸟哥啊?都是大神啊!我也取了鸟的名字,希望能够沾沾你们的才气

  8. walu
    walu 2011-09-14

    《Extending and Embedding PHP》我正在翻译,项目地址:http://phpbook.sinaapp.com 如果鸟哥偶尔有空,还请帮忙斧正。:-)

  9. 雪候鸟
    雪候鸟 2011-09-13

    @Qianfeng 我自己用windows, 虚拟机是Linux, 在Linux下开发

  10. Qianfeng
    Qianfeng 2011-09-13

    鸟哥,我想知道你的,开发桌面是什么系统?。。

    还有日常使用的桌面是否同一个~~

  11. Ray
    Ray 2011-09-13

    鸟哥。。。书名呢?

Leave a Reply

Your email address will not be published. Required fields are marked *