本文目錄一覽:
- 1、什麼是API接口,PHP開發API接口的例子
- 2、php如何開發API接口
- 3、有沒有開發php接口實例?
- 4、用php寫個接口。
- 5、怎麼用PHP開發API供其他客戶端調用?
- 6、php接口開發教程
什麼是API接口,PHP開發API接口的例子
就是php只處理數據,而不直接輸出html
把視圖層都交給js去完成。
比如:
//獲取數據
$id=$_GET[‘id’];
if($id){
//支數據庫取數據
$sql=”select*from table where id='”.$id.”‘”;
$re=…..;
echo json_encode($re);//返回json格式數據給前端處理
}
//修改數據
if($id$_GET[‘edit’]){
////數據庫操作
echo “修改成功”;
}
php如何開發API接口
比如一個自定義函數:function test(){echo 『hello world』;}就可以叫做 api。api 既可以是單個的函數,也可以是封裝在類里的方法,當然它們也是程序代碼。開發一個 api 的流程可以很簡單,也可以很複雜,視具體的編程任務而決定,並沒有特定的規則。比如,你需要為自己建立一個常用的函數庫,命名為 my.lib.php然後把你自己編寫的自定義函數,全部寫在這個文件裏面,那麼,你就擁有了自己的api。開發的時候,只需要引入 my.lib.php,你就可以調用自己的 api 了。這是一個比較簡單的例子。稍微複雜一點的,你可以把函數封裝在類裏面,方便繼承和重用,還可以根據函數名稱做一些程序設計,這個一句話說不清楚,給一個簡單的例子吧:class mylib{function showmy(){echo 『這是我的一個類方法』;}}調用的時候,先要實例化類,然後再調用方法。再複雜一點的就是使用類接口,區別就是接口裏面定義的只是方法原型,而你需要通過具體的類來實現接口中的函數,具體請參考 php 手冊
有沒有開發php接口實例?
你就直接寫個類,然後寫方法,然後查詢對應的數據,返回JSON格式就行,當然這個類的方法能通過瀏覽器訪問,別人調用也是這樣來調用的
用php寫個接口。
PHP 接口:
接口
使用接口(interface),你可以指定某個類必須實現哪些方法,但不需要定義這些方法的具體內容。
我們可以通過interface來定義一個接口,就像定義一個標準的類一樣,但其中定義所有的方法都是空的。
接口中定義的所有方法都必須是public,這是接口的特性。
實現
要實現一個接口,可以使用implements操作符。類中必須實現接口中定義的所有方法,否則 會報一個fatal錯誤。如果要實現多個接口,可以用逗號來分隔多個接口的名稱。
Note:
實現多個接口時,接口中的方法不能有重名。
Note:
接口也可以繼承,通過使用extends操作符。
常量
接口中也可以定義常量。接口常量和類常量的使用完全相同。 它們都是定值,不能被子類或子接口修改。
怎麼用PHP開發API供其他客戶端調用?
一、接口的分類:
1、URL類型的接口
URL
路由帶參數式的接口!這個很好做!只要有過Web開發經驗的人都能完成!這種接口數據不夠隱蔽性,可以直接在瀏覽其中看到,如支付寶的交易請求URL。需
要加一個MD5簽名,和服務器端的再次向支付寶服務器發送驗證!雖然soap方式傳遞的數據隱蔽性很好!但為了數據安全,難免也需要進行數據簽名。
2、SOAP類型的接口
無關編程語言、無關平台、擴展性很好,要實現一個SOAP 型的接口,有兩種方式:一種有WSDL文件方式、一中無WSDL文件方式!
對
於熱愛研究型的人來說,使用第一種方式可以讓你清楚的了解PHP是怎麼創建了一個Web
Service!但第一種對於新手來說,創建一個XML格式的WSDL文件,是比較難的,這你的先了解熟悉什麼是XML!學會XML語法!但對於一個急於
解決問題的人來說!沒有這麼多的時間去熟悉!所以這是件煩惱的事!
二、PHP環境設置
先配置下PHP的soap環境支持:
找到php.ini文件
;extension=php_soap.dll
刪除掉”;” ,重啟apache服務器
為了便於測試,需要關於wsdl緩存
方式1:
配置文件:php.ini 選項 soap.wsdl_cache_enabled 設置為0
方式2:
代碼頭添加:ini_set(‘soap.wsdl_cache_enabled’, “0”); //關閉wsdl緩存
三、有WSDL文件方式創建
在
這裡先介紹標準的webservice。 那麼如何創建wsdl呢?對於PHP來說這確實是件很不容易的事情,有人說用zend
studio創建很方便,這是一種方法。但對於那些不喜歡用zend studio的人來說,會覺得創建一個web service還要安裝zend
studio,太強人所難了。
在這裡介紹一個簡單的方法,到網上下載SoapDiscovery.class.php類,裏面有個公用方法:getWSDL,這個方法末尾是用的 return,那麼,你修改一下這個方法:
//return sprintf(‘%s%s%s%s%s%s’, $headerWSDL, $portTypeWSDL, $bindingWSDL, $serviceWSDL, $messageWSDL, ‘/definitions’);
//生成wsdl文件,將上面的return注釋
$fso = fopen($this-class_name . “.wsdl” , “w”);
fwrite($fso,
sprintf(‘%s%s%s%s%s%s’, $headerWSDL, $portTypeWSDL, $bindingWSDL,
$serviceWSDL, $messageWSDL, ‘/definitions’));
現在生成wsdl的類有了,SoapDiscovery.class.php(源碼在最末尾)。
再準備一個提供服務的Service.php類文件或者函數就可以創建wsdl了!
php接口開發教程
PHP與大多數面向對象編程語言一樣,不支持多重繼承.也就是說每個類只能繼承一個父類.為了解決這個問題,PHP引入了接口,接口的思想是指定了一個實現了該接口的類必須實現的一系列方法.接口是一種特殊的抽象類,抽象類又是一種特殊的類,所以接口也是一種特殊的類,為什麼說接口是一種特殊的抽象類呢?如果一個抽象類裏面的所有的方法都是抽象方法,那麼我們就換一種聲明方法使用「接口「;也就是說接口裏面所有的方法必須都是聲明為抽象方法,另外接口裏面不能聲明變量(但可聲明常量constant),而且接口裏面所有的成員都是public權限的。所以子類在實現的時候也一定要使用public權限實限。
聲明一個類的時候我們使用的關鍵字是」class」,而接口一種特殊的類,使用的關鍵字是「interface」;
類的定義: class 類名{ … } ,接口的聲明:interface 接口名{ …}
代碼
代碼
?php
//定義一個接口使用interface關鍵字,「One」為接口名稱
interface One
{
//定義一個常量
const constant = ‘constant value’;
//定義了一個抽象方法」fun1」
public function fun1();
//定義了抽象方法」fun2」
public function fun2();
}
?
上例中定義了一個接口」one」,裏面聲明了兩個抽象方法「fun1」和」fun2」,因為接口裏面所有的方法都是抽象方法,所以在聲明抽象方法的時候就不用像抽象類那樣使用」abstract」這個關鍵字了,默認的已經加上這個關鍵字,另外在接口裡邊的」public」這個訪問權限也可以去掉,因為默認就是public的,因為接口裡所有成員都要是公有的,所在對於接口裏面的成員我們就不能使用「private」的和」protected」的權限了,都要用public或是默認的。另外在接口裏面我們也聲明了一個常量「constant「, 因為在接口裏面不能用變量成員,所以我們要使用const這個關鍵字聲明。
因為接口是一種特殊的抽象類,裏面所有的方法都是抽象方法,所以接口也不能產生實例對象; 它也做為一種規範,所有抽象方法需要子類去實現。
我們可以使用」extends」關鍵字讓一個接口去繼承另一個接口:
?php
//使用」extends」繼承另外一個接口
interface Two extends One
{
function fun3();
function fun4();
}
?
而我們定義一接口的子類去實現接口中全部抽象方法使用的關鍵字是」implements」,而不是我們前面所說的」extends」;
代碼
?php
//使用「implements」這個關鍵字去實現接口中的抽象方法 接口和類之間
class Three implements One
{
function fun1()
{
…
}
function fun2()
{
…
}
}
//實現了全部方法,我們去可以使用子類去實例化對象了
$three=new Three();
?
我們也可以使用抽象類,去實現接口中的部分抽象方法,但要想實例化對象,這個抽象類還要有子類把它所有的抽象方法都實現才行;
在前面我們說過,PHP是單繼承的,一個類只能有一父類,但是一個類可以實現多個接口,就相當於一個類要遵守多個規範,就像我們不僅要遵守國家的法律,如果是在學校的話,還要遵守學校的校規一樣;
?php
//使用implements實現多個接口
class Four implemtns 接口一, 接口二, ….
{
//必須把所有接口中的方法都要實現才可以實例化對象。
}
?
PHP中不僅一個類可以實現多個接口,也可以在繼承一個類的同時實現多個接口, 一定要先繼承類再去實現接口;
?php
//使用extends繼承一個類,使用implements實現多個接口
class Four extends 類名一 implemtns 接口一, 接口二, ….
{
//所有接口中的方法都要實現才可以實例化對象
………
}
?
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/192336.html