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脚本中调用的函数,而实现这些函数才能发挥作用。

 

posted @ 2017-06-04 15:17  魏什么魏什么啊  阅读(113)  评论(0编辑  收藏  举报