Linux 下PHP扩展开发系列:一. 前言


前言

开发PHP扩展已经有一段时间了,一边学习一边开发和总结,累并快乐着。

本着好记性不如烂笔头的原则,决定将开发过程一些问题写出来,抛砖引玉,共同进步。

因个人水平及文字表达能力所限,难免有错漏,欢迎指出,不胜感激!

本系列都是在Linux下进行开发,不涉及windows下的开发。

进入正题:

首先,开发PHP扩展需要个人具备什么技能呢?

  1. 熟悉Linux操作。毕竟是在Linux下开发嘛。
  2. 熟悉PHP,C/C++
  3. 了解Linux下 C/C++开发调试及编译

以上三点是在后面的系列中不会特意详细说明的地方,有不明白的地方还是需要大家自己去学习。

第二,我们要先想想自己为什么要开发PHP扩展,是因为个人兴趣和对技能提升的渴望,还是因为工作及业务需要?

前者是个人兴趣,兴趣是最好的老师,希望你与我一起坚持学习下去。

若是后者,则有一些问题需要先思考:

  1. 开发扩展比使用PHP开发相同功能成本与难度都要更高
  2. 后期维护不易
  3. 系统及PHP版本更新导致的一些兼容性问题

习惯了PHP简单的开发与维护,面对以上问题会很不适应,因此个人建议在以下情况才开发扩展:

  1. 对效率要求很高,特别是运算效率
  2. 功能与业务无关或关联很小,相对抽象
  3. 功能基本不会变动,且不会很复杂
  4. 功能使用PHP无法实现的或者资源无法访问

第三,需要明白扩展开发好后,能否使用会受到至少以下几个方面的影响:

  1. PHP源码版本,在PHP5.3.9下开发的扩展可能会无法在PHP5.2.17下使用,反之同理。(PHP5.2.17未定义PHP_FE_END与ZEND_MOD_END两个宏)
  2. Glibc 与 GCC版本,不同版本下编译的扩展可能不能互相通用。

简单的解决方案:

  1. 保证开发测试与真实服务器的以上版本一致。比如我在开发机上就部署了PHP5.2.17与PHP5.3.9两个版本,用于正式机不同版本PHP扩展的开发调试及编译
  2. 扩展的功能尽可能在PHP中也开发一份,这样可以保证服务器升级PHP扩展或扩展异常时功能仍然能够正常使用。

第四,本系列的开发环境如下:

  1. CentOS release 6.4 (Final) 64位

  2. gcc version 4.4.7, Glibc 2.12

  3. PHP 5.3.9 (DEBUG)

OK,前言到此结束,准备进入下一篇 《Linux 下PHP扩展开发系列:二. 一个典型的扩展开发》

原文地址:https://www.cnblogs.com/iblaze/p/3112485.html