相關(guān)關(guān)鍵詞
關(guān)于我們
最新文章
- PHP中opcode緩存簡(jiǎn)單用法分析
- thinkPHP控制器變量在模板中的顯示方法示例
- PHP move_uploaded_file() 函數(shù)(將上傳的文件移動(dòng)到新位置)
- dirname(__FILE__)的含義和應(yīng)用說(shuō)明
- thinkPHP5框架實(shí)現(xiàn)分頁(yè)查詢功能的方法示例
- PHP中單雙號(hào)與變量
- PHP獲得當(dāng)日零點(diǎn)時(shí)間戳的方法分析
- Laravel ORM對(duì)Model::find方法進(jìn)行緩存示例詳解
- PHP讀寫文件高并發(fā)處理操作實(shí)例詳解
- 【CLI】利用Curl下載文件實(shí)時(shí)進(jìn)度條顯示的實(shí)現(xiàn)
PHP7擴(kuò)展開(kāi)發(fā)教程之Hello World實(shí)現(xiàn)方法示例
本文實(shí)例講述了PHP7擴(kuò)展開(kāi)發(fā)教程之Hello World實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
一、下載PHP源代碼
要開(kāi)發(fā)PHP擴(kuò)展,需要先下載PHP的源代碼,一方面是因?yàn)槲覀兊臄U(kuò)展一般會(huì)用到PHP自身定義的函數(shù)和宏,另一方面我們可以利用官方提供的工具減少工作量。
我下載了PHP-7.0.2,地址是:http://cn2.php.net/get/php-7.0.2.tar.gz。
解壓源碼壓縮包, tar xzf php-7.0.2.tar.gz,我們現(xiàn)在只需要關(guān)注Zend和ext這兩個(gè)目錄。
Zend目錄里面包含了PHP的Zend Engine源代碼,有些函數(shù)和宏的定義我們需要在這里面簡(jiǎn)單地看一下。
ext目錄里面包含了PHP原生的擴(kuò)展,以及我們開(kāi)發(fā)自己的擴(kuò)展時(shí)可以利用的工具,Linux下使用ext_skel,Windows下使用ext_skel_win32.php
二、使用ext_skel工具
我們可以在ext目錄下看到所有的PHP原生擴(kuò)展,其中包括了熟悉的curl,json,mbstring,simplexml,sockets等擴(kuò)展,還有很多沒(méi)有用過(guò)甚至沒(méi)有聽(tīng)說(shuō)過(guò)的擴(kuò)展,不用在意這些,我們先打開(kāi)我們最熟悉的curl來(lái)看看,有config.m4配置文件,有php_curl.h,curl_file.c等源代碼,還有一些中間文件,最后還有一個(gè)tests目錄,里面放的curl擴(kuò)展的單元測(cè)試。重點(diǎn)關(guān)注config.m4,php_curl.h,curl_file.c即可,最簡(jiǎn)單的場(chǎng)景下這三個(gè)文件就是一個(gè)擴(kuò)展的全部組成部分了。
打開(kāi)隨便看一下,不算太復(fù)雜,但是自己寫一個(gè)類似的還是挺頭疼的,這時(shí)就需要用到我前面提到的ext_skel工具了。這個(gè)工具也在ext目錄下,我們執(zhí)行一下,./ext_skel --help,可以看到若干參數(shù),我們用到的只有--extname=module,這里填上自己開(kāi)發(fā)的擴(kuò)展名稱。想深入了解各個(gè)參數(shù)的作用可以看這里:http://php.net/manual/en/internals2.buildsys.skeleton.php
./ext_skel --extname=hello