欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

創(chuàng)新互聯(lián)教你如何擴展Laravel常用方法

2023-12-03    分類: 網(wǎng)站建設(shè)

注冊服務(wù)

向容器中注冊服務(wù)

// 綁定服務(wù)
$container->bind('log', function(){
   return new Log();
});
// 綁定單例服務(wù)
$container->singleton('log', function(){
   return new Log();
});

擴展綁定

擴展已有服務(wù)

$container->extend('log', function(Log $log){
   return new RedisLog($log);
});

Manager

Manager實際上是一個工廠,它為服務(wù)提供了驅(qū)動管理功能。

Laravel中的很多組件都使用了Manager,如:Auth、Cache、LogNotification、Queue、Redis等等,每個組件都有一個xxxManager的管理器。我們可以通過這個管理器擴展服務(wù)。

比如,如果我們想讓Cache服務(wù)支持RedisCache驅(qū)動,那么我們可以給Cache服務(wù)擴展一個redis驅(qū)動:

Cache::extend('redis', function(){
   return new RedisCache();
});

這時候,Cache服務(wù)就支持redis這個驅(qū)動了?,F(xiàn)在,找到config/cache.php,把default選項的值改成redis。這時候我們再用Cache服務(wù)時,就會使用RedisCache驅(qū)動來使用緩存。

Macro和Mixin

有些情況下,我們需要給一個類動態(tài)增加幾個方法,Macro或者Mixin很好的解決了這個問題。

在Laravel底層,有一個名為MacroableTrait,凡是引入了Macroable的類,都支持MacroMixin的方式擴展,比如Request、Response、SessionGuard、View、Translator等等。

Macroable提供了兩個方法,macromixin,macro方法可以給類增加一個方法,mixin是把一個類中的方法混合到Macroable類中。

舉個例子,比如我們要給Request類增加兩個方法。

使用macro方法時:

Request::macro('getContentType', function(){
   // 函數(shù)內(nèi)的$this會指向Request對象
   return $this->headers->get('content-type');
});
Request::macro('hasField', function(){
    return !is_null($this->get($name));
});

$contentType = Request::getContentstType();
$haspassword = Request::hasField('password');

使用mixin方法時:

class MixinRequest{

   public function getContentType(){
       // 方法內(nèi)必須返回一個函數(shù)
       return function(){
           return $this->headers->get('content-type');
       };
   }

   public function hasField(){
       return function($name){
            return !is_null($this->get($name));
       };
   }
}

Request::mixin(new MixinRequest());

$contentType = Request::getContentType();
$haspassword = Request::hasField('password');

網(wǎng)頁標(biāo)題:創(chuàng)新互聯(lián)教你如何擴展Laravel常用方法
URL分享:http://aaarwkj.com/news19/298419.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、企業(yè)網(wǎng)站制作移動網(wǎng)站建設(shè)、品牌網(wǎng)站制作、品牌網(wǎng)站設(shè)計、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
av国语对白在线观看| 日韩精品熟女中文字幕| 中文字幕av在线有码| 蜜臀av一区二区高清| 国产日韩欧美 一区二区三区| 97久久久人妻精品一区 | 亚洲欧美激情专区在线| 99久久精品费精品国产风间由美 | 日本一级a级黄免视频| 亚洲福利一区二区三区| 国产九色av在线一区尤物| 精品久久久久久亚洲野狼| 校园春色亚洲欧美日韩| 日韩一区二区三区高清免费视频成人| 国产精品日本一区二区| 亚洲精品一区二区三区pp| 欧美日韩国产这里只有精品| 成人18禁h黄在线看免费| 国产欧美日韩国产欧美日| 欧美视频亚洲视频自拍视频| 亚洲免费观看视频一区二区三区 | 精彩国产av一区二区三区| 国产欧美日韩另类在线播放 | 禁区正片免费看完整国产| 91福利免费在线看| 中文字幕不卡在线观看不卡| 亚洲麻豆精品午夜免费| 熟女自拍偷拍视频播放| 白嫩少妇情久久密月久久| 一区二区三区四区蜜桃av| 97福利影院在线观看| 一本色道久久88综合日韩| 国产一区二区高清不卡| 女人裸体网站无遮挡午夜| 久久免费欧美日韩亚洲| 国产精品97久久97久久久久| 成年女人毛片免费观看不卡| 91深夜在线免费观看| 欧美日韩国产精品精品| 国产精品—色哟哟视频| 久久久精品国产亚洲av网黑人|