laravel 契约概念

人丑就要多读书,反正,其他什么事也与你无关。

 

laravel 什么是契约?

Laravel中的契约是指框架提供的一系列定义核心服务的接口,比如缓存,队列,日志的接口,契约就是接口。

实质就是面向接口编程,

 

为什么要定义接口?

定义接口的目的是为了解耦,定义契约,是为了一组功能实现的一个约定,方便第三方接口开发人员的开发。

 

例如,在申明一个接口的时候,如下申明

use Memcached;

class Repository {
    public $cache;

    public function __construct(Memcached $cache) {
        $this->cache = $cache;
    }
}

那么这个 接口类就只能适用于 Memcached 的使用了,如何想用其他的,比如redis之类的就不行

 

但是如果使用契约设计接口

use Illuminate\Contracts\Cache;

class Repository {
    public $cache;

    public function __construct(Cache $cache) {
        $this->cache = $cache;
    }
}

那么只要符合Cache类型的缓存类,是不是都可以进行运用,而不用改变什么代码

 

posted @ 2022-08-18 13:02  方达达  阅读(45)  评论(0编辑  收藏  举报