资讯专栏INFORMATION COLUMN

Linux下编写一个PHP扩展

Gu_Yan / 1364人阅读

摘要:假设需求开发一个叫做的扩展。扩展里有一个函数,。完成上面的步骤,简单的扩展就了。如果大家需要扩展包,可以关注微信公众号。作者后端开发者提供相关技术服务自己懂的知识。

假设需求

开发一个叫做 helloWord 的扩展。

扩展里有一个函数,helloWord()。

echo helloWord("Tom");
//返回:Hello World: Tom

本地环境

PHP版本:5.6.9

系统:Linux CentOS release 6.5 (Final)

最终效果

实现流程

第一步:

进入到本地的php目录执行:

cd /root/soft/src/php-5.6.9
cd ext
./ext_skel --extname=helloWord
cd helloWord
vi config.m4

搜索:dnl Otherwise use enable 将下面修改成:

PHP_ARG_ENABLE(helloWorld, whether to enable helloWorld support,
[  --enable-helloWorld           Enable helloWorld support])

if test "$PHP_HELLOWORLD" != "no"; then

...

如图:

第二步:

vi php_helloWorld.h

搜索:extern zend_module_entry 新增一行:

PHP_FUNCTION(helloWorld);

如图:

第三步:

vi helloWorld.c

搜索:const zend_function_entry helloWorld_functions[] 新增一行:

PHP_FE(helloWorld, NULL)

如图:

搜索:PHP_MINFO_FUNCTION(helloWorld) 

新增版本、作者信息

php_info_print_table_row(2, "Version", "1.0");
php_info_print_table_row(2, "Author", "BiHu");

如图:

在 helloWorld.c 底部新增一个方法

PHP_FUNCTION(helloWorld)
{
    char *arg = NULL;
    int arg_len, len;
    char *strg;
    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
        return;
    }
    len = spprintf(&strg, 0, "Hello World: %s", arg);
    RETURN_STRINGL(strg, len, 0);
}

如图:

第四步:

//编译安装
cd /root/soft/src/php-5.6.9/ext
/usr/local/php/bin/phpize #用phpize生成configure配置文件
./configure --with-php-config=/usr/local/php/bin/php-config   #配置
make  #编译
make install  #安装

第五步:

//修改php.ini
extension="helloWorld.so"   #名称为安装扩展的名称

第六步:

重启环境。

完成上面的步骤,简单的 helloWorld 扩展就OK了。

大家可以根据自己的需求,开发满足自己的扩展。

比如,可以开发一些扩展类,扩展方法,等等。

如果大家需要helloWorld扩展包,可以关注微信公众号。

回复 “helloWorld” 即可。


Thanks ~

作者:PHP后端开发者

提供PHP相关技术服务(自己懂的知识)。

QQ交流群:564557094。

关注微信公众号,留言即可,看到留言后会及时回复。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30574.html

相关文章

  • Linux下编译安装PHP的PECL扩展

    摘要:在网站对性能有很高要求的情况下,使用中的库或者自己实现扩展,是很好的选择。的扩展,可以使用命令来安装,我主要分享下编译安装首先到的网站,找到自己需要的扩展包,下载到本地,解压之,比如解压后的路径是进入扩展源码的目录,。 PECL是PHP的高性能C扩展,比如当前很火热的扩展YAF,就是 鸟哥 编写的一个PECL的PHP框架,性能相当出色。 在网站对性能有很高要求的情况下,使用PECL中的...

    ctriptech 评论0 收藏0
  • linux下编译安装redis服务与配置

    摘要:进入解压文件之后利用工具生成利用编译安装包可以使用命令查看位置可以看到位置编译安装完成之后可以看到说明扩展已经安装成功了,接下来改的配置文件。 redis的安装 1.服务器的环境 linux / CentOS release 6.5 (Final) 可以用 cat /etc/redhat-release 命令查看系统版本 2.下载redis(我用的是2.8.13的版本)可自己在官网下...

    ad6623 评论0 收藏0
  • linux下编译安装redis服务与配置

    摘要:进入解压文件之后利用工具生成利用编译安装包可以使用命令查看位置可以看到位置编译安装完成之后可以看到说明扩展已经安装成功了,接下来改的配置文件。 redis的安装 1.服务器的环境 linux / CentOS release 6.5 (Final) 可以用 cat /etc/redhat-release 命令查看系统版本 2.下载redis(我用的是2.8.13的版本)可自己在官网下...

    wudengzan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<