依賴ZE內(nèi)部管理2自己寫內(nèi)存管理#深圳PHP培訓(xùn)
2021-01-31
PHP的核心包括兩部分。最底層是zend引擎(ZE)。另一部分是PHP核心,它綁定了SAPI層(服務(wù)器應(yīng)用程序編程接口)。
###擴(kuò)展的內(nèi)存管理
_____________________________________________________________
1依靠ZE內(nèi)部管理
2編寫自己的內(nèi)存管理
##創(chuàng)建基本的hello擴(kuò)展
_____________________________________________________________
### config.m4
______________________________________________________________
這是Phpize用來(lái)編譯的擴(kuò)展文件的配置文件
### php_hello.h配置文件
____________________________________________________________
制作配置文件
### hello.c
______________________________________________________________
原始文件
鍵碼
### RETURN_STRING(str,0 /1);
___________________________________________________________
從0或1表示是否需要ZE引擎來(lái)處理內(nèi)存。還是要復(fù)制
類似地,RETURN_LONG(),RETURN_DOUBLE()等。
##添加擴(kuò)展的內(nèi)部功能
_________________________________________________________
###如何向擴(kuò)展名添加功能
__________________________________________________________
1在extension.c中的function_entry結(jié)構(gòu)中添加相應(yīng)的PHP_FE();
static function_entry hello_functions [] {
PHP_FE(hello_longphp擴(kuò)展開(kāi)發(fā)教程,NULL);
}
2在擴(kuò)展文件中添加相應(yīng)功能的實(shí)現(xiàn)
PHP_FUNCTION(hello_long){
RETURN_DOUBLE(3.1415926);
}
3在擴(kuò)展頭文件中添加函數(shù)原型聲明,例如php_hello.h函數(shù)
PHP_FUNCTION(hello_long);
添加新功能后,可以再次重新編譯,建議全部清除
###非標(biāo)量返回類型
________________________________________________________________
資源[msyql_connect],數(shù)組php擴(kuò)展開(kāi)發(fā)教程,對(duì)象(新類)
##通過(guò)php.ini初始化擴(kuò)展配置
_______________________________________________________________