×

php接口是指什么?

分類(lèi):云服務(wù)資訊 編輯: 瀏覽量:100
2021-07-27 15:08:40
??接口interface是一個(gè)規(guī)定,給人繼承用的東西,有點(diǎn)像抽象類(lèi)。接口定義了實(shí)現(xiàn)某種服務(wù)的一般規(guī)范,聲明了所需的函數(shù)和常量,但不指定如何實(shí)現(xiàn)。之所以不給出實(shí)現(xiàn)的細(xì)節(jié),是因?yàn)椴煌膶?shí)體可能需要用不同的方式來(lái)實(shí)現(xiàn)公共的方法定義。關(guān)鍵是要建立必須實(shí)現(xiàn)的一組一般原則,只有滿(mǎn)足了這些原則才能說(shuō)實(shí)現(xiàn)了這個(gè)接口。下面就由新網(wǎng)小編和大家講一講php接口是指什么。

??一、PHP接口(interface)的特點(diǎn) :

??1、接口的方法必須是公開(kāi)的。

??2、接口的方法默認(rèn)是抽象的,所以不在方法名前面加abstract。

??3、接口可以定義常量,但不能定義成員屬性,常量的定義和用法和類(lèi)中常量一樣。

??4、類(lèi)可以實(shí)現(xiàn)多個(gè)接口(相當(dāng)于把多個(gè)功能集于一身,如手機(jī)實(shí)現(xiàn)了小靈通、MP3、MP4的功能)

??5、接口也可以繼承接口。

??PHP同大多數(shù)的面向?qū)ο笳Z(yǔ)言一樣,并不支持多重繼承。如果需要實(shí)現(xiàn)多重繼承功能,在PHP中,可以通過(guò)接口,它是PHP解決多重繼承問(wèn)題的方法,在php5.4版本之后有個(gè)類(lèi)的新特性trait。

??二、php哪個(gè)框架適合做api?

??從問(wèn)題本身來(lái)說(shuō),是否適合做API和框架關(guān)系不大。

??框架解決的問(wèn)題是提供一個(gè)優(yōu)秀的程序架構(gòu),提高團(tuán)隊(duì)協(xié)作效率,提高代碼可維護(hù)性等等。

??實(shí)際上,選擇框架還應(yīng)該從更多的角度去衡量,比如是否易學(xué),有沒(méi)有足夠強(qiáng)大的社區(qū)支持等等很多方面。其實(shí)我自己感覺(jué)最重要的還是個(gè)人喜好,有時(shí)候你喜歡一個(gè)東西可能說(shuō)不出來(lái)太具體的理由,就是喜歡。

??另一方面,開(kāi)發(fā) JSON 格式的 API,和開(kāi)發(fā)以 HTML 為格式的網(wǎng)頁(yè)沒(méi)有本質(zhì)區(qū)別,只不過(guò)是把輸出由 HTML 改成 JSON 而已。所以最重要的還是業(yè)務(wù)邏輯是什么,而不是開(kāi)發(fā)的是 API 還是什么其他東西。

??三、PHP參考框架

??(一)CodeIgniter的優(yōu)點(diǎn)

??1. 配置簡(jiǎn)單,全部的配置使用 PHP腳本來(lái)配置,執(zhí)行效率高;具有基本的路由功能,能夠進(jìn)行一定程度的路由;具有初步的Layout功能,能夠制作一定程度的界面外觀;數(shù)據(jù)庫(kù)層封裝的不錯(cuò),具有基本的MVC功能。

??2. 快速簡(jiǎn)潔,代碼不多,執(zhí)行性能高,PHP框架簡(jiǎn)單, 容易上手,學(xué)習(xí)成本低,文檔詳細(xì);自帶了很多簡(jiǎn)單好用的library,框架適合小型應(yīng)用。[7]

??(二)CodeIgniter 缺點(diǎn)

??1. 把Model層簡(jiǎn)單的理解為數(shù)據(jù)庫(kù)操作。

??2. PHP 框架略顯簡(jiǎn)單,只能夠滿(mǎn)足小型應(yīng)用,略微不太能夠滿(mǎn)足中型應(yīng)用需要。[7]

??(三)CakePHP 的優(yōu)點(diǎn)

??1. CakePHP 是最類(lèi)似于RoR的 PHP 框架,包括設(shè)計(jì)方式,數(shù)據(jù)庫(kù)操作的Active Record方式;設(shè)計(jì)層面很優(yōu)雅,沒(méi)有自帶多余的 library,所有的功能都是純粹的框架,執(zhí)行效率還不錯(cuò);數(shù)據(jù)庫(kù)層的hasOne,hasMany 功能很強(qiáng)大,對(duì)于復(fù)雜業(yè)務(wù)處理比較合適;路由功能,配置功能還不錯(cuò);自動(dòng)構(gòu)建腳手架(scaffold)很強(qiáng)大;適合中型應(yīng)用;基本實(shí)現(xiàn)過(guò)了MVC每一層; 具有自動(dòng)操作命令行腳本功能。

??2. 文檔比較全,在國(guó)內(nèi)推廣的比較成功,大部分人都知道CakePHP,學(xué)習(xí)成本中等。[7]

??(四)CakePHP 的缺點(diǎn)

??1. CakePHP非常嚴(yán)重的問(wèn)題是把Model理解為數(shù)據(jù)庫(kù)層操作,嚴(yán)重影響了除了數(shù)據(jù)庫(kù)之外的操作能力

??2. CakePHP的cache功能略顯薄弱,配置功能稍嫌弱;CakePHP不適合大型應(yīng)用,只適合中型應(yīng)用,小型應(yīng)用來(lái)說(shuō)略微的學(xué)習(xí)成本高了點(diǎn)。

??在 PHP 中,所有的變量都是頁(yè)面級(jí)的,無(wú)論是全局變量, 還是類(lèi)的靜態(tài)成員,都會(huì)在頁(yè)面執(zhí)行完畢后被清空。設(shè)計(jì)缺陷,缺少關(guān)注PHP被稱(chēng)作是不透明的語(yǔ)言,因?yàn)闆](méi)有堆棧追蹤,各種脆弱的輸入。沒(méi)有一個(gè)明確的設(shè)計(jì)哲學(xué)。早期的PHP受到Perl的影響,帶有out參數(shù)的標(biāo)準(zhǔn)庫(kù)又是有C語(yǔ)言引入,面向?qū)ο蟮牟糠钟质菑腃++和Java學(xué)來(lái)的。小伙伴們要想獲得更多php接口的內(nèi)容,請(qǐng)關(guān)注新網(wǎng)!

聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)

送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)

需注明出處:新網(wǎng)idc知識(shí)百科

免費(fèi)咨詢(xún)獲取折扣

Loading