이 글에서는 주로 리플렉션 메커니즘을 기반으로 PHP에서 자동 종속성 주입을 수행하는 방법을 소개합니다. PHP에서 자동 종속성 주입을 구현하기 위해 리플렉션을 사용하는 단계, 원리 및 관련 작동 기술을 예제 형식으로 분석합니다.
다시 의존성 주입을 제어 역전이라고 하는데, 프레임워크를 사용해 본 사람이라면 누구나 익숙할 것입니다. 많은 사람들이 이름을 보고 매우 고급스러운 제품이라고 생각하고 겁을 먹습니다. 오늘은 시간을 내어 조사를 하고 그 미스터리를 풀어봤습니다. 더 이상 고민하지 않고 바로 코드로 넘어가겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
|
위 코드는 PHP의 리플렉션 함수를 사용하여 컨테이너 클래스를 만들고 이 클래스를 사용하여 다른 클래스의 종속성 주입 기능을 구현합니다. 위의 의존성 주입은 생성자의 의존성 주입과 메소드의 의존성 주입 두 가지로 나누어진다. 테스트를 위해 다음 세 가지 클래스를 사용합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
|
생성자의 테스트 종속성 주입
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
테스트 메서드 종속성 주입
1 2 3 4 |
|
위의 두 예에서 우리는 객체를 생성하거나 메소드를 호출할 때 클래스 또는 이 메서드는 해당 클래스에 따라 달라집니다. 리플렉션 메커니즘을 사용하면 필요한 클래스를 쉽게 자동으로 주입할 수 있습니다.
요약
알겠습니다. 위 코드가 매우 간단하다고 생각하시나요? 사실, PHP의 리플렉션 메커니즘만 알면 종속성 주입은 구현하기 어렵지 않습니다. 위 코드는 이해를 돕기 위해 간단하게 작성되었습니다. 실제로는 프로젝트에서 그렇게 간단하지 않을 것입니다. 예를 들어, 인스턴스화된 클래스는 다음에 클래스 인스턴스가 필요할 때 캐시됩니다. 재초기화 등의 작업 없이 직접 사용하세요. 하지만 일단 원칙을 이해하면 프로젝트의 필요에 따라 나머지 부분을 개선할 수 있다고 믿습니다.
관련 읽기:
위 내용은 PHP가 리플렉션 메커니즘을 기반으로 자동 종속성 주입을 구현하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!