摘要:容器方法輸出結(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
摘要:控制反轉(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》閱讀的翻譯和理解,當然也不是原汁原味...
摘要:服務(wù)容器在說容器之前,我們需要了解什么是容器。服務(wù)容器是一個用于管理類依賴和執(zhí)行依賴注入的強大工具。幾乎所有的服務(wù)容器綁定都是在服務(wù)提供者中完成,也就是在服務(wù)提供者中綁定。 服務(wù)容器 在說 Ioc 容器之前,我們需要了解什么是 Ioc 容器。 Laravel 服務(wù)容器是一個用于管理類依賴和執(zhí)行依賴注入的強大工具。 在理解這句話之前,我們需要先了解一下服務(wù)容器的來龍去脈: larave...
摘要:說明本文主要學習容器的實例化過程,主要包括等四個過程??聪碌脑创a如果是數(shù)組,抽取別名并且注冊到中,上文已經(jīng)討論實際上就是的。 說明:本文主要學習Laravel容器的實例化過程,主要包括Register Base Bindings, Register Base Service Providers , Register Core Container Aliases and Set the ...
摘要:哲學的一個重要組成部分就是容器,也可以稱為服務(wù)容器。那我們要怎么做呢請看下面的例子數(shù)據(jù)庫連接通過上面的代碼,如果我們想把改成,根本不需要去修改類構(gòu)造函數(shù)里的依賴?,F(xiàn)在我要講下容器里到底發(fā)生了什么。 showImg(https://segmentfault.com/img/remote/1460000018868909); IOC 容器是一個實現(xiàn)依賴注入的便利機制 - Taylor?Ot...
摘要:服務(wù)容器的綁定綁定歡迎關(guān)注我的博客綁定是服務(wù)容器最常用的綁定方式,在上一篇文章中我們討論過,的綁定有三種綁定自身綁定閉包綁定接口今天,我們這篇文章主要從源碼上講解服務(wù)容器是如何進行綁定的。將閉包函數(shù)和單例變量存入數(shù)組中,以備解析時使用。 服務(wù)容器的綁定 bind 綁定 歡迎關(guān)注我的博客:www.leoyang90.cn bind 綁定是服務(wù)容器最常用的綁定方式,在 上一篇文章中我們討論...
閱讀 1118·2021-10-09 09:43
閱讀 18475·2021-09-22 15:52
閱讀 1059·2019-08-30 15:44
閱讀 3050·2019-08-30 15:44
閱讀 3244·2019-08-26 14:07
閱讀 904·2019-08-26 13:55
閱讀 2566·2019-08-26 13:41
閱讀 3087·2019-08-26 13:29