Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> klasa komunikacji z bazą danych, niezależna od typu bazy DB -> MySQL or DB->else
starach
post
Post #1





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

Ostrzeżenie: (0%)
-----


Witam.
Mam kilka klas które komunikują się z różnymi typami baz danych.
Wszystkie klasy tworzone są na zasadzie singletonów.
Chciałbym napisać klasę nadrzędną DB która odpowiadała by za selekcję i użycie odpowiedniej klasy.
Przekazywałbym do konstruktora nazwę, powiedzmy MySQL wtedy klasa zwracała by obiekt klasy MySQL
jak to rozwiązać ? Chodzi tutaj o zapobiegnięciu edytowania wielu plików w razie rozrośnięcia się strony i zmiany bazy lub testów wydajnościowych na różnych bazach danych.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
UDAT
post
Post #2





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

Ostrzeżenie: (0%)
-----


Cytat(orglee @ 5.04.2007, 18:26:26 ) *
Przekazywałbym do konstruktora nazwę, powiedzmy MySQL wtedy klasa zwracała by obiekt klasy MySQL
jak to rozwiązać ? Chodzi tutaj o zapobiegnięciu edytowania wielu plików w razie rozrośnięcia się strony i zmiany bazy lub testów wydajnościowych na różnych bazach danych.

Jeśli ci o to chodzi to możesz
a) stworzyć sobię metodę i wbić do niej na sztywno klasę obsługi konkretnego dialektu/rodzaju bazy danych
  1. <?php
  2. class DB {
  3. static public factory ( ) {
  4.  return new MySQL ( );
  5. }
  6. }
  7. ?>

b ) stworzyć klasę, która pośredniczyłaby w przekazywaniu połączenia do bazy
  1. <?php
  2. class DB {
  3.  static private $db;
  4.  
  5. static public register ( IDbConnection $db ) {
  6.  self:$db = $db;
  7. }
  8.  
  9. static public factory ( ) {
  10.  return self:$db;
  11. }  
  12. }
  13. ?>

Gdzie IDbConnection to interfejs klasy obsługującej połączenie do DB.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 14:28