溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

laravel契約怎么使用

發布時間:2022-02-24 16:22:34 來源:億速云 閱讀:205 作者:iii 欄目:編程語言

這篇文章主要介紹“laravel契約怎么使用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“laravel契約怎么使用”文章能幫助大家解決問題。

在laravel中,契約指的是框架提供的一系列定義核心服務的接口,用于方便第三方接口開發人員的開發,所有契約的實現組成了框架所有的核心任務,并且可以通過契約了解指定功能的作用。

本文操作環境:Windows10系統、Laravel6版、Dell G3電腦。

laravel契約的用法是什么

契約是什么

Laravel中的契約是指框架提供的一系列定義核心服務的接口,比如緩存,隊列,日志的接口,契約就是接口

為什么要定義接口

定義接口目的為了解耦

當我們依賴注入緩存實例的時候laravel實現如下:

例如:我們選擇使用memcached 緩存驅動

use Illuminate\Contracts\Cache\Repository as Cache;
class Repository{
    /**
     * 創建一個新的Repository實例
     *
     * @param  Cache  $cache
     * @return void
     */
    public function __construct(Cache $cache)
    {
        $this->cache = $cache;
    }
}

不定義接口

如果不定義接口我們必須這樣寫

use Memcached;
class Repository{
    /**
     * 創建一個新的Repository實例
     *
     * @param  Cache  $cache
     * @return void
     */
    public function __construct(Memcached $cache)
    {
        $this->cache = $cache;
    }
}

這樣當我們需要切換緩存驅動為redis 的時候,我們必須去控制器中把依賴注入的類型約定修改成redis,因為redis 的實現,和Memcached 并不一定完全相同,這就說明Memcached緩存緊密耦合與laravel

什么才算是松耦合

什么才算松耦合,當系統升級,需要對一種實現進行修改(如從Memcached 需要升級到Redis)時,能夠不對代碼庫進行修改,只需要對配置進行修改就能完成升級的時候就算是松耦合了!

一個契約兩種,或者多種實現

個人感覺,契約既然定了,那么對應的實現應該是兩種,或者更多的實現,或者在不久的將來會有兩個或者更多的實現,契約就是來規定這么多實現的。如果肯定只有一種實現,感覺契約就沒啥用了!

關于“laravel契約怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女