摘要:安裝代碼加載并實(shí)例化參數(shù)存儲(chǔ)單例存儲(chǔ)非單例存儲(chǔ)存儲(chǔ)匿名函數(shù)獲取匿名函數(shù)服務(wù)提供者文檔官網(wǎng)文檔
Pimple/Container 安裝
composer require "pimple/pimple": "^3.0"
代碼 加載并實(shí)例化require __DIR__ . "/vendor/autoload.php"; $pc = new PimpleContainer();參數(shù)存儲(chǔ)
$pc["app_id"]="pimple";單例存儲(chǔ)
$pc["app"]=function($c){ $app=new stdClass(); $app->app_id=$c["app_id"]; return $app; }; $app_one=$pc["app"]; $app_two=$pc["app"]; var_dump($app_one === $app_two);// true非單例存儲(chǔ)
$pc["api"] = $pc->factory(function ($c) { $api=new stdClass(); $api->app_id=$c["app_id"]; return $api; }); $api_one=$pc["api"]; $api_two=$pc["api"]; var_dump($api_two === $api_two);// false存儲(chǔ)匿名函數(shù)
$pc["random_func"]=$pc->protect(function () { return rand(); });獲取匿名函數(shù)
$random=$pc->raw("random_func"); var_dump($random());服務(wù)提供者
class UcProvider implements PimpleServiceProviderInterface { public function register(PimpleContainer $c) { $uc_id=6; $c["uc_config"]=["uc_id"=>$uc_id]; $c["uc_class"]=function ($c) use ($uc_id){ $uc=new stdClass(); $uc->id=$uc_id; return $uc; }; } } $pc->register(new UcProvider()); var_dump($pc["uc_config"]); var_dump($pc["uc_class"]);文檔
官網(wǎng)文檔 : http://pimple.sensiolabs.org/
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/21812.html
摘要:服務(wù)通過匿名函數(shù)定義,返回一個(gè)對(duì)象的實(shí)例定義一些服務(wù)請(qǐng)注意,匿名函數(shù)可以訪問當(dāng)前容器實(shí)例,從而允許引用其他服務(wù)或參數(shù)。如果要為所有調(diào)用返回不同的實(shí)例,請(qǐng)使用方法包裝你的匿名函數(shù)。 鏈接 官網(wǎng) WebSite GitHub - Pimple 這是 Pimple 3.x 的文檔。如果你正在使用 Pimple 1.x ,請(qǐng)查看 Pimple 1.x 文檔。閱讀 Pimple 1.x ...
摘要:現(xiàn)在我們就可以在構(gòu)造函數(shù)或者任何其他通過服務(wù)容器注入依賴項(xiàng)的地方使用類型提示注入接口創(chuàng)建一個(gè)新的類實(shí)例,此處將注入的實(shí)例。自動(dòng)解析構(gòu)造函數(shù)所需的依賴的服務(wù)容器實(shí)現(xiàn)了接口。 簡(jiǎn)單的服務(wù)容器 一個(gè)簡(jiǎn)單的 php 5.3 依賴注入容器。 項(xiàng)目地址:https://github.com/godruoyi/easy-container Why 目前比較流行的 PHP 容器: Pimple La...
摘要:已經(jīng)有了非常好的的相關(guān)解析,建議先看下一個(gè)簡(jiǎn)單的依賴注入容器讀源碼筆記上讀源碼筆記下這里通過例子補(bǔ)充下核心方法的說明相關(guān)的類型服務(wù)類似單例工廠服務(wù)多個(gè)實(shí)例參數(shù)僅僅是保存一些變量保護(hù)參數(shù)匿名函數(shù)都會(huì)被認(rèn)為服務(wù),但是如果僅僅是想作為一個(gè) 已經(jīng)有了非常好的Pimple的相關(guān)解析,建議先看下:Pimple - 一個(gè)簡(jiǎn)單的 PHP 依賴注入容器讀 PHP - Pimple 源碼筆記(上)讀 PH...
摘要:服務(wù)容器接口是的簡(jiǎn)寫,由組織制定的規(guī)范,是開發(fā)的實(shí)踐標(biāo)準(zhǔn)。實(shí)現(xiàn)的容器類源碼很簡(jiǎn)單,主要是傳入變量,然后設(shè)置這個(gè)兩個(gè)方法。原創(chuàng)文章,歡迎轉(zhuǎn)載。原文鏈接地址作者發(fā)表日期 接著上篇 還有一些內(nèi)容沒有寫,上篇已經(jīng)把關(guān)于 Pimple 最主要的代碼分析了一下,這篇主要是關(guān)于 PSR-11 兼容性的分析。 PSR-11 服務(wù)容器接口 PSR PSR 是 PHP Standard Recommend...
摘要:實(shí)際上,閉包和匿名函數(shù)是偽裝成函數(shù)的對(duì)象。容器流程淺析是社區(qū)中比較流行的容器。服務(wù)提供者服務(wù)提供者是連接容器與具體功能實(shí)現(xiàn)類的橋梁。服務(wù)提供者需要實(shí)現(xiàn)接口所有服務(wù)提供者必須實(shí)現(xiàn)接口方法。但已經(jīng)完成了服務(wù)提供者的注冊(cè)工作。 需要具備的知識(shí)點(diǎn) 閉包 閉包和匿名函數(shù)在PHP5.3.0中引入的。 閉包是指:創(chuàng)建時(shí)封裝周圍狀態(tài)的函數(shù)。即使閉包所處的環(huán)境不存在了,閉包中封裝的狀態(tài)依然存在。 理論上...
閱讀 1261·2021-09-04 16:41
閱讀 2423·2021-09-02 10:18
閱讀 927·2019-08-29 16:40
閱讀 2623·2019-08-29 16:14
閱讀 914·2019-08-26 13:41
閱讀 1308·2019-08-26 12:24
閱讀 739·2019-08-26 10:24
閱讀 2879·2019-08-23 17:54