PHP擴充套件的基本結構

2021-09-07 01:35:55 字數 1975 閱讀 2549

git clone

2,建立擴充套件

cd php-src/ext/

./ext_skel --extname=php_hello

3、修改config.m4

php_arg_enable(php_hello, whether to enable php_hello support,

make sure that the comment is aligned:

[ --enable-php_hello enable php_hello support])

if test "$php_php_hello" != "no"; then

php_new_extension(php_hello, php_hello.c, $ext_shared)

fi

這樣乙個基本的擴充套件就好了

4、zend函式塊入口

vim ./zend_api.h +35  

typedef struct _zend_function_entry zend_function_entry;

fname 函式名

handler 處理介面函式的指標

_zend_arg_info 函式引數

const zend_function_entry hello_functions = ;

5、zend模組擴充套件結構

typedef struct _zend_module_entry zend_module_entry;

struct _zend_module_entry ;

擴充套件中

/* ;

/* }}} */

6、執行過程

#define php_minit_function              zend_module_startup_d

#define php_mshutdown_function zend_module_shutdown_d

#define php_rinit_function zend_module_activate_d

#define php_rshutdown_function zend_module_deactivate_d

#define php_minfo_function zend_module_info_d

#define php_ginit_function zend_ginit_function

#define php_gshutdown_function zend_gshutdown_function

#define php_module_globals zend_module_globals

解釋

php_minit_function  初始化module時執行  

php_mshutdown_function 當module被解除安裝時執行

php_rinit_function 當乙個request請求初始化時執行

php_rshutdown_function 當乙個request請求結束時執行

php_minfo_function 這個是設定phpinfo中這個模組的資訊

php_ginit_function 初始化全域性變數時

php_gshutdown_function 釋放全域性變數時

php src 乙個Php擴充套件的結構

內容均以php5.6.14為例.要擁有乙個php擴充套件的架子,使用原始碼中準備好的 ext ext skel 工具,可以生成乙個可執行的擴充套件骨架。不加選項執行 ext skel,可檢視所有可用選項的幫助文字。意思是使用自己的擴充套件要經過這8步,但 buildconf 是在 php src 內...

php uuid 擴充套件,PHP 擴充套件

編譯安裝時候沒有啟用下面擴充套件的,可以單獨安裝 php關鍵性擴充套件安裝 www lanmps 假設 套件 安裝目錄 www lanmps php 7.0.11 假設 php 安裝目錄 1.fileinfo 擴充套件 它應用於檔案處理的改進 進入套件解壓縮後目錄 假設套件目錄為 root lanm...

webp的php擴充套件

i b 2了,imagemagick支援webp,使用imagick即可,不需編寫此擴充套件 b i url size x large 使用 size 將jpeg png 記憶體轉為webp 純記憶體操作 opts getopt f blob file get contents home lvben...