2008-10-30 8 views
1

나는 MySQL 데이터베이스에 세션 정보를 저장해야하는 세션 클래스를 가지고있다. 분명히이 클래스의 메서드에서 데이터베이스를 쿼리해야합니다. 일반적으로 하나 이상의 데이터베이스를 동시에 연결해야 할 수도 있으며 이미 해당 데이터베이스에 연결되어 있거나 연결되어 있지 않을 수 있습니다.PHP에서 클래스 내부의 데이터베이스에 액세스하는 가장 좋은 방법은 무엇입니까?

그렇다면 세션 클래스 또는 해당 클래스의 데이터베이스에 액세스하는 가장 좋은 방법은 무엇입니까? 연결을 관리하는 클래스를 만드는 것이 합리적일까요?

답변

3

나는 데이터베이스에 액세스 할 때 그것에 대해 모범 사례를 이야기 무엇보다도,이 프리젠 테이션을 체크 아웃 좋을 걸 :

http://laurat.blogs.com/talks/best_practices.pdf

+0

좋은 링크, 고마워. –

+0

링크가 끊어졌습니다. –

1

데이터베이스 연결이 때 당신이 안전하게 사용할 수 있습니다 곳의 대표적인 예이다를 싱글 톤 패턴; 그러나 세션 객체가 전역 객체가되고 데이터베이스 연결을 작성하는 데 필요한 유일한 장소라는 것을 알고 있다면 세션 클래스의 인스턴스 멤버로 db 연결을 안전하게 저장할 수 있습니다.

+0

네, 모든 DB 작업에 싱글 톤 데이터베이스 클래스를 사용합니다. –

1

예, DBAL을 사용합니다. 직접 작성하거나 PDO과 같은 기존 솔루션을 사용할 수 있습니다. 기존 솔루션을 사용하는 경우에도 singleton pattern을 사용하는 래퍼 클래스를 작성하여 단일 연결을 코드의 모든 부분과 공유 할 수 있습니다.

+0

데이터베이스 A와 데이터베이스 B에 동시에 연결해야한다면 어떨까요? 그게 싱글 톤 공장일까요? 아니면 싱글 톤 주위에 다른 래퍼가 필요합니까? –

+0

싱글 톤을 확장하는 두 개의 클래스를 작성하고 DB 자격 증명 만 변경합니다. 싱글 톤은 본질적으로 글로벌을 만들기 때문에 중요합니다. 따라서 각 DB에 한 번만 연결하면됩니다. –

관련 문제