[php扩展开发] -- 添加函数
来源:互联网 发布:网络安全保密基础知识 编辑:程序博客网 时间:2024/06/05 20:34
目标:便携php扩展 要求实现 输出hello word
首先用的是php7.0.3 centos7.1或者centos6.+
1.1 RPM安装PHP
- rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
- yum install php70w
- php -v 看一下 7.0.3
- php -m 看一下 php70w-devel, php70w-opcache模块安装没有,没有的话安装一下
- PS:如果你的centos 是选择的低版本 这个(https://mirror.webtatic.com/yum/el7/webtatic-release.rpm)连接的中el7也得修改。
1.2 下载php源码包 注意版本
- http://hk1.php.net/distributions/php-7.0.3.tar.gz (wget命令)
- 把源码放在/usr/local/src/下解压
2.第一个扩展
2.1 输入:
[root@bogon ext]# cd /usr/local/src/php-7.0.3/ext
[root@bogon ext]# ./ext_skel --extname-hello
此时会生成:
cd hello/
ls 会看到几个文件
config.m4 config.w32 CREDITS EXPERIMENTAL hello.c hello.php php_hello.h tests
2.2修改配置
[root@bogon ext]# vim hello/config.m4
- dnl PHPARGWITH(hello, for hello support,
- dnl Make sure that the comment is aligned:
- dnl [ --with-hello Include hello support])
- 更改为:
- PHPARGWITH(hello, for hello support,
- dnl Make sure that the comment is aligned:
- [ --with-hello Include hello support])
2.3 代码实现
/*新增方法 该方法 必须放在 const zend_function_entry * hello_functions[] 上面*/ PHP_FUNCTION(hello) { zend_string *strg; strg = strpprintf(0, "hello word"); RETURN_STR(strg); } const zend_function_entry hello_functions[] = { PHP_FE(hello, NULL) /* For testing, remove later. */ PHP_FE(confirm_hello_compiled, NULL)//这个可以删除了。 /* For testing, remove later. */ PHP_FE_END /* Must be the last line in hello_functions[] */ }
执行命令 phpize ( linux 下 用phpize 给php 动态添加扩展。)
如果phpize 执行失败 可能是缺少 gcc (yum install gcc)
phpize 成功之后会生成一些文件
此时进行编译 ./configure
make 此时会有一个 modus 的文件夹 文件夹中会有2个文件
hello.la hello.so
make install 或者 直接运行命令(cp modules/hello.so /usr/lib64/php/modules)
同时 改更php.ini 加上
[hello]
extenstion=hello.so
扩展使用
[root@bogon hello]# ls
会有一个 hello.php 文件
[root@bogon tests]# cat test.php<?php echo hello();echo "\r\n";[root@bogon tests]# php test.phphello word
输出了 hello word
0 0
- [php扩展开发] -- 添加函数
- [php扩展开发] -- 添加类
- PHP扩展开发-07-函数调用
- php扩展开发,不同扩展使用相同函数名
- php 添加postgre扩展
- php 添加pdo_mysql扩展
- 为php添加扩展
- PHP 添加扩展
- PHP添加Xdebug扩展
- php添加pdo_mysql扩展
- php 添加mongodb扩展
- PHP添加redis扩展
- PHP添加mongodb扩展
- php添加扩展模块
- php添加mysql扩展
- php编译添加扩展
- php 添加phpredis扩展
- php 如何添加php扩展
- tomcat热启动
- mapreduce 的工作机制
- react组件间通信
- 002-Docker for Windows
- Python数据分析_Pandas
- [php扩展开发] -- 添加函数
- XML学习(一)-四种XML文件读取方式
- Spring使用CFX发布Webservice
- Linux命令的返回值
- mtk如何在源码中删除系统自带apk
- mvp模式下实现登录小dem
- shell编程【分发系统】
- android6.0创建新的文件夹
- Lambda表达式详解(原文:张龙豪 http://www.cnblogs.com/knowledgesea/p/3163725.html)