首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 5 自定義模塊開發實戰:從 C 庫到 PHP 擴展

     編輯:PHP 綜合知識

項目背景

承接上篇將 WebService 客戶端 main() 重構為 testPhpModule(),將控制台輸出改為字符串返回,編譯生成動態庫 libTest.so。本文詳述如何將其封裝為 PHP 5 模塊。

環境準備

  1. 將 libTest.so 複製至 /usr/lib
  2. 執行 /sbin/ldconfig 更新動態鏈接庫緩存
  3. 準備 PHP 源碼並解壓

模塊開發步驟

1. 生成擴展骨架

cd php-src/ext
./ext_skel --extname=your_module_name

2. 配置 config.m4

進入生成的模塊目錄,編輯 config.m4,找到以下代碼並去掉每行首的 dnl:

dnl PHP_ARG_WITH(your_module, for your_module support,
dnl Make sure that the comment is aligned:
dnl [ --with-your_module Include your_module support])

或啟用模式:

dnl PHP_ARG_ENABLE(your_module, whether to enable your_module support,
dnl Make sure that the comment is aligned:
dnl [ --enable-your_module Enable your_module support])

建議:動態加載優先使用 --enable- 方式。

後續步驟(摘要)

  • 編輯 php_your_module.h 聲明 PHP_FUNCTION(testPhpModule)
  • 在 your_module_functions 中註冊 PHP_FE(testPhpModule, NULL)
  • 在 your_module.c 實現函數,調用 libTest.so 中的導出符號
  • 執行 phpize && ./configure --enable-your_module && make
  • 將生成的 modules/your_module.so 複製至 PHP 擴展目錄,修改 php.ini 載入

完成後,即可在 PHP 中直接調用 testPhpModule() 獲得 C 庫處理結果,實現高性能計算邏輯的 PHP 化復用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved