빠른 시작 Symfony DI (종속성 주입) 자습서
무엇인가 종속성 주입 (DI)는?
종속성 주입은 소프트웨어 응용 프로그램 내에서 느슨하게 결합된 개체에 대해 허용하는 기법입니다. 개체가 내부적으로 밀접하게 결합된 시스템을 선도하는 인스턴스 될 또 다른의 기능에 액세스해야하는 경우 일반적으로. 종속성 주입을 구현함으로써 우리는 (- IOC 또한 때로는 제어 역전 함)를 사용하여 준비가 필요한 개체를 삽입. 다음 예제를보세요 :
<? PHP 수업 DecisionMaker { 공용 함수 makeDecision (배열 $ 매개 변수) { / /이 데이터베이스 어댑터를 필요 $ DP = 새로운 DecisionParameters (); $는 parameterScore = $ DP -> getScore ($ 변수); / * ... 좀 더 결정 논리 ... * / 수익 ($> 50 parameterScore); } }
코드의이 부분은 단단히 DecisionParameters 개체에 결합이라고합니다. 우리가 같은 것을했을 느슨하게 결합된 방식으로 위의을 고쳐 쓰고 ....
<? PHP 수업 DecisionMaker { 개인 $ _dp; 공개 기능 __construct ($ DP) { $이 -> _dp = $ DP; } 공용 함수 makeDecision (배열 $ 매개 변수) { $는 parameterScore = $이 -> _dp -> getScore ($ 변수); / * ... 좀 더 결정 논리 ... * / 수익 ($> 50 parameterScore); } }
우리가 때마다 개체가 우리가 또한 종속성의 인스턴스를 너무 이러한 통과해야 인스턴스 그러한 복잡성을 추가하는 느슨하게 결합된 코드의 이점을 얻는 반면. 예를 들어,이 :
$ 선택 = 새로운 DecisionMaker (); 에코 $ 선택 -> makeDecision (배열 ( '노력'=> '낮음', '리턴'=> '고급'));
지금됩니다 :
$ DP = 새로운 DecisionParameters (); $ 선택 = 새로운 DecisionMaker ($ DP); 에코 $ 선택 -> makeDecision (배열 ( '노력'=> '낮음', '리턴'=> '고급'));
이러한 상황은 클래스에 대한 의존성의 숫자가 증가로 더욱 슬픈건되고, 무엇을 자신이 의존성을 가지고 의존성면? 이것은 매우 신속하게 개체 관리 악몽이 될 수 있습니다! 의존성 주입 컨테이너 (또는 프레임 워크를) 입력 ...
독서 '빠른 시작 Symfony DI (종속성 주입) 튜토리얼'을 계속»
















































