美文网首页PHP程序猿程序员
Linux下编写一个PHP扩展

Linux下编写一个PHP扩展

作者: 新亮笔记 | 来源:发表于2017-04-09 18:25 被阅读172次

    假设需求

    开发一个叫做 helloWord 的扩展。

    扩展里有一个函数,helloWord()。

    echo helloWord('Tom');
    //返回:Hello World: Tom
    

    本地环境

    PHP版本:5.6.9

    系统:Linux CentOS release 6.5 (Final)

    最终效果

    实现流程

    第一步:

    进入到本地的php目录执行:
    
    cd /root/soft/src/php-5.6.9
    cd ext
    ./ext_skel --extname=helloWord
    cd helloWord
    vi config.m4
    
    搜索:dnl Otherwise use enable 将下面修改成:
    
    PHP_ARG_ENABLE(helloWorld, whether to enable helloWorld support,
    [  --enable-helloWorld           Enable helloWorld support])
    
    if test "$PHP_HELLOWORLD" != "no"; then
    
    ...
    
    

    如图:

    第二步:

    vi php_helloWorld.h
    
    搜索:extern zend_module_entry 新增一行:
    
    PHP_FUNCTION(helloWorld);
    
    

    如图:

    第三步:

    vi helloWorld.c
    
    搜索:const zend_function_entry helloWorld_functions[] 新增一行:
    
    PHP_FE(helloWorld, NULL)
    
    

    如图:

    搜索:PHP_MINFO_FUNCTION(helloWorld) 
    
    新增版本、作者信息
    
    php_info_print_table_row(2, "Version", "1.0");
    php_info_print_table_row(2, "Author", "BiHu");
    
    

    如图:

    在 helloWorld.c 底部新增一个方法
    
    PHP_FUNCTION(helloWorld)
    {
        char *arg = NULL;
        int arg_len, len;
        char *strg;
        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
            return;
        }
        len = spprintf(&strg, 0, "Hello World: %s", arg);
        RETURN_STRINGL(strg, len, 0);
    }
    
    

    如图:

    第四步:

    //编译安装
    cd /root/soft/src/php-5.6.9/ext
    /usr/local/php/bin/phpize #用phpize生成configure配置文件
    ./configure --with-php-config=/usr/local/php/bin/php-config   #配置
    make  #编译
    make install  #安装
    

    第五步:

    //修改php.ini
    extension="helloWorld.so"   #名称为安装扩展的名称
    

    第六步:

    重启环境。

    完成上面的步骤,简单的 helloWorld 扩展就OK了。

    大家可以根据自己的需求,开发满足自己的扩展。

    比如,可以开发一些扩展类,扩展方法,等等。

    Thanks ~

    如果大家需要helloWorld扩展包,欢迎大家Q我(留言、私信均可) ~

    相关文章

      网友评论

      本文标题:Linux下编写一个PHP扩展

      本文链接:https://www.haomeiwen.com/subject/wyadattx.html