PHP7之静态库的扩展封装

在本文,我们将建立一个简单的lib静态库,并在扩展中进行封装调用。

代码

基础代码

这个扩展,我们将在say扩展上增加。say扩展相关代码大家请看这篇博文。PHP7扩展开发之hello word 文中已经详细介绍了如何创建一个扩展和提供了源码下载。

代码实现

建立lib库

增加hello.h文件。代码如下:

增加hello.c文件。代码如下:

然后使用以下命令生成lib库(动态库)文件:

这样在当前目录下就会生成一个hello.so的动态库文件。不同操作系统动态库的扩展名可能不一样。如 windows下是dll,mac下是 dylib,linux下是so。

然后把拷贝到目录下,命名为

把拷贝到目录下。

修改config.m4文件

增加扩展对动态库的依赖。主要增加以下几行代码:

修改Makefile文件

执行phpize命令后,会生成Makefile文件。修改文件如下:

修改为

即,把修改为了具体的静态库路径。

编写扩展代码

增加的引用。

增加方法。代码如下:

php调用结果

执行结果

代码解读

PHP_ADD_LIBRARY_WITH_PATH 是用于指定lib库的名字,地址等信息。第一个参数是名字,第二个参数是地址。

在say.c文件中增加lib库的头文件。使用。

在扩展代码中就像调用其他内核提供的方法一样,去调用lib库中的方法。

好啦今天的教程就到这啦

如果你想更加直接的学习php

可以添加下方微信号

并点击原文阅读进入

视频教程学习

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180729A0KG5000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券