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

資訊專欄INFORMATION COLUMN

讀 PHP - Pimple 源碼筆記(下)

KunMinX / 383人閱讀

摘要:服務容器接口是的簡寫,由組織制定的規范,是開發的實踐標準。實現的容器類源碼很簡單,主要是傳入變量,然后設置這個兩個方法。原創文章,歡迎轉載。原文鏈接地址作者發表日期

接著上篇 還有一些內容沒有寫,上篇已經把關于 Pimple 最主要的代碼分析了一下,這篇主要是關于 PSR-11 兼容性的分析。

PSR-11 服務容器接口 PSR

PSR 是 PHP Standard Recommendations 的簡寫,由 PHP FIG 組織制定的 PHP 規范,是 PHP 開發的實踐標準 。
有一份 PSR 中文版 推薦看看,不過由于是翻譯的,難免不是很及時,但是對于理解 PSR 1 - PSR 7 還是很有幫助的。

PSR-11

PSR-11 是服務容器接口 。

interface ContainerInterface
{
     public function get($id);
     public function has($id);
}

只需要實現這個兩個接口就行。

Pimple - PSR-11 兼容性

Pimple 的作者自己也說了,由于歷史原因,沒有實現 PSR-11,但是提供了輔助類 。
1、PimplePsr11Container.php
2、PimplePsr11ServiceLocator.php
3、PimpleServiceIterator.php

PimplePsr11Container.php

實現 PSR-11 的容器類

final class Container implements ContainerInterface
{
    private $pimple;

    public function __construct(PimpleContainer $pimple)
    {
        $this->pimple = $pimple;
    }

    public function get($id)
    {
        return $this->pimple[$id];
    }

    public function has($id)
    {
        return isset($this->pimple[$id]);
    }
}

源碼很簡單,主要是傳入 pimple 變量,然后設置 get、has 這個兩個方法。

PimplePsr11ServiceLocator.php

服務定位
1、在獲取依賴 service 的時候,傳入有限個 service,而不是全部
2、可以為 service 設置別名

PimpleServiceIterator.php

服務迭代,實現了 Iterator 接口,可以循環 service 。

總結

Pimple 的確是一個簡單的依賴注入容器,代碼很容易看懂,對于學習入門來說很好,比 Laravel 的 DI 好懂多了。

原創文章,歡迎轉載。轉載請注明出處,謝謝。
原文鏈接地址:http://dryyun.com/2018/04/19/...
作者: dryyun
發表日期: 2018-04-19 16:03:02

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

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28646.html

相關文章

  • PHP - Pimple 源碼筆記(上)

    摘要:也就是閑時為了寫文章而寫的一篇關于源碼的閱讀筆記。是標準庫的縮寫,一組旨在解決標準問題的接口和類的集合。提供了一套標準的數據結構,一組遍歷對象的迭代器,一組接口,一組標準的異常,一系列用于處理文件的類,提供了一組函數,具體可以查看文檔。 也就是閑時為了寫文章而寫的一篇關于 Pimple 源碼的閱讀筆記。Pimple 代碼有兩種編碼方式,一種是以 PHP 編寫的,另一種是以 C 擴展編寫...

    cfanr 評論0 收藏0
  • Pimple相關的源碼

    摘要:已經有了非常好的的相關解析,建議先看下一個簡單的依賴注入容器讀源碼筆記上讀源碼筆記下這里通過例子補充下核心方法的說明相關的類型服務類似單例工廠服務多個實例參數僅僅是保存一些變量保護參數匿名函數都會被認為服務,但是如果僅僅是想作為一個 已經有了非常好的Pimple的相關解析,建議先看下:Pimple - 一個簡單的 PHP 依賴注入容器讀 PHP - Pimple 源碼筆記(上)讀 PH...

    MSchumi 評論0 收藏0
  • Pimple - 一個簡單的 PHP 依賴注入容器

    摘要:服務通過匿名函數定義,返回一個對象的實例定義一些服務請注意,匿名函數可以訪問當前容器實例,從而允許引用其他服務或參數。如果要為所有調用返回不同的實例,請使用方法包裝你的匿名函數。 鏈接 官網 WebSite GitHub - Pimple 這是 Pimple 3.x 的文檔。如果你正在使用 Pimple 1.x ,請查看 Pimple 1.x 文檔。閱讀 Pimple 1.x ...

    wemall 評論0 收藏0
  • PHP容器--Pimple運行流程淺析

    摘要:實際上,閉包和匿名函數是偽裝成函數的對象。容器流程淺析是社區中比較流行的容器。服務提供者服務提供者是連接容器與具體功能實現類的橋梁。服務提供者需要實現接口所有服務提供者必須實現接口方法。但已經完成了服務提供者的注冊工作。 需要具備的知識點 閉包 閉包和匿名函數在PHP5.3.0中引入的。 閉包是指:創建時封裝周圍狀態的函數。即使閉包所處的環境不存在了,閉包中封裝的狀態依然存在。 理論上...

    RobinTang 評論0 收藏0
  • Pimple Containter 容器使用實例代碼

    摘要:安裝代碼加載并實例化參數存儲單例存儲非單例存儲存儲匿名函數獲取匿名函數服務提供者文檔官網文檔 Pimple/Container 安裝 composer require pimple/pimple: ^3.0 代碼 加載并實例化 require __DIR__ . /vendor/autoload.php; $pc = new PimpleContainer(); 參數存儲 $pc[ap...

    maochunguang 評論0 收藏0

發表評論

0條評論

KunMinX

|高級講師

TA的文章

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