PHP扩展开发探索(一)

   开发环境:Centos 6.2 ;apace 2.2; php 5.5.5 ;

   第一步:扩展文件生成

                  运行PHP源码中ext中的ext_skel脚本(主要参数为 --extname ),会在ext中生成extname的文件夹,即扩展项目(本次测试使用sayhello作为模块名)

   第二步:扩展项目文件

                 查看sayhello文件下,有一下几个重要文件:config.m4    php_sayhello.h  sayhello.php     sayhello.c 。

                 (1)sayhello.c :

                   基本函数:

                   PHP_INI_BEGIN():  加载扩展在php.ini中的配置信息;

        PHP_MINIT_FUNCTION(sayhello):php初始化时,都会执行每个模块的初始化函数;
        PHP_MSHUTDOWN_FUNCTION(sayhello);apache stop的时候,卸载php模块,这个时候执行此函数;
        PHP_RINIT_FUNCTION(sayhello):每次request执行的函数;
        PHP_RSHUTDOWN_FUNCTION(sayhello);request结束或者被die(exit)掉了,执行这个函数,收拾烂摊子(释放内存等等);
        自定义函数:
        PHP_FUNCTION(sayhello):你的扩展定义的函数,必须使用zend给定的这个宏来定义,每一个定义的函数都必须加入到 sayhello_functions[]
                               这个结构体中。
       (2)config.m4 保存扩展编译配置信息的文件
  第三步: 修改config.m4,让你的sayhello可以被编译
        PHP_ARG_ENABLE(sayhello, whether to enable sayhello support,
        dnl Make sure that the comment is aligned:
        [  --enable-sayhello           Enable sayhello support])
  第四步:正常的编译步骤./config make  make install 生成sayhello.so
  第五步:配置php.in,重启服务器,就可以在php代码中使用自己sayhello扩展的sayhello函数了
  windows使用扩展最好在windows下重新编译源码生成dll.
 


      
        
                   

   

   

              


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值