[李景山php] php 拓展模块 函数意义
来源:互联网 发布:php二维数组定义 编辑:程序博客网 时间:2024/06/14 03:02
PHP开始执行以后会经过两个主要的阶段:处理请求之前的开始阶段和请求之后的结束阶段。
请求开始阶段:
第一个过程是模块初始化阶段(MINIT),在整个SAPI生命周期内(例如Apache启动以后的整个声明周期内或者命令行程序整个执行过程中),该过程只进行一次。
第二个过程是模块激活阶段(RINIT),该过程发生在请求阶段,例如通过curl请求某个页面,则在每次请求之前都会进行模块激活(RINIT请求开始)。例如PHP注册了一些扩展模块,则在MINIT阶段会回调所有模块的MINIT函数。模块在这个阶段可以进行一些初始化工作,例如注册常量,定义模块使用的类等等。模块在实现时可以通过如下宏来实现这些回调函数:
PHP_MINIT_FUNCTION(myphpextension){ //注册常量或者类等初始化操作 return SUCCESS;}
请求到达之后PHP初始化执行脚本的基本环境,例如创建一个执行环境,包括保存PHP运行过程中变量名称和值内容的符号表,以及当前所有的函数以及类等信息的符号表。然后PHP会调用所有模块的RINIT函数,在这个阶段各个模块也可以执行一些相关的操作,模块的RINIT函数和MINIT回调函数类似:
PHP_RINIT_FUNCTION(myphpextension){ //例如记录请求开始时间 //随后在请求结束的时候 return SUCCESS;}
请求处理完后进入了结束阶段,一般脚本执行末尾或者通过调用exit()或die()函数,PHP都将进入结束阶段。和开始阶段对应,结束阶段也分为两个环节,一个在请求结束后停用模块(RSHUTDOWN,对应RINIT),一个在SAPI生命周期结束(Web服务器退出或者命令行脚本执行完毕退出)时关闭模块(MSHUTDOWN,对应MINIT).
PHP_RSHUTDOWN_FUNCTION(myphpextension){ //例如记录请求结束时间,并把相应的信息写入到日志文件中。 return SUCCESS;}
小小的总结一下:
启动php的执行顺序:
1 Mode Init —–》启动php 总 模块 —–》 对应函数 PHP_MINIT_FUNCTION(myphpextension)
2 Run Init —–》启动php 运行 模块 —–》 对应函数 PHP_RINIT_FUNCTION(myphpextension)
3 执行用户定义的任务
4 Run shutdown —–》善后php 运行 模块 —–》 对应函数 PHP_RSHUTDOWN_FUNCTION(myphpextension)
5 Mode shutdown —–》善后php 总 模块 —–》 对应函数 PHP_MSHUTDOWN_FUNCTION(myphpextension)
- [李景山php] php 拓展模块 函数意义
- 为php添加拓展模块
- php拓展开发之模块全局变量
- dos 运行php文件丢失拓展模块
- php 拓展模块相关的安装
- 安装memcached服务器和php中添加memcache拓展模块
- 已安装php 编译安装 gd库拓展模块
- PHP中date()函数具体参数意义
- php拓展开发
- php拓展开发-教程
- mongoDB PHP 拓展
- php缺少mbstring拓展
- php 拓展介绍
- php geohash拓展
- centos php 拓展配置
- php zookeeper拓展安装
- php memcache 拓展
- php pctnl拓展安装
- jQuery ---页面内容,样式,控制属性
- volatile详细详悉(C语言知识点1)
- IDEA常用快捷键
- .net 自定义控件事件
- jtree 默认展开树的全部节点
- [李景山php] php 拓展模块 函数意义
- JSP中的动态包含和静态包含的区别
- Codeforces 805A(数学)
- 一天搞定CSS:初识css--01
- 用Python开始机器学习(6:朴素贝叶斯分类器)
- 【jzoj4072】【TJOI2015】【弦论(string)】【sam】
- gedit打开文件出错
- C#数据类型转换工具
- //floyd算法hdu2544