>  기사  >  백엔드 개발  >  라라벨 용기의 사용과 관련하여 어떤 상황에서 사용하시나요?

라라벨 용기의 사용과 관련하여 어떤 상황에서 사용하시나요?

WBOY
WBOY원래의
2016-10-10 11:56:121484검색

저는 아직 라라벨 컨테이너에 대해 잘 이해하지 못합니다.
컨테이너에 호출할 수 있는 개체가 많다고 알고 있습니다.
신품 등 필요 없이 필요할 때 바로 사용 가능합니다.

이 기능을 모두가 사용하게 되는지 묻고 싶습니다.
프로젝트에서 이 기능을 일반적으로 어떻게 사용하시나요? 서비스 계층을 분리하고 각 서비스를 컨테이너에 넣어야 할까요?
컨트롤러를 호출하시겠습니까?
아니면 그냥 사용하지 않나요?

답글 내용:

저는 아직 라라벨 컨테이너에 대해 잘 이해하지 못합니다.
컨테이너에 호출할 수 있는 개체가 많다고 알고 있습니다.
신품 등 필요 없이 필요할 때 바로 사용 가능합니다.

이 기능을 모두가 사용하게 되는지 묻고 싶습니다.
프로젝트에서 이 기능을 일반적으로 어떻게 사용하시나요? 서비스 계층을 분리하고 각 서비스를 컨테이너에 넣어야 할까요?
컨트롤러를 호출하시겠습니까?
아니면 그냥 사용하지 않나요?

Laravel 컨테이너는 서비스가 배치되는 장소입니다. 이러한 서비스는 컨테이너에 하나씩 바인딩되는 인스턴스 개체 또는 클로저입니다. 바인딩(), 싱글톤() 및 인스턴스()가 있습니다. 컨테이너의 서비스 메소드: make(), 이들은 모두 IlluminateContainerContainer에 있고 IlluminateFoundationApplication은 컨테이너를 확장합니다.

컨테이너 작동 방식과 관련하여 컨트롤러에서 생성자 주입 또는 메소드 주입을 사용하면 컨테이너가 자동으로 다음과 같은 서비스를 구문 분석하므로 이미 컨테이너를 사용하고 있는 것입니다.

<code>class AccountController extends Controller
{
    // 这里是Method Injection,Container会自动解析出Request,而不需要去new Request获得对象
    // 从容器中解析服务是用的Container::make()方法
    public function test(Request $request) 
    {
        return $request->ip();
    }
}</code>

그래서 컨테이너 서비스는 항상 사용되어 왔습니다. 일반적으로 컨테이너는 서비스 구성이 분리되는 장소입니다. 전통적으로 필요한 서비스는 종속 개체 내에 구성되지만 이제는 필수 종속 항목이 컨테이너 내에 구성됩니다. 자동화되고 종속 객체에 자동으로 주입되어 디커플링이 달성됩니다.

컨테이너 및 애플리케이션의 소스 코드 분석은 다음을 참조하세요.
Laravel 연구 노트: 컨테이너 소스 코드 분석
Laravel 연구 노트: IoC 컨테이너 인스턴스화 소스 코드 분석

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