飞嗨,欢迎您的光临,本博所发布之文章皆为作者亲测通过,如有错误,欢迎通过各种方式指正。(本博已于2015.12.6升级到php7,运行环境php7 php-fpm + nginx1.8.0)

使用zephir开发php扩展

PHP lf 2683℃ 0评论

最近在努力努力努力的学习c语言,太痛苦了~~~期间也尝试过用c写php扩展,本来我的c就不是一般的just so so,还不熟悉zend的api,但是依着葫芦也能画个瓢粗来。。。哇咔咔~~~写了个日志的扩展,但是c太底层了,想要实现什么功能太痛苦痛苦。偶然关注某php大神的微博,了解到zephir也可以写php扩展。。。
zephir的语法和php非常类似,几乎就是一个样,还能使用php的库,太容易上手了,zephir首先把写的zep翻译成c语言,然后再编译成php扩展。虽然zephir官方说性能和原生态c写的相差不大,甚至更优,虽然我没有测试过,但是我想性能方面经过翻译成c,肯定要差一些吧。不过,zephir的简便,能快速的带给人成就感,作为过度,为了提升兴趣,上手一下还是灰常不错哒!

确保安装了php开发库

phpize -v

phpize -v

linux下安装zephir

1.git clone https://github.com/phalcon/zephir

2.cd zephir

3. ./install-json

4. ./install -c

5.zephir help如果出现帮助信息就安装完成了,zephir是把zep翻译成c,gcc等等神马的要装上(zephir依赖的挺多,环境不同,缺少的依赖不同,提示缺少什么装上就是了)
写一个扩展试试吧

1.zephir init feehi建立扩展目录,config.json是扩展的配置文件,命名空间神马的在这里都能找到,写扩展zep的主目录就是feehi了,ext是翻译成c代码的目录

zephir init feehi

zephir init feehi

2.vim Test.zep  在feehi的目录中新建Test.zep,这里需要注意,命名空间必须和模块名字一样,而且使用驼峰法命名,类的名字必须和文件名字一样,这里的Test.zep就只能是class Test{}…命名空间还支持子命名Feehi\subname…

Test.zep

Test.zep

3.保存退出,并退到和config.json同级目录,执行zephir build就能看到翻译成c然后自动编译成so了

zephir build

zephir build

feehi.so

feehi.so

4.更改php.ini文件,载入此扩展,重启web server或者fpm,丢与php-cli直接就是生效了得。

5.用php写一个测试一下扩展是否生效

zephir/test.php

zephir/test.php

zephir

zephir

转载请注明:飞嗨 » 使用zephir开发php扩展

喜欢 (2)or分享 (0)
发表我的评论
取消评论
表情
粤ICP备15018643号-1