PHP 응용 프로그램의 순환 종속성 문제가 발생합니다. 이것이 틀린 지 알려주세요. 상황은 다음과 같습니다.PHP 응용 프로그램의 순환 종속성 문제가 발생할 수 있습니다.
두 개의 클래스, LogManager 및 DBSession.
DBSession은 데이터베이스와 상호 작용하는 데 사용되고 LogManager는 파일에 기록하는 데 사용됩니다. 둘 다 내 응용 프로그램에서 널리 사용됩니다. DBSession의 인스턴스를 만들 때 생성자 매개 변수를 통해 LogManager의 인스턴스를 제공해야합니다. 이것은 DBSession이 때때로 정보를 파일에 기록하기 때문에 LogManager 인스턴스를 사용하여이를 수행합니다.
이제 LogManager를 확장하여 텍스트 파일이 아닌 데이터베이스 테이블에도 기록 할 수있게하려고했습니다. 당연히, 나의 선호는 기존 수업을 재사용하는 것이지만, 나는 곧 이것이 흥미로운 상황을 가져 왔다는 것을 깨달았다.
DBSession에는 이미 생성을 위해 LogManager 인스턴스가 필요합니다. LogManager에서 DBSession 클래스를 다시 사용하려면 DBSession 인스턴스가 필요합니다. 어떻게하면 두 가지 요구를 모두 충족시킬 수 있습니까? 분명히, 나의 접근 방식에 뭔가 틀린 것이 틀림 없다.
어떻게 해결하겠습니까?
미리 감사드립니다.
$ logManager = new LogManager(); $ dbSession = 새 DbSession ($ logManager); $ logManager-> add (새 FileLog ($ 파일 이름)); $ logManager-> add (새 DBLog ($ dbSession)); – micahwittman
클래스 이름에 일관성이 없습니다. –
@Owen : 편집 해 주셔서 감사합니다! –