• 技术文章 >后端开发 >Golang

    golang怎么编写PHP扩展

    藏色散人藏色散人2021-03-02 15:46:16转载575
    下面由golang教程栏目给大家介绍golang编写PHP扩展方法,希望对需要的朋友有所帮助!

    golang 编写 PHP 扩展

    phper 都知道 php-extension 采用 C/C++ 编写.
    由于 C/C++ 开发效率问题我们来采用 golang 编写 php-extension
    充分利用 golang 的开发效率和生态给 PHP 添砖加瓦.

    环境准备

    wsl ubuntu
    golang 1.13
    php 7.3

    新建项目

    php7.3 里面的 ext_skel 和以前版本参数不一样,请查看 help 操作
    php:
    ./ext_skel.php --ext goserver --onlyunix
    golang:
     mkdir goserver

    封装文件

    封装C文件为golang文件

    package main
    /*
     php扩展.C文件内容
    */
    import "C"    
    func main() {}

    build

    $ phpize
    $ ./configure
    $ CGO_CFLAGS="-g -O2 -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 \  
    -I. -DPHP_ATOM_INC \
    -I/usr/include/php/20180731/include \  
    -I/usr/include/php/20180731/main \
    -I/usr/include/php/20180731 \
    -I/usr/include/php/20180731/main \  
    -I/usr/include/php/20180731/TSRM \  
    -I/usr/include/php/20180731/Zend \  
    -I/usr/include/php/20180731/ext \  
    -I/usr/include/php/20180731/ext/date/lib \  
    -DHAVE_CONFIG_H -DCOMPILE_DL_GOPHP -fPIC -DPIC" \  
    CGO_LDFLAGS="-Wl,--export-dynamic -Wl,--unresolved-symbols=ignore-all -Wl,-z,nodelete" \  
    go build -p 1 -gcflags "-l" -buildmode=c-shared -o modules/goserver.so goserver.go

    CGO编译参数根据实际情况填写,可查看生成的 makefile 文件里面的参数

    run

    修改php.ini 加入 extension=goserver.so
    运行扩展自带的函数测试

    以上就是golang怎么编写PHP扩展的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:segmentfault,如有侵犯,请联系admin@php.cn删除
    专题推荐:php c golang 扩展
    上一篇:详解golang.org/x一键安装脚本 下一篇:阅读Golang 切片(Slice)底层源码
    第16期线上培训班

    相关文章推荐

    • 介绍golang工具之present• 分享一款golang style语法的golang orm库• Golang的memcache如何简单实现• 分享一个Golang Http 验证码示例• 详解golang.org/x一键安装脚本

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网