go语言编写php扩展,用Go写PHP小扩展
问:为什么是小扩展答:因为我还没在生产环境上测试过~~囧~环境ubuntu 16.04go1.6.3 linux/amd64php7.0.9php-go安装示例示例模块php-go/example/hello.go中比较全的写出了大部分示例(虽然没多少注释~)# 编译示例模块hello.socd cd $GOPATH/src/github.com/kitech/php-gomakels -lh p
问:为什么是小扩展
答:因为我还没在生产环境上测试过~~囧~
环境ubuntu 16.04
go1.6.3 linux/amd64
php7.0.9
php-go安装
示例
示例模块php-go/example/hello.go中比较全的写出了大部分示例(虽然没多少注释~)# 编译示例模块hello.so
cd cd $GOPATH/src/github.com/kitech/php-go
make
ls -lh php-go/hello.so
tips: make时可能会出现make: /usr/bin/php-config:命令未找到,手动修改下Makefile的第10行PHPCFG={yourPath}
将php-go/hello.so拷贝到你php的extension目录下,添加php.ini,php -m |grep hello能看到hello扩展没报错就ok了,重启nginx就可以在php里测试了
编写自己的小Demogo// php-go/example/jw.go
package main
import (
"github.com/kitech/php-go/phpgo"
)
type Jw struct {
}
func NewJw() *Jw {
return &Jw{}
}
func (j *Jw) Test(m int, n int) int {
return m + n
}
func main() {
panic("wtf")
}
func Jw_hello() string {
return "Aaaa"
}
func init() {
phpgo.InitExtension("jw", "0.1")
phpgo.AddFunc("jw_hello", Jw_hello)
phpgo.AddClass("Jw", NewJw)
}编译先修改php-go/Makefile,添加编译模块all:
go build -v -buildmode=c-shared -o jw.so examples/jw.go
clean:
rm -f jw.so- 编译cd cd $GOPATH/src/github.com/kitech/php-go
make
ls -lh php-go/jw.so
sudo cp $GOPATH/src/github.com/kitech/php-go/jw.so $PHP_PATH/lib/php/extensions/no-debug-non-zts-20151012
echo "jw.so" >> $PHP_PATH/etc/php.ini
sudo service nginx restart- 写php测试模块
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)