自己动手用C扩展PHP(三)
来源:互联网 发布:监理行业发展前景知乎 编辑:程序博客网 时间:2024/06/05 00:50
原文地址:http://www.cnblogs.com/moodlxs/archive/2011/09/21/2345382.html
在上两章里讲述了扩展模块的基本用法,相信读者已经能够构建自己的扩展模块了,接下来,我们来看看几个重要的函数:
1、PHP_MINIT_FUNCTION(MyModule);
当模块被Zend Engine(ZE)加载后,例如Apache启动,加载了PHP模块,ZE会对每一个扩展模块调用此函数(如果有的话),可以在该函数里进行一些初始化操作。
2、PHP_RINIT_FUNCTION(MyModule);
对于每一个“使用”该模块的PHP脚本请求前,都执行该函数(如果有的话),最好的例子:Session扩展模块,如果在一个PHP脚本里执行session.start(),Session模块的PHP_RINIT_FUNCTION()将被调用。详情可以看看session模块的源代码。
3、PHP_RSHUTDOWN_FUNCTION(MyModule);
与PHP_RINIT_FUNCTION()相反,该函数是在一个PHP脚本执行完毕后执行。
4、PHP_MSHUTDOWN_FUNCTION(MyModule);
当ZE收到shutdown信号后,例如apache卸载PHP模块,ZE对每一个模块调用此函数,最后关闭自己的核心子系统。
---------------------------------------------
如何使用以上的函数?
首先,在头文件("mymodule.h")里声明:
PHP_MINIT_FUNCTION(MyModule);
PHP_MSHUTDOWN_FUNCTION(MyModule);
PHP_RINIT_FUNCTION(MyModule);
PHP_RSHUTDOWN_FUNCTION(MyModule);
然后在你的“mymodule.c”里实现zend_module_entry结构:
zend_module_entry MyModule_module_entry = {
};
// 实现 PHP_MINIT_FUNCTION() 等等 ...
PHP_MINIT_FUNCTION(MyModule)
{
}
其实ext目录下的ext_skel程序建立扩展模块代码框架的时候都自动化帮你实现了这些结构,依照说明填充需要的代码即可
- 自己动手用C扩展PHP(三)
- 自己动手用C扩展PHP(三)
- 自己动手用C扩展PHP(三)
- 自己动手用 C 扩展 PHP
- 自己动手用 C 扩展 PHP
- 自己动手用C扩展PHP(一)
- 自己动手用C扩展PHP(二)
- 自己动手用 C 扩展 PHP(一)
- 自己动手用C扩展PHP(二)
- 自己动手用 C 扩展 PHP(三)- 重要ZEND API函数
- 自己动手用 C 扩展 PHP(二)- 函数
- 用C扩展php
- 自己动手写python的c语言扩展
- 用C扩展PHP[转]
- 用c写PHP的扩展接口
- 用C来扩展我们的PHP
- Linux下用C开发PHP扩展
- 用C语言扩展PHP功能
- Django官方手册阅读(投票应用)
- ASmack连接Openfire服务器异常
- HDU1142 A Walk Through the Forest(SPFA+记忆化搜索)
- mapreduce编程---寻找图中的三角形
- mybatis高级输出映射(多对多查询)
- 自己动手用C扩展PHP(三)
- 传输层
- poj 1511 Invitation Cards(优先队列优化Dijkstra+链式前向星存储边)
- LightOJ 1282(求高次幂的前三位和后三位)
- Linux源码分析工具
- 一套不可多得的Lucene视频教程带课程源码
- 二叉树的几道典型例题
- sed and awk学习笔记二
- 基本数据类型