代码改变世界

PHP扩展开发系列教程-1

2017-05-30 22:58  吃饱了才能撑着  阅读(68)  评论(0)    收藏  举报
PHP的核心由两部分组成。最底层是zend引擎(ZE)。另一部分是PHP内核,她绑定了SAPI层(Server Application Programming Interface).
 
###扩展的内存管理
_____________________________________________________________
 
1 依赖ZE内部管理
 
2 自己写内存管理
 
##创建基础hello 扩展
_____________________________________________________________
 
###config.m4
______________________________________________________________
这个是 Phpize 用来编译的扩展文件的配置文件
 
###php_hello.h 配置文件
____________________________________________________________
进行配置文件
 
###hello.c
______________________________________________________________
原文件
关键的代码
 
### RETURN_STRING(str,0/1);
___________________________________________________________
从 0 或者1 代表是否需要 ZE引擎对内存进行处理。 或者 是否拷贝
同理有,RETURN_LONG(),RETURN_DOUBLE(),等等
 
 
##新增扩展内部函数
_________________________________________________________
###如何在扩展中新增一个函数
__________________________________________________________
1 在 扩展.c中function_entry 结构中添加对应的 PHP_FE();
     static function_entry hello_functions[] {
          PHP_FE(hello_long,NULL);
}
 
2 在扩展文件中添加相应函数的实现
 
PHP_FUNCTION(hello_long){
     RETURN_DOUBLE(3.1415926);
}
 
3 在扩展的头文件,如 php_hello.h函数中添加函数原型声明
 
PHP_FUNCTION(hello_long);
 
添加新的函数后,可以重新在编译一次, 推荐 make clean all
 
###非标量的返回类型
________________________________________________________________
资源[msyql_connect],数组,对象(new class)
 
##通过php.ini初始化你扩展的配置
_______________________________________________________________
 
下一节继续。
 
 
 
 php初学者-千锋php课程笔记