成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP|PHP的接口使用示例

張憲坤 / 2182人閱讀

摘要:舉個來說明接口的作用。定義如下在未來的業(yè)務開發(fā)中,我們不必關心具體的的獲取場景,只需要確定,這個實現(xiàn)了這個接口,擁有這兩個方法即可。實現(xiàn)了業(yè)務細節(jié)和整體架構抽象的解耦。舉個例子再舉個例子再舉個例子使用方法參考

舉個Demo來說明接口的作用。

有這么一個類。

class DocumentStore
{
    protected $data = [];
    
    public function addDocument(Documentable $document)
    {
        $key = $document->getId();
        $value = $document->getContent();
        $this->data[$key] = $value;
    }
    
    public function getDocuments()
    {
        return $this->data;
    }
}

其中Documentable就是接口。定義如下:

interface Documentable
{
    public function getId();
    
    public function getContent();
}

在未來的業(yè)務開發(fā)中,我們不必關心具體的Document的獲取場景,只需要確定,這個Document實現(xiàn)了這個接口,擁有這兩個方法即可。實現(xiàn)了業(yè)務細節(jié)和整體架構抽象的解耦。

舉個例子:

class HtmlDocument implements Documentable
{
    protected $url;
    
    public function __construct($url)
    {
        $this->url = $url;
    }
    
    public function getId()
    {
        return $this->url;
    }
    
    public function getContent()
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $this->url);
        // opt etc
        $html = curl_exec($ch);
        curl_close($ch);
        
        return $htl;
    }
}

再舉個例子:

class StreamDocument implements Documentable
{
    protected $resource;
    protected $buffer;
    
    public function __construct($resource, $buffer = 4096)
    {
        $this->resource = $resource;
        $this->buffer = $buffer;
    }
    
    public function getId()
    {
        return "resource-" . (int)$this->resource;
    }
    
    public function getContent()
    {
        $streamContent = "";
        rewind($this->resource);
        while (feof($this->resource) === false) {
            $streamContent .= fread($this->resource, $this->buffer);
        }
        
        return $streamContent;
    }
}

再舉個例子:

class CommandOutputDocument implements Documentable
{
    protected $command;
    
    public function __construct($command)
    {
        $this->command = $command;
    }
    
    public function getId()
    {
        return $this->command;
    }
    
    public function getContent()
    {
        return shell_exec($this->command);
    }
}

使用方法:

addDocument($htmlDoc);

$streamDoc = new StreamDocument(fopen("stream.txt", "rb"));
$streamDoc->addDocument($streamDoc);

$cmdDoc = new CommandOutputDocument("cat /etc/hosts");
$documentStore->addDocument($cmdDoc);

print_r($documentStore->getDocuments());

參考:

Modern PHP

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/21652.html

相關文章

  • PHP面試??純热葜嫦驅ο螅?)

    摘要:繼上一篇面試??純热葜嫦驅ο蟀l(fā)表后,今天更新,需要的可以直接點擊文字進行跳轉獲取。析構函數(shù),當對象被銷毀時調用。 PHP面試專欄正式起更,每周一、三、五更新,提供最好最優(yōu)質的PHP面試內容。繼上一篇PHP面試常考內容之面向對象(1)發(fā)表后,今天更新(2),需要(1)的可以直接點擊文字進行跳轉獲取。整個面向對象文章的結構涉及的內容模塊有: 一、面向對象與面向過程有什么區(qū)別?二、面向對...

    Barry_Ng 評論0 收藏0
  • 從0開始構建一個屬于你自己PHP框架

    摘要:如何構建一個自己的框架為什么我們要去構建一個自己的框架可能絕大多數(shù)的人都會說市面上已經那么多的框架了,還造什么輪子。 showImg(https://segmentfault.com/img/bVNg9F?w=500&h=500); 如何構建一個自己的PHP框架 為什么我們要去構建一個自己的PHP框架?可能絕大多數(shù)的人都會說市面上已經那么多的框架了,還造什么輪子?。我的觀點造輪子不是目...

    vpants 評論0 收藏0
  • php短信接口開發(fā)(http協(xié)議)

    摘要:做為公司的一名技術,每天會碰到很多新手朋友咨詢有關短信接口開發(fā)的問題,下面就以語言為例為大家介紹下短信接口如何開發(fā)。閱讀樂信短信接口示例。二主體協(xié)議發(fā)送短信發(fā)送普通短信調用此方法,可單個或批量發(fā)送。 做為公司的一名技術,每天會碰到很多新手朋友咨詢有關短信接口開發(fā)的問題,下面就以php語言為例為大家介紹下短信接口如何開發(fā)。 一、接口說明 1、提交方式與編碼 http請求都應以POST...

    xeblog 評論0 收藏0
  • PHP接口示例,API短信通道

    kewail接口短信平臺提供完備狀態(tài)查詢,支持狀態(tài)接口短信api推送詳盡的在線接口文檔,隨時查閱,不斷更新標準HTTP接口,提供多種語言示例 (PHPJAVAC#NODEPYTHON等)支持多種返回格式 JSON/XML// Works well with php5.3and php5.6.namespace KewailSms;class SmsSenderUtil {functiongetRa...

    OldPanda 評論0 收藏0
  • PHP接入支付寶 即時到帳接口

    摘要:如果還不知道如何簽約,請查看支付寶即時到帳簽約教程完成簽約后,需要把項目導入自己的項目中安裝方法,請參考項目簡介。跳轉支付寶通過上一步返回的是請求支付寶的。本次支付寶的即時到帳接口到這里就完成了調用。 payment 項目2.0版本 特別聲明: 以下文檔均針對 payment 2.0 以上版本,并且PHP需要5.5以上(含)。代碼中所有編碼均使用 utf-8 。 通過幾天的時間,終于...

    stormgens 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<