标签:mod opcode 释放 end zend 使用 接口 头文件 引擎
zend引擎是脚本语言引擎(解析器+虚拟机),主要的工作就是解析、翻译和执行php脚本
zend引擎要做的两个工作:
1、编译php脚本,输出opcodes。
2、解析执行opcodes,输出结果。
在解析执行的过程中zend引擎可以调用到所有已经载入到php环境的扩展库。
PHP扩展是使用c语言开发的,而c语言最令人望而生畏的就是内存管理,因为有时候可能会忘记释放某些内存,或者释放同一块内存两次等,这些都是致命的。
为了防止这些情况出现,zend引擎提供一些与内存管理相关的接口,使用这些接口后就不用管内存有没有释放,因为zend引擎会为你管理所有通过zend api申请的内存,从而避免了内存泄漏。
所有的PHP扩展通常包含以下几部分:
1、包含头文件
2、声明导出函数:就是按照php内核规定的准则编写的函数,有五个参数
3、声明zend函数块:zend引擎不会自动引入声明的导出函数的,使用zend_function_entry结构体把编写的函数引入到zend引擎中
4、声明zend模块:php扩展信息都保存在zend_module_entry结构中,这个结构包含所有需要想zend引擎提供的模块信息。
5、实现get_module()函数:当扩展被动态加载时会调用此函数
6、实现导出函数:导出函数的实现是构建扩展的最后一步,导出函数是可以在PHP脚本中调用的函数,而实现这些函数才能发挥作用。
标签:mod opcode 释放 end zend 使用 接口 头文件 引擎
原文地址:http://www.cnblogs.com/weiluoyan/p/6940611.html