php擴充套件開發之hello world

2022-01-22 17:10:29 字數 1848 閱讀 9148

最近在公司做的事情就是php擴充套件開發,雖然我只負責c++**的編寫,但是了解擴充套件開發的流程還是很有必要的。

(本文介紹的是動態擴充套件,對靜態擴充套件有興趣的讀者可自行google)

php擴充套件開發環境搭建可參考:

假設我們需要增加乙個函式echodemo_string,對應的php**如下:

function echodemo_string($param

)

1. 建立擴充套件框架這裡要用到乙個工具:ext_skel,它位於php原始碼目錄的ext目錄下。

假設擴充套件的名字為echodemo。

首先進入ext目錄,

建立檔案echodemo.skel,編輯檔案內容

string echodemo_string(string param)
然後執行:

./ext_skel --extname=echodemo --proto=echodemo.skel
執行完畢會生成 echodemo 目錄,目錄包含如下內容:

2. 修改配置

開啟config.m4,將第10、11、12行前面的dnl去掉,dnl表示注釋。

3. 實現功能

開啟echodemo.c,echodemo_string函式定義如下:

修改該函式實現我們需要的功能,最終實現如下:

(vim主題太醜了,我得換換。。。)

4. 編譯安裝擴充套件

這裡需要用到phpize生成configure檔案,在我的機器上,phpize位於/usr/local/php/bin目錄。

phpize

./configure --with-php-config=/usr/local/php/bin/php-config

make

make

install

當出現 "installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/",表示新的擴充套件 echodemo.so 已經安裝完成。

此時還需要做的一件事就是修改 php.ini 檔案。

不知道 php.ini 檔案在哪?直接 php -i | grep php.ini 。我的在 /usr/local/php/lib 目錄下。

檔案末尾追加一行:

extension=echodemo.so
5. 驗證安裝重啟php-fpm:service php-fpm restart,

檢查擴充套件是否載入:

php -m | grep echodemo
如果順利,終端會輸出 echodemo。

檢查擴充套件**是否正確:

php -r "

echo echodemo_string('hello world');

"

注意,我外部用的雙引號,函式引數用的單引號,這是為了避免一些轉義錯誤。

php擴充套件開發之hello world

最近在公司做的事情就是php擴充套件開發,雖然我只負責c 的編寫,但是了解擴充套件開發的流程還是很有必要的。本文介紹的是動態擴充套件,對靜態擴充套件有興趣的讀者可自行google php擴充套件開發環境搭建可參考 假設我們需要增加乙個函式echodemo string,對應的php 如下 funct...

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 修...