如何制作一个php扩展
2014-12-02 11:52
471 查看
博客:http://lijinhuan.blog.51cto.com/微博:http://weibo.com/lijinhuanexperience代码:https://github.com/lijinhuan
一、安装php
假如把php安装/usr/local/php下
二、php扩展框架工具
进入 /php源码/ext 目录
执行
./ext_skel --extname=my_module
显示结果
Creating basic files: config.m4 config.w32 .svnignore my_module.c php_my_module.h CREDITS EXPERIMENTAL tests/001.phpt my_module.php [done].
To use your new extension, you will have to execute the following steps:
1. $ cd ..
2. $ vi ext/my_module/config.m4
3. $ ./buildconf
4. $ ./configure --[with|enable]-my_module
5. $ make
6. $ ./sapi/cli/php -f ext/my_module/my_module.php
7. $ vi ext/my_module/my_module.c
8. $ make
Repeat steps 3-6 until you are satisfied with ext/my_module/config.m4 and
step 6 confirms that your module is compiled into PHP. Then, start writing
code and repeat the last two steps as often as necessary.
其实这里就教了你怎么操作了
在当前目录再执行 cd my_module/ 进入我们的模块目录
然后我们要修改文件顺序是
configue.m4
my_module.c
php_my_module.h
修改configue.m4
根据你自己的选择将
dnl PHP_ARG_WITH(my_module, for my_module support,
dnl Make sure that the comment is aligned:
dnl [ --with-my_module Include my_module support])
修改成
PHP_ARG_WITH(my_module, for my_module support,
Make sure that the comment is aligned:
[ --with-my_module Include my_module support])
或者将
dnl PHP_ARG_ENABLE(my_module, whether to enable my_module support,
dnl Make sure that the comment is aligned:
dnl [ --enable-my_module Enable my_module support])
修改成
PHP_ARG_ENABLE(my_module, whether to enable my_module support,
Make sure that the comment is aligned:
[ --enable-my_module Enable my_module support])
其实就是去掉前面的dnl
修改my_module.c
将文件其中的下列代码进行修改
/* Every user visible function must have an entry in my_module_functions[].
*/
function_entry my_module_functions[] = {
PHP_FE(say_hello, NULL) /* ?添加着一行代码 */
PHP_FE(confirm_my_module_compiled, NULL) /* For testing, remove later. */
{NULL, NULL, NULL} /* Must be the last line in my_module_functions[] */
};
在文件的最后添加下列代码
PHP_FUNCTION(say_hello)
{
zend_printf("hello world/n");
}
修改php_my_module.h
在PHP_FUNCTION(confirm_my_module_compiled ); /* For testing, remove later. */
添加一行:
PHP_FUNCTION(say_hello); /* For testing, remove later. */
三、执行
/usr/local/php/bin/phpize
四、编译安装扩展
然后执行./configure --enable-my_module --with-php-config=/usr/local/php/bin/php-config
一、安装php
假如把php安装/usr/local/php下
二、php扩展框架工具
进入 /php源码/ext 目录
执行
./ext_skel --extname=my_module
显示结果
Creating basic files: config.m4 config.w32 .svnignore my_module.c php_my_module.h CREDITS EXPERIMENTAL tests/001.phpt my_module.php [done].
To use your new extension, you will have to execute the following steps:
1. $ cd ..
2. $ vi ext/my_module/config.m4
3. $ ./buildconf
4. $ ./configure --[with|enable]-my_module
5. $ make
6. $ ./sapi/cli/php -f ext/my_module/my_module.php
7. $ vi ext/my_module/my_module.c
8. $ make
Repeat steps 3-6 until you are satisfied with ext/my_module/config.m4 and
step 6 confirms that your module is compiled into PHP. Then, start writing
code and repeat the last two steps as often as necessary.
其实这里就教了你怎么操作了
在当前目录再执行 cd my_module/ 进入我们的模块目录
然后我们要修改文件顺序是
configue.m4
my_module.c
php_my_module.h
修改configue.m4
根据你自己的选择将
dnl PHP_ARG_WITH(my_module, for my_module support,
dnl Make sure that the comment is aligned:
dnl [ --with-my_module Include my_module support])
修改成
PHP_ARG_WITH(my_module, for my_module support,
Make sure that the comment is aligned:
[ --with-my_module Include my_module support])
或者将
dnl PHP_ARG_ENABLE(my_module, whether to enable my_module support,
dnl Make sure that the comment is aligned:
dnl [ --enable-my_module Enable my_module support])
修改成
PHP_ARG_ENABLE(my_module, whether to enable my_module support,
Make sure that the comment is aligned:
[ --enable-my_module Enable my_module support])
其实就是去掉前面的dnl
修改my_module.c
将文件其中的下列代码进行修改
/* Every user visible function must have an entry in my_module_functions[].
*/
function_entry my_module_functions[] = {
PHP_FE(say_hello, NULL) /* ?添加着一行代码 */
PHP_FE(confirm_my_module_compiled, NULL) /* For testing, remove later. */
{NULL, NULL, NULL} /* Must be the last line in my_module_functions[] */
};
在文件的最后添加下列代码
PHP_FUNCTION(say_hello)
{
zend_printf("hello world/n");
}
修改php_my_module.h
在PHP_FUNCTION(confirm_my_module_compiled ); /* For testing, remove later. */
添加一行:
PHP_FUNCTION(say_hello); /* For testing, remove later. */
三、执行
/usr/local/php/bin/phpize
四、编译安装扩展
然后执行./configure --enable-my_module --with-php-config=/usr/local/php/bin/php-config
相关文章推荐
- 如何编写一个PHP的C扩展
- 如何基于 PHP-X 快速开发一个 PHP 扩展
- 转:如何制作一个定制的 PHP 基础 Docker 镜像(一)
- 如何编写一个独立的PHP扩展
- 在一个未知的CentOS服务器中如何加上PHP的openssl扩展
- 如何开发安装一个php扩展
- [置顶] 【实战】如何通过html+css+mysql+php来快速的制作动态网页(以制作一个博客网站为列)
- 如何编写一个PHP的C扩展
- 如何编写一个PHP的C扩展
- 如何编写一个PHP的C扩展
- 如何编写一个PHP的C扩展
- 如何用c#来制作一个activeX控件或类似的东西
- php扩展:如何访问php数组
- PHP中如何安装 Mhash扩展库?
- 如何编写PHP扩展
- 如何为一个 .net 的 Web Application 制作一个安装程序
- 如何制作一个防止多次刷新计数的图片计数器?
- PHP简单演示如何使用模板制作静态页面
- 如何编写PHP扩展
- php中如何初始化一个数组