PHP4에 대한 종속성 주입 프레임 워크가 있습니까?
-
02-07-2019 - |
문제
PHP 4 서버에 갇혀 있었고 의존성 주입을 포함하여 오래된 레거시 프로젝트를 현대적인 디자인 패턴으로 옮기기 시작합니다. PHP 4와 함께 작동하는 종속성 주입 프레임 워크가 있습니까?
해결책
나는 찾았다 이것 (드립), 그러나 몇 년 안에 업데이트되지 않은 것 같습니다.
다른 팁
대부분의 종속성 주입 프레임 워크는 반사를 사용하여 종속성을 결정합니다. PHP4에는 유형이 없으므로 실제로는 할 수 없습니다. 구성 파일을 사용하여 실험이 이루어졌습니다. 때로는 코드의 주석에 포함 된 경우 (종종 주석이라고 함) 실험이 이루어졌습니다. 이것이 작동하는 동안, 나는 약간 어리석은 것을 발견했습니다. 제 생각에는 정적으로 입력 된 솔루션을 적용하는 것보다 PHP의 역동적 인 특성을 유리하게 사용하는 것이 좋습니다. 수제 공장으로 먼 길을 갈 수 있습니다. 예를 들어 참조하십시오 이 게시물은 방법에 대한 게시물입니다.
의존성 주입 프레임 워크가 객체 지향 프로그램이 구성되는 방식으로 인해 PHP에서 실제로 작동한다고 생각하지 않습니다. 우선, 바이너리가 이미있는 C# 또는 Java와는 다릅니다. PHP는 클래스 파일을로드하고 사용하기 전에 해석해야합니다. 따라서 PHP와의 깊은 상속 계층이 있다면 좋은 생각이라고 생각하지 않습니다.
PHP가 스크립팅 언어라는 점을 감안할 때 스크립팅 언어 인 그대로 활용하는 것이 가장 좋습니다. 즉, 간단한 공장이나 빌더 방법을 사용하여 의존성 주입과 유사한 일을 할 것입니다. PHP 런타임이 모든 웹 요청에 대해 처리 해야하는 것들에만 추가되는 DI 프레임 워크로 부담을주지 않을 것입니다 (Opcode Caching을 수행하지 않는 한, Java의 웹 플랫폼에서 발생하지 않는 오버 헤드가 여전히 남아 있습니다. 그물). 개체에 주입 될 객체를 객체에 변경 해야하는 방식 또는 생성 방식을 변경 해야하는 경우 공장/빌더 메소드가 포함 된 스크립트를 편집하는 것이 간단한 작업입니다. 어쨌든 거기에 다시 컴파일 할 필요가 없습니다. 그래서 저는 유연성이 있고 PHP 방식에 적합한 가벼운 아키텍처가 있습니다.