내 Zend_Db_Table
모델 인스턴스화 할 때 자신이 수행 한 작업 '캐시'내 코드에서이 일을 발견 :젠드 프레임 워크 - 데이터베이스 테이블 싱글
if (Zend_Registry::isRegistered('x_table')) {
$x_table = Zend_Registry::get('x_table');
} else {
$x_table = new Default_Model_DbTable_X;
Zend_Registry::set('x_table', $x_table);
}
그것은 나를 귀찮게이 방법은 매우 DRY 아니라고과 그것은 나에게 오늘 싱글 톤 패턴이 더 나은 방법 일 것이라고 밝혀졌다. 문제는, 싱글 톤 클래스를 작성한 적이 없다는 것입니다. 내가 웹 검색을했을 때, Zend_Db_Table
싱글 톤에 대한 약간의 논평을 발견했지만 실제 예는 없습니다.
이미 메타 데이터 캐싱이 구성되어 있습니다.
Zend_Db_Table
모델을 싱글 톤으로 만들려면 어떻게해야합니까?- 함정이나 단점이 있습니까?
편집 : 싱글 생각에 대한 나의 이유는 대답은 내가 단순히 내 코드 $x_table = new Default_Model_DbTable_X;
에서 다음 통화를 할 수 있으며이 존재한다면 하나의 인스턴스가 반환 될 것이라고 생각한다는 것입니다이었다. 이것이 가능하다면 나는 그 해결책을 선호 할 것이다.
동일한 요청에서 같은 테이블의 인스턴스를 여러 개 인스턴스화해야하는 코드에서 수행중인 작업은 무엇입니까? – Gordon
* (참조) * http://sourcemaking.com/design_patterns/singleton – Gordon
CMS를 작성 중이며 테이블에 내용이 들어 있습니다. 콘텐츠 블록은 페이지에 넣을 수 있으며 페이지에는 동일한 유형의 블록이 두 개 이상있을 수 있습니다. 참조 주셔서 감사합니다! – Sonny