PHP是當前應用非常廣泛的一門語言,從國外的Facebook、Twitter到國內的淘寶、騰訊、百度再到互聯網上林林總總的各種大中小型網站都能見到它的身影。PHP的成功,應該說很大程度上依賴於其開放的擴展API機制和豐富的擴展組件(PHP Extension),正是這些擴展組件使得PHP從各種數據庫操作到XML、JSON、加密、文件處理、圖形處理、Socket等領域無所不能。有時候開發人員可能需要開發自己的PHP擴展,當前PHP5的擴展機制是基於Zend API的,Zend API提供了豐富的接口和宏定義,加上一些實用工具,使得PHP擴展開發起來難度並不算特別大。本文將介紹關於PHP擴展組件開發的基本知識,並通過一個實例展示開發PHP擴展的基本過程。
PHP擴展組件的開發過程在Unix和Windows環境下有所不同,但基本是互通的,本文將基於Unix環境(具體使用Linux)。閱讀本文需要簡單了解Unix環境、PHP和C語言的一些基礎知識,只要簡單了解就行,我會盡量不涉及太過具體的操作系統和語言特性,並在必要的地方加以解釋,以便讀者閱讀。
本文的具體開發環境為Ubuntu 10.04 + PHP 5.3.3。
下載PHP源代碼
要開發PHP擴展,第一步要下載PHP源代碼,因為裡面有開發擴展需要的工具。我下載的是PHP最新版本5.3.3,格式為tar.bz2壓縮包。下載地址為:http://cn.php.net/get/php-5.3.3.tar.bz2/from/a/mirror。
下載後,將源代碼移動到合適的目錄並解壓。解壓命令為:
- tar -jxvf 源碼包名稱
若下載的是tar.gz壓縮包,解壓命令為
- tar -zxvf 源碼包名稱
解壓後,在源代碼目錄中有個ext目錄,這裡便是和PHP擴展有關的目錄。進入目錄後用ls查看,可以看到許多已經存在的擴展。下圖是在我的環境下查看的結果: