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
pbnan
post
Post #2





Grupa: Zarejestrowani
Postów: 174
Pomógł: 0
Dołączył: 27.03.2007
Skąd: Osiek almost City ;-D

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


  1. <?php
  2. $main_db_class = new ReflectionClass('MysqliApiDB');
  3. $main_db_instance = $main_db_class->getStaticPropertyValue('$INSTANCE'); //to chyba zadziala na singleton :)
  4. ?>

Ogólnie popatrz, popróbuj, może zrezygnuj z singletonu (byłoby łatwiej)?

>>edit: zaraz Ci przytoczę kawałek o wydajności Reflection w PHP z PHPSolutions (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Wait please...
>>>>A cholera, nie chce mi się szukać. Tak na szybko: spadek wydajności będzie niewielki, wiele frameworków korzysta z Reflection i nie jest to strasznie wolne.
Cytat
Zwłaszcza że przy tworzeniu każdego obiektu DB będzie używane reflection.

To twórz tych obiektów jak najmniej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Np. ja tworzę jeden dla wszystkich modeli wykorzystywanych w aplikacji (robię framework, trzeba się pochwalić czasem (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) ).

Ten post edytował pbnan 5.04.2007, 18:14:17
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: 3.10.2025 - 13:11