zoukankan      html  css  js  c++  java
  • 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扩展开发系列:二. 一个典型的扩展开发》

  • 相关阅读:
    php根据时间显示刚刚,几分钟前,几小时前的实现代码
    PHP中获取当前页面的完整URL
    PhpExcel中文帮助手册|PhpExcel使用方法
    洛谷P1781 宇宙总统【排序+字符串】
    洛谷P1579 哥德巴赫猜想(升级版)【水题+素数】
    洛谷P1478 陶陶摘苹果(升级版)【水题】
    洛谷P1002 过河卒【dp】
    51Nod
    排序算法总结(C++)
    UVA1339
  • 原文地址:https://www.cnblogs.com/iblaze/p/3112485.html
Copyright © 2011-2022 走看看