自己動手用C擴充套件PHP 三

2021-07-31 11:44:00 字數 1098 閱讀 4267

在上兩章裡講述了擴充套件模組的基本用法,相信讀者已經能夠構建自己的擴充套件模組了,接下來,我們來看看幾個重要的函式:

1、php_minit_function(mymodule);

當模組被zend engine(ze)載入後,例如apache啟動,載入了php模組,ze會對每乙個擴充套件模組呼叫此函式(如果有的話),可以在該函式裡進行一些初始化操作。

2、php_rinit_function(mymodule);

對於每乙個「使用」該模組的php指令碼請求前,都執行該函式(如果有的話),最好的例子:session擴充套件模組,如果在乙個php指令碼裡執行session.start(),session模組的php_rinit_function()將被呼叫。詳情可以看看session模組的源**。

3、php_rshutdown_function(mymodule);

與php_rinit_function()相反,該函式是在乙個php指令碼執行完畢後執行。

4、php_mshutdown_function(mymodule);

當ze收到shutdown訊號後,例如apache解除安裝php模組,ze對每乙個模組呼叫此函式,最後關閉自己的核心子系統。

---------------------------------------------

如何使用以上的函式?

首先,在標頭檔案("mymodule.h")裡宣告:

php_minit_function(mymodule);

php_mshutdown_function(mymodule);

php_rinit_function(mymodule);

php_rshutdown_function(mymodule);

然後在你的「mymodule.c」裡實現zend_module_entry結構:

zend_module_entry mymodule_module_entry = ;

// 實現 php_minit_function() 等等 ...

php_minit_function(mymodule)

其實ext目錄下的ext_skel程式建立擴充套件模組**框架的時候都自動化幫你實現了這些結構,依照說明填充需要的**即可

自己動手用C擴充套件PHP(三)

在上兩章裡講述了擴充套件模組的基本用法,相信讀者已經能夠構建自己的擴充套件模組了,接下來,我們來看看幾個重要的函式 1 php minit function mymodule 當模組被zend engine ze 載入後,例如apache啟動,載入了php模組,ze會對每乙個擴充套件模組呼叫此函式 ...

自己動手用C擴充套件PHP(二)

在上一章裡我們介紹了如何編寫自己的函式,接下來,我們開始編寫乙個有引數有返回值的擴充套件函式。因為zend沒有正式的函式呼叫語法檢查支援,所以我們在編寫擴充套件函式的時候必須得 小心 也就是我們必須得嚴格地進行呼叫合法性檢查。首先,我們寫乙個函式 include string.h php funct...

自己動手用c 寫控制項(下)

自己動手用c 寫控制項 下 因為我們這個控制項是實現背景漸變及文字填充,所以override paint事件以完成自畫。為了完成override,現在以下的準備工作 寫幾個在paint事件用的著的事件 使用角度的方法漸近重畫button private void drawbuttonwithangl...