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