>  기사  >  백엔드 개발  >  laravel에서 종속성 주입 및 컨테이너의 개념을 이해하는 방법은 무엇입니까?

laravel에서 종속성 주입 및 컨테이너의 개념을 이해하는 방법은 무엇입니까?

WBOY
WBOY원래의
2016-09-23 11:31:061358검색

Laravel을 처음 배우는 초보자가 문서에 나오는 컨테이너와 종속성 주입을 이해하기 쉽게 설명해 주실 수 있나요? 실제 프로젝트에서는 어디에 사용해야 하나요?

답글 내용:

Laravel을 처음 배우는 초보자가 문서에 나오는 컨테이너와 종속성 주입을 이해하기 쉽게 설명해 주실 수 있나요? 실제 프로젝트에서는 어디에 사용해야 하나요?

이 글은 잘 쓰여졌습니다 http://laravelacademy.org/pos...

Service Container 클래스 A의 작업이 클래스 B와 C에 의존해야 하는 경우 전통적인 방법은 B와 C가 제공하는 서비스를 사용하기 전에 클래스 A 내부에서 새로운 B와 새로운 C를 수행하는 것입니다. A, B, C 심각한 결합. 그러나 Service Container을 사용하면 종속성 구성 프로세스를 컨테이너로 해결할 수 있으며 클래스 A는 Constructor 또는 Method Getter/Setter에 클래스 B와 C 또는 B와 C의 추상화(인터페이스)만 주입하면 됩니다. 종속성 주입과 메서드 종속성 주입(Dependency Injection)은 클래스 A를 B와 C에서 분리하는 것을 실현합니다. 예: B와 C의 인터페이스가 주입되면 언제든지 B와 C를 교체하여 D, E가 될 수 있습니다. D와 E는 해당 인터페이스만 구현하면 되므로 A는 B와 C와 느슨하게 결합됩니다.
Laravel에서 서비스 컨테이너에 서비스를 바인딩하는 방법에는 세 가지가 있습니다. bind(),singleton(),instance() 서비스를 구문 분석하는 방법은 make() 방법입니다. \Illuminate\Container\Container::getDependencies(),\Illuminate\Container\Container::call() 메서드는 생성자 종속성 또는 메서드 종속성을 해결하는 데 사용됩니다. 중요한 지식 포인트 중 하나는 PHP의 Reflection 기능을 사용하는 것입니다.
자세한 내용은 소스코드를 확인해주세요. 이것이 도움이 되기를 바랍니다.

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