>PHP 프레임워크 >Laravel >Laravel 계약의 사용법은 무엇입니까

Laravel 계약의 사용법은 무엇입니까

WBOY
WBOY원래의
2022-02-24 15:06:152459검색

laravel에서 계약은 타사 인터페이스 개발자의 개발을 용이하게 하기 위해 프레임워크에서 제공하는 핵심 서비스를 정의하는 일련의 인터페이스를 의미합니다. 모든 계약의 구현은 프레임워크의 모든 핵심 작업을 구성하며 사양을 이해할 수 있습니다. 계약 기능을 통해

Laravel 계약의 사용법은 무엇입니까

이 기사의 운영 환경: Windows 10 시스템, Laravel 버전 6, Dell G3 컴퓨터.

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로 업그레이드), 코드 베이스는 수정할 수 없으며 구성만 수정하면 됩니다. 수정만으로 업그레이드가 완료될 수 있는 경우에는 느슨하게 결합됩니다!

하나의 계약에는 두 개 이상의 구현이 있습니다

개인적으로는 계약이 확정되었으므로 해당 구현은 두 개 이상의 구현이어야 합니다. 아니면 가까운 시일 내에 두 개 이상의 구현이 있을 예정이므로 계약서에 너무 많은 내용이 명시되어 있습니다. 구현. 구현이 하나만 있으면 계약이 쓸모없는 것처럼 느껴집니다!

요약

정의 계약은 제3자 인터페이스 개발자의 개발을 촉진하기 위한 일련의 기능 구현에 대한 계약입니다.계약은 프레임워크의 디렉토리 색인과 비슷하며 모든 구현은 계약은 프레임워크 서비스의 핵심을 구성하며 계약을 통해 이 기능 세트가 수행하는 작업을 빠르게 이해할 수 있습니다

캐시 클래스의 경우 캐시 계약은 다양한 캐시 구현(Memcached, Memcached, Redis, 파일 캐시)

【관련 추천:

laravel 비디오 튜토리얼

위 내용은 Laravel 계약의 사용법은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.