PHP擴充套件開發探索(一)

2021-06-28 15:31:11 字數 1178 閱讀 5664

開發環境:centos 6.2 ;apace 2.2; php 5.5.5 ;

第一步:擴充套件檔案生成

執行php原始碼中ext中的ext_skel指令碼(主要引數為 --extname ),會在ext中生成extname的資料夾,即擴充套件專案(本次測試使用sayhello作為模組名)

第二步:擴充套件專案檔案

檢視sayhello檔案下,有一下幾個重要檔案:config.m4    php_sayhello.h  sayhello.php     sayhello.c 。

(1)sayhello.c :

基本函式:

php_ini_begin():  載入擴充套件在php.ini中的配置資訊;

php_minit_function(sayhello):php初始化時,都會執行每個模組的初始化函式;

php_mshutdown_function(sayhello);apache stop的時候,解除安裝php模組,這個時候執行此函式;

php_rinit_function(sayhello):每次request執行的函式;

php_rshutdown_function(sayhello);request結束或者被die(exit)掉了,執行這個函式,收拾爛攤子(釋放記憶體等等);

自定義函式:

php_function(sayhello):你的擴充套件定義的函式,必須使用zend給定的這個巨集來定義,每乙個定義的函式都必須加入到 sayhello_functions

這個結構體中。

(2)config.m4 儲存擴充套件編譯配置資訊的檔案

第三步: 修改config.m4,讓你的sayhello可以被編譯

php_arg_enable(sayhello, whether to enable sayhello support,

dnl make sure that the comment is aligned:

[  --enable-sayhello           enable sayhello support])

第四步:正常的編譯步驟./config make  make install 生成sayhello.so

第五步:配置php.in,重啟伺服器,就可以在php**中使用自己sayhello擴充套件的sayhello函式了

windows使用擴充套件最好在windows下重新編譯原始碼生成dll.

php擴充套件開發

php擴充套件 pecl 跟php引擎一樣都是使用c語言開發。php核心開發組成員鳥哥laruence使用的是vim進行php開發。書籍 案例 php src ext pecl開發郵件組 盡量編寫一些phpt測試用例,php src tests下有很多參考.測試時用 enable debug編譯ph...

php擴充套件開發

二 php擴充套件開發 擴充套件開發流程 生成開發骨架 修改config.m4 編碼 編譯擴充套件為so 修改php.ini 1.生成開發骨架 1.1 進入擴充套件目錄 cd php 7.0.1 ext 1.2 用.ext skel生成骨架 ext skel extname module 1.3 修...

PHP擴充套件開發

php function say hello len spprintf strg,0,hello s n arg return stringl strg,len,0 1.引數接收 這裡接收函式的引數需要通過zend parse parameter函式解析,第乙個引數指定使用者傳入say hello函...