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

資訊專欄INFORMATION COLUMN

Laravel Ioc容器singleton和bind方法的區(qū)別

habren / 662人閱讀

摘要:容器方法輸出結(jié)果結(jié)論使用創(chuàng)建實例使用的是單例模式,每次返回同一個實例。以上代碼可以放在下,如運行。再看框架底層代碼發(fā)現(xiàn)方法其實也是調(diào)用方法,只是最后一個參數(shù)是,表示單例模式。

Laravel中使用Ioc容器的singleton方法和bind方法創(chuàng)建實例有什么區(qū)別呢?它們兩個都是返回一個類的實例,不同的是singleton是單例模式,而bind是每次返回一個新的實例,看下面的兩個例子。

1.Ioc容器bind方法

bind("tanteng");
 
$instance = $container->make("tanteng");
$instance->name = "tanteng";
 
$instance2 = $container->make("tanteng");
$instance2->name = "tuntun";
 
echo $instance->name." ".$instance2->name;

輸出的結(jié)果:

tanteng tuntun

結(jié)論:

通過bind方法創(chuàng)建實例不是單例模式,而是創(chuàng)建新的實例。

2.Ioc容器singleton方法

singleton("single");
$instance3 = $container->make("single");
$instance4 = $container->make("single");
 
$instance3->value = "aaaa";
$instance4->value = "bbbb";
 
echo $instance3->value." ".$instance4->value;

輸出結(jié)果:

bbbb bbbb

結(jié)論:

使用singleton創(chuàng)建實例使用的是單例模式,每次返回同一個實例。

以上代碼可以放在public下,如test.php運行。

再看框架底層代碼:

public function singleton($abstract, $concrete = null)
{
    $this->bind($abstract, $concrete, true);
}

發(fā)現(xiàn)singleton方法其實也是調(diào)用bind方法,只是最后一個參數(shù)是true,表示單例模式??蚣茉创a:Illuminate/Container/Container.php

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

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

相關(guān)文章

  • Laravel深入學習2 - 控制反轉(zhuǎn)容器

    摘要:控制反轉(zhuǎn)容器控制反轉(zhuǎn)使依賴注入變得更加便捷。有瑕疵控制反轉(zhuǎn)容器是實現(xiàn)的控制翻轉(zhuǎn)容器的一種替代方案。容器的獨立使用即使沒有使用框架,我們?nèi)匀豢梢栽陧椖恐惺褂冒惭b組件來使用的控制反轉(zhuǎn)容器。在沒有給定任何信息的情況下,容器是無法實例化相關(guān)依賴的。 聲明:本文并非博主原創(chuàng),而是來自對《Laravel 4 From Apprentice to Artisan》閱讀的翻譯和理解,當然也不是原汁原味...

    worldligang 評論0 收藏0
  • Laravel核心——Ioc服務(wù)容器

    摘要:服務(wù)容器在說容器之前,我們需要了解什么是容器。服務(wù)容器是一個用于管理類依賴和執(zhí)行依賴注入的強大工具。幾乎所有的服務(wù)容器綁定都是在服務(wù)提供者中完成,也就是在服務(wù)提供者中綁定。 服務(wù)容器 在說 Ioc 容器之前,我們需要了解什么是 Ioc 容器。 Laravel 服務(wù)容器是一個用于管理類依賴和執(zhí)行依賴注入的強大工具。 在理解這句話之前,我們需要先了解一下服務(wù)容器的來龍去脈: larave...

    arashicage 評論0 收藏0
  • Laravel學習筆記之IoC Container實例化源碼解析

    摘要:說明本文主要學習容器的實例化過程,主要包括等四個過程??聪碌脑创a如果是數(shù)組,抽取別名并且注冊到中,上文已經(jīng)討論實際上就是的。 說明:本文主要學習Laravel容器的實例化過程,主要包括Register Base Bindings, Register Base Service Providers , Register Core Container Aliases and Set the ...

    ningwang 評論0 收藏0
  • 為什么我們需要 Laravel IoC 容器

    摘要:哲學的一個重要組成部分就是容器,也可以稱為服務(wù)容器。那我們要怎么做呢請看下面的例子數(shù)據(jù)庫連接通過上面的代碼,如果我們想把改成,根本不需要去修改類構(gòu)造函數(shù)里的依賴?,F(xiàn)在我要講下容器里到底發(fā)生了什么。 showImg(https://segmentfault.com/img/remote/1460000018868909); IOC 容器是一個實現(xiàn)依賴注入的便利機制 - Taylor?Ot...

    xiaokai 評論0 收藏0
  • Laravel核心——Ioc服務(wù)容器源碼解析(服務(wù)器綁定)

    摘要:服務(wù)容器的綁定綁定歡迎關(guān)注我的博客綁定是服務(wù)容器最常用的綁定方式,在上一篇文章中我們討論過,的綁定有三種綁定自身綁定閉包綁定接口今天,我們這篇文章主要從源碼上講解服務(wù)容器是如何進行綁定的。將閉包函數(shù)和單例變量存入數(shù)組中,以備解析時使用。 服務(wù)容器的綁定 bind 綁定 歡迎關(guān)注我的博客:www.leoyang90.cn bind 綁定是服務(wù)容器最常用的綁定方式,在 上一篇文章中我們討論...

    imtianx 評論0 收藏0

發(fā)表評論

0條評論

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