찾다
백엔드 개발PHP 문제PHP 종속성 주입의 용도는 무엇입니까?

IoC(Inversion of Control)는 컴퓨터 코드 간의 결합을 줄이는 데 사용할 수 있는 객체 지향 프로그래밍의 설계 원칙입니다. 가장 일반적인 방법은 DI(종속성 주입)입니다.

PHP 종속성 주입의 용도는 무엇입니까?

구성을 통해 종속성 인터페이스 구현을 변경하는 것도 종속성 주입의 가장 기본이자 핵심 기능입니다#🎜 🎜 #

싱글톤, 스레드당 하나, 요청당 하나 등 종속 구현의 인스턴스 범위를 유연하게 제어합니다.

#🎜 🎜 #종속 매개변수, 종속 종속성 관리

코드가 더 간결해지고 로직이 더 명확해졌습니다

모의 테스트에 편리함

(추천 학습 : PHP 프로그래밍 입문부터 숙달까지 ) 일반적으로 애플리케이션에 있는 펑션 블록을 함수 블록, 클래스 간 종속성은 통합 프레임워크를 통해 중앙에서 관리됩니다.

종속성 주입의 간단한 예

#🎜 🎜#보세요. 다음 코드에서:

<?php
class Container {
 private $s=array();
 function __set($k, $c) { $this->s[$k]=$c; }
 function __get($k) { return $this->s[$k]($this); }
}
컨테이너 클래스를 사용하여 A와 B 간의 종속성을 어떻게 관리할 수 있나요? 코드로 이야기해 보겠습니다. #🎜 🎜#
<?php
class A
{
  private $container;
  public function __construct(Container $container)
  {
    $this->container = $container;
  }
  public function doSomeThing()
  {
    //do something which needs class B
    $b = $this->container->getB();
    //to do
  }
}
#🎜 🎜# 그런 다음 클래스 B를 컨테이너 클래스에 삽입합니다.
$c = new Container();
$c->setB(new B());

클래스 B가 전달될 때 즉시 인스턴스화되지 않도록 익명 함수를 전달할 수도 있습니다. 인스턴스화 작업은 다음과 같은 경우에만 완료됩니다. 실제로는 다음과 같이 호출됩니다.

$c = new Container();
$c->setB(function (){
  return new B();
});

위 내용은 PHP 종속성 주입의 용도는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구