레지스트리 디자인 패턴이 PHP를위한 좋은 해결책입니까?레지스트리 디자인 패턴에 아무런 문제가 있습니까?
소셜 네트워크 사이트 (페이스 북, 마이 스페이스).
하나의 DB 연결을 만들고 DB 캐시와 세션 클래스를 처리 할 수있는 데이터베이스 클래스가 있다고 가정 해 봅시다. 캐시 클래스는 항목을 캐시하고 검색 할 수있게 해줍니다. 그래서 내 사이트의 모든 페이지에서 액세스 할 수 있어야하는 3 가지 기본 클래스입니다. 지난 1 시간 동안 레지스트리 패턴을 검토 한 결과, 아마도 완벽한 솔루션이라고 생각합니다. 내 데이터베이스, 세션 및 캐시 개체를 레지스트리 개체에 저장 한 다음 레지스트리 개체를 모든 페이지 또는 다른 모든 클래스에 삽입하고 데이터베이스, 세션 및 캐시에 액세스 할 수 있습니다.
싱글 톤 패턴을 사용하기 전에 모든 페이지 또는 다른 클래스의 내 모든 MAIN 클래스 3 개에 대해 내 싱글 톤 메서드를 호출해야했습니다.
그래서 저는 레지스트리 클래스를 사용하는 것에 대한 단점이 있습니까? 내가 볼 수있는 1은 어떤 수업이 어떤 다른 수업 등에 의존하는지 보는 것이 어려울 수도있는 것 같습니다. 다른 사람이 다음에 대한 좋은 해결책처럼 보이는 또 다른 게시물을 보았습니다. 여기에 사용자 레지스트리 클래스에 대한 또 다른 게시물이 있습니다. 여기에는 레지스트리에 설정이 저장되어 있으며 레지스트리 객체가 전달되는 다른 모든 클래스에서 액세스 할 수 있습니다. 나는 그 기능을 잘 활용할 것이라고 확신한다.
그래서 여기서 유일한 질문은 내가 누락되었거나 내가 열렬한 로또를 했나요?
UPDATE
또한 ... 나는 이런 식으로 뭔가를해야,
$this->session = $registry->getObject('session');
또는이 대신
$this->registry->session = $registry->getObject('session');
을에서 개체를 저장하는 레지스트리를 사용하는 경우 두 번째 방법은 아마도 쉽게 이해할 수있는 것처럼 보입니다. 그리고 그 물체는 어디서 왔는가?
좋은 조언, 나는 $ registry-> getSession();을 좋아한다. 방법 나는 그것을 역동적으로 만들고 등록 할 수있는 다른 방법이있다. – JasonDavis