內容均以php5.6.14為例.
要擁有乙個php擴充套件的架子,使用原始碼中準備好的 /ext/ext_skel 工具,可以生成乙個可執行的擴充套件骨架。
不加選項執行 ./ext_skel,可檢視所有可用選項的幫助文字。
意思是使用自己的擴充套件要經過這8步,但 buildconf 是在 php-src 內執行生成 configure 檔案。
make 也相當於編譯整個php,我們實際上可以直接在擴充套件內進行安裝操作,和其它擴充套件一樣。
擴充套件目錄內真正有用的檔案就三個 config.m4 , php_myext.h , myext.c .
--no-help 選項很有用,加上後不再出現上面一長段文字和骨架**中顯而易見的注釋,對於已有開發經驗的人來說比較整潔一點.
2)vi config.m4主要是開啟下面兩個選項,去掉前面的dnl,讓擴充套件支援 --with-myext, --enable-myext 選項,乙個用來引入擴充套件,乙個用來開啟擴充套件:
其餘的m4語法,等有功夫再回過頭去看,目前僅需兩項。
3)編譯安裝擴充套件
cd myext4)使用安裝完生成的 myext.so 擴充套件檔案在這個目錄,/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226phpize (即 /usr/local/php/bin/phpize)
./configure --with-php-config=/usr/local/php/bin/php-config
make
make test (可忽略)
make install
最後,把 myext.so 加入到 php.ini 中,extension = myext.so
使用 php -m 可以檢視是否安裝成功,瀏覽器中則用phpinfo檢視。
5)開發
擴充套件模組編譯進php後,後面修改了擴充套件原始檔後,只需要重新 make && sudo make install .
q&a本地安裝多個版本php時,通過在 ~/.bash_profile 中加入php命令列別名,如:
`alias php5.6.14=/usr/local/php5.6.14/bin/php`
source ~/.bash_profile 使立即生效,即可在cli下使用 php5.6.14 -f 1.php 檢視執行結果。
php的生命週期:
(命令執行) 擴充套件模組初始化 -> (請求指令碼) 擴充套件請求初始化 -> (執行指令碼) 擴充套件請求關閉 -> (完成請求) 擴充套件模組關閉
這些都在你的擴充套件主檔案 myext.c 中。
php_minit_function(myext)開發文件:php_rinit_function(myext)
php_rshutdown_function(myext)
php_mshutdown_function(myext)
link:
乙個簡單的PHP擴充套件
php擴充套件開發 安裝php posix定時器 timer settime 我們先假設業務場景,是需要有這麼乙個擴充套件,提供乙個叫ccvita string的函式,他的主要作用是返回一段字元。這個業務場景實在太假,大家就這麼看看吧 對應的php 可能是這樣 function ccvita str...
開發乙個小的php擴充套件
今天試了一下在php新增擴充套件,看了挺多資料,細節上不一致,其他大體是差不多的。我們來開發乙個叫ccvita string的函式,他的主要作用是返回一段字元,對應的php 可能如此 function ccvita string str 即生成鏈結 第一步,生成 進入php源 中自帶的工具ext s...
快速開發乙個PHP擴充套件
快速開發乙個php擴充套件 本文通過非常快速的方式講解了如何製作乙個php 5.2 環境的擴充套件 php extension 希望能夠在 的方式下讓想快速學習的朋友了解一下製作過程。步驟一 生成擴充套件框架 cd root soft php php 5.2.6 ext ext skel extna...