Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PHP OOP i Bazy danych
pitos
post 1.06.2007, 10:49:03
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 1.06.2007

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


Witam mam taki problem pisze sobie frameworka i mam maly problem, uzywam PDO i Singleton jednak gdy mam druga klase to trzeba jakos przekazac instacje polaczenia bazy danych jak wy to przekazujecie czy w konstruktorze nowej klasy robicie cos takiego:
  1. <?php
  2. public static function connect($dsn,$username,$password){
  3. self::$instance = new PDO($dsn, $username, $password);
  4. return self::$instance;
  5.  
  6. }
  7. public static function getInstance(){
  8. if(!self::$instance){
  9. throw new Exception('Istance for Singleton has no set',3);
  10. }else{
  11. return self::$instance;
  12. }
  13. }
  14. ?>

Czy moze nowa klasa dziedziczy po klasie w ktorej nastapi polaczenie questionmark.gif
Go to the top of the page
+Quote Post
revyag
post 1.06.2007, 11:00:36
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


hę ?
Kiedy utworzysz już połączenie, gdzieś na początku skryptu to nie musisz już go przekazywać. Zakładając oczywiście że wszystko masz poprawnie załadowane.
Do klasy możesz przekazać obiekt bazy danych, albo odwoływać się statycznie.

np.

  1. <?php
  2. .....
  3. $oDb = new DB();
  4. $sValue = $oDB->GetValue($sQuery);
  5. //albo
  6. $sValue = DB::GetValue($sQuery);
  7. ?>


--------------------
-------------

------
Go to the top of the page
+Quote Post
thornag
post 1.06.2007, 15:05:00
Post #3





Grupa: Zarejestrowani
Postów: 504
Pomógł: 2
Dołączył: 31.03.2006
Skąd: Londyn

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


Ja bym to zrobil tak, ze trzymalbym w configu info do bazy danych, a pozniej:

  1. <?php
  2. class DB {
  3. public static function getInstance(){
  4.  
  5. if(!self::$instance instanceof PDO){
  6. self::$instance = new PDO($aConfig['dsn'], $aConfig['username'], $aConfig['$password']);
  7. }
  8. return self::$instance;
  9. }
  10.  
  11.  
  12. }
  13. }
  14. ?>


Oczywiscie to tylko pseudokod bo ten konfig trzeba rozwiazac inaczej.

Ten post edytował thornag 1.06.2007, 15:05:18


--------------------
"Wizja czasu jest szeroka, lecz kiedy sie przez nia przechodzi, czas staje sie waskimi drzwiami"

Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 07:50