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类型的缓存类,是不是都可以进行运用,而不用改变什么代码