문제

PHP 4 서버에 갇혀 있었고 의존성 주입을 포함하여 오래된 레거시 프로젝트를 현대적인 디자인 패턴으로 옮기기 시작합니다. PHP 4와 함께 작동하는 종속성 주입 프레임 워크가 있습니까?

도움이 되었습니까?

해결책

나는 찾았다 이것 (드립), 그러나 몇 년 안에 업데이트되지 않은 것 같습니다.

다른 팁

대부분의 종속성 주입 프레임 워크는 반사를 사용하여 종속성을 결정합니다. PHP4에는 유형이 없으므로 실제로는 할 수 없습니다. 구성 파일을 사용하여 실험이 이루어졌습니다. 때로는 코드의 주석에 포함 된 경우 (종종 주석이라고 함) 실험이 이루어졌습니다. 이것이 작동하는 동안, 나는 약간 어리석은 것을 발견했습니다. 제 생각에는 정적으로 입력 된 솔루션을 적용하는 것보다 PHP의 역동적 인 특성을 유리하게 사용하는 것이 좋습니다. 수제 공장으로 먼 길을 갈 수 있습니다. 예를 들어 참조하십시오 이 게시물은 방법에 대한 게시물입니다.

의존성 주입 프레임 워크가 객체 지향 프로그램이 구성되는 방식으로 인해 PHP에서 실제로 작동한다고 생각하지 않습니다. 우선, 바이너리가 이미있는 C# 또는 Java와는 다릅니다. PHP는 클래스 파일을로드하고 사용하기 전에 해석해야합니다. 따라서 PHP와의 깊은 상속 계층이 있다면 좋은 생각이라고 생각하지 않습니다.

PHP가 스크립팅 언어라는 점을 감안할 때 스크립팅 언어 인 그대로 활용하는 것이 가장 좋습니다. 즉, 간단한 공장이나 빌더 방법을 사용하여 의존성 주입과 유사한 일을 할 것입니다. PHP 런타임이 모든 웹 요청에 대해 처리 해야하는 것들에만 추가되는 DI 프레임 워크로 부담을주지 않을 것입니다 (Opcode Caching을 수행하지 않는 한, Java의 웹 플랫폼에서 발생하지 않는 오버 헤드가 여전히 남아 있습니다. 그물). 개체에 주입 될 객체를 객체에 변경 해야하는 방식 또는 생성 방식을 변경 해야하는 경우 공장/빌더 메소드가 포함 된 스크립트를 편집하는 것이 간단한 작업입니다. 어쨌든 거기에 다시 컴파일 할 필요가 없습니다. 그래서 저는 유연성이 있고 PHP 방식에 적합한 가벼운 아키텍처가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top