首先你要寫一個接口文檔,定義數據結構
創新互聯建站專業為企業提供東臺網站建設、東臺做網站、東臺網站設計、東臺網站制作等企業網站建設、網頁設計與制作、東臺企業網站模板建站服務,10多年東臺做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
然后開始封裝寫類
class a{
public function(){
$a = $_GET['a'];
echo '這里面寫業務邏輯';
echo '輸出結果366u';
}
}
PHP 接口
接口
使用接口(interface),你可以指定某個類必須實現哪些方法,但不需要定義這些方法的具體內容。
我們可以通過interface來定義一個接口,就像定義一個標準的類一樣,但其中定義所有的方法都是空的。
接口中定義的所有方法都必須是public,這是接口的特性。
實現
要實現一個接口,可以使用implements操作符。類中必須實現接口中定義的所有方法,否則 會報一個fatal錯誤。如果要實現多個接口,可以用逗號來分隔多個接口的名稱。
Note:
實現多個接口時,接口中的方法不能有重名。
Note:
接口也可以繼承,通過使用extends操作符。
常量
接口中也可以定義常量。接口常量和類常量的使用完全相同。 它們都是定值,不能被子類或子接口修改。
范例
Example #1 接口代碼示例
?php
// 聲明一個'iTemplate'接口
interface iTemplate
{
public function setVariable($name, $var);
public function getHtml($template);
}
// 實現接口
// 下面的寫法是正確的
class Template implements iTemplate
{
private $vars = array();
public function setVariable($name, $var)
{
$this-vars[$name] = $var;
}
public function getHtml($template)
{
foreach($this-vars as $name = $value) {
$template = str_replace('{' . $name . '}', $value, $template);
}
return $template;
}
}
// 下面的寫法是錯誤的,會報錯:
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (iTemplate::getHtml)
class BadTemplate implements iTemplate
{
private $vars = array();
public function setVariable($name, $var)
{
$this-vars[$name] = $var;
}
}
?
Example #2 Extendable Interfaces
?php
interface a
{
public function foo();
}
interface b extends a
{
public function baz(Baz $baz);
}
// 正確寫法
class c implements b
{
public function foo()
{
}
public function baz(Baz $baz)
{
}
}
// 錯誤寫法會導致一個fatal error
class d implements b
{
public function foo()
{
}
public function baz(Foo $foo)
{
}
}
?
Example #3 多個接口間的繼承
?php
interface a
{
public function foo();
}
interface b
{
public function bar();
}
interface c extends a, b
{
public function baz();
}
class d implements c
{
public function foo()
{
}
public function bar()
{
}
public function baz()
{
}
}
?
Example #4 使用接口常量
?php
interface a
{
const b = 'Interface constant';
}
// 輸出接口常量
echo a::b;
// 錯誤寫法,因為常量的值不能被修改。接口常量的概念和類常量是一樣的。
class b implements a
{
const b = 'Class constant';
}
?
你也可以看看instanceof關鍵字的文檔。
cms提供直接輸出、PHP代碼體兩種方便開發者使用的數據輸出接口。
1、直接輸出
本類型是將后臺錄入的數據格式原樣輸出到客戶端
返回格式為:
array(3) { ["code"]= int(1) ["msg"]= string(2) "ok" ["data"]= string(7) "test123" }
2、JSON數組
本類型數據內容必須是一個json格式的數組字符串
返回格式為:
array(3) { ["code"]= int(1) ["msg"]= string(2) "ok" ["data"]= array(3) { [0]= string(1) "1" [1]= string(1) "2" [2]= string(1) "3" } }
3、php執行代碼
4、模板查詢標簽
本類型需要有CMS模板標簽的使用經驗,直接寫標簽代碼返回結果
例如調用news模塊全部數據:
{module module=news} 或者 {list action=module module=news}
模板標簽只能寫一段,不能寫多段
通過以上的list查詢方法可調用循環標簽的全部數據,當然你可以對結果進行格式化處理,使用回調方法。
5、自定義模板標簽
本類型需要有CMS模板標簽的使用經驗,直接寫標簽代碼返回結果,區別于(4),本類型可以直接在標簽里面寫賦值方法和格式化顯示,不需要寫回調方法
這里循環出news模塊的全部數據,只顯示id,title,再把thumb轉換為url地址。
也可以這樣寫,原理是將輸出變量賦值給$api數組:
{module module=news} {php $api[$key]['id']=$t['id'];} {php $api[$key]['title']=$t['title'];} {php $api[$key]['thumb']=dr_thumb($t['thumb'], 200,200);} {/module}
以上語法格式為:
6、自定義PHP代碼
本類型需要有PHP的開發使用經驗,直接將php業務代碼寫進去
$api變量為直接返回,例如:
$api = '我的自定義返回變量值';
返回截圖如下:
也可以自定義強制返回
$api = '我的自定義返回變量值'; PhpcmfService::C()-_json(1, '我的返回腳本成功了', $api); // 成功寫法 PhpcmfService::C()-_json(0, '我的返回腳本失敗了'); // 失敗寫法
接口的流程.
建立控制器(訪問地址)-審核訪問者身份(token)-驗證提交數據是否符合類型(validate
)-處理接收數據(邏輯流程)-返回結果(json字符串).
其中要注意是否存在跨域,如果跨域要做跨域處理,例如返回jsonp.
網頁名稱:php寫后端數據接口 php寫app后端
標題網址:http://vcdvsql.cn/article36/dopissg.html
成都網站建設公司_創新互聯,為您提供品牌網站建設、軟件開發、響應式網站、小程序開發、網站維護、網站收錄
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯