登录  /  注册
首页 > 后端开发 > Golang > 正文

golang怎么编写PHP扩展

藏色散人
发布: 2021-03-02 15:46:16
转载
3578人浏览过

下面由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中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:segmentfault网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号