zephir 编译php,使用zephir开发php扩展

最近在努力努力努力的学习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开发库

47985acd83de3f86dc08a3f2511c1071.png

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代码的目录

560006ccbddeb87f91b72ecc02498d7f.png

zephir init feehi

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

6e680e7aeb0e54ab9f08c27dedaf7c24.png

Test.zep

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

b36ee3d0b74a7f244faea49024cd43b8.png

zephir build

65fcf3c3de798135e4dce72abf65ebe1.png

feehi.so

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

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

db6227e190098d2c4869ba030ca41c65.png

zephir/test.php

c29e5b3171a21a2033971ea0b1624002.png

zephir

喜欢 (2)or分享 (0)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值