国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP|PHP的接口使用示例

張憲坤 / 2174人閱讀

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

舉個(gè)Demo來說明接口的作用。

有這么一個(gè)類。

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è)務(wù)開發(fā)中,我們不必關(guān)心具體的Document的獲取場(chǎng)景,只需要確定,這個(gè)Document實(shí)現(xiàn)了這個(gè)接口,擁有這兩個(gè)方法即可。實(shí)現(xiàn)了業(yè)務(wù)細(xì)節(jié)和整體架構(gòu)抽象的解耦。

舉個(gè)例子:

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;
    }
}

再舉個(gè)例子:

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;
    }
}

再舉個(gè)例子:

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/21652.html

相關(guān)文章

  • PHP面試常考內(nèi)容之面向?qū)ο螅?)

    摘要:繼上一篇面試常考內(nèi)容之面向?qū)ο蟀l(fā)表后,今天更新,需要的可以直接點(diǎn)擊文字進(jìn)行跳轉(zhuǎn)獲取。析構(gòu)函數(shù),當(dāng)對(duì)象被銷毀時(shí)調(diào)用。 PHP面試專欄正式起更,每周一、三、五更新,提供最好最優(yōu)質(zhì)的PHP面試內(nèi)容。繼上一篇PHP面試常考內(nèi)容之面向?qū)ο螅?)發(fā)表后,今天更新(2),需要(1)的可以直接點(diǎn)擊文字進(jìn)行跳轉(zhuǎn)獲取。整個(gè)面向?qū)ο笪恼碌慕Y(jié)構(gòu)涉及的內(nèi)容模塊有: 一、面向?qū)ο笈c面向過程有什么區(qū)別?二、面向?qū)?..

    Barry_Ng 評(píng)論0 收藏0
  • 從0開始構(gòu)建一個(gè)屬于你自己PHP框架

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

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

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

    xeblog 評(píng)論0 收藏0
  • PHP接口示例,API短信通道

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

    OldPanda 評(píng)論0 收藏0
  • PHP接入支付寶 即時(shí)到帳接口

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

    stormgens 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<