好久不见了,本来都准备相忘江湖了,但是php的ffi那么火还是想推广下,毕竟世界上最好的语言是吧,简单编译个c库把,然后用php ffi调用吧。
windows下本来用msvc编译是最好的,当然跟linux方式一样,采用了cmake+gnu方式编译,当然我也是偷个懒。
工具
- cmake
- mingw64
- swoole_cli 带ffi扩展 (以前文章写过 自行查阅编译)
自行安装 程序员装个工具而已是吧
开始编译
1. 下载 c库
简单用bson库吧,[bson库]下载(https://github.com/mongodb/libbson)
2. 做好准备
查看下CMakeLists.txt,看来什么都已经有了,那我们直接开始吧
3. 开始编译
新建build64文件夹,上面填写c库路径,下方填写输出目录,后点击configure,后选择mingw-makefile
然后下图点击生成即可
4. 开始编译
执行如下命令,其实就跟linux编译是一样的,make就完事了
5. 取出dll文件
把dll文件拿到相应目录即可
note :成功编译完成的情况下,dll文件在build64目录下
php ffi调用
把dll文件放在项目目录下,然后编写ffi代码
运行结果
ok,已经完美运行了。
结尾
以上案例只是简单的编译和使用,为什么使用bson库呢,当然也想抛转引玉一下,试想下用swoole的socket客户端实现协议,然后用ffi做bson的处理,是不是就能做到mogodb协程化了,然后为啥我不做,因为我已经没有从事相关的工作了,对mogodb的需求也不是很明显了,但是也想php未来变得更好,人不能忘本,毕竟是一开始让我吃上饭的工具。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。