Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> obiekty, obiekt w obiekcie:)
tsharek
post
Post #1





Grupa: Zarejestrowani
Postów: 300
Pomógł: 1
Dołączył: 22.09.2003
Skąd: Czeladź

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


Witam wszystkich,

Chcę zrobić sobie uniwersalną klasę do obsługi bazy danych, a z tego powodu że jestem leniwy ((IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) to chciałbym skorzystać z wcześniej napisanych przeze mnie klas do obsług postgresa i mysqla. I tutaj zaczyna się problem. Jak zrobić tak że w konstruktorze inicjuje inną bazę danych (np. postgres) i wszystkie metody z tej klasy przechodzą na tą główną klasę. Do tej pory korzystałem z statycznej metody (chyba tak to się zwie).
Czyli coś takiego:
  1. <?php
  2.   class db
  3.   {
  4.     protected function __construct() {} 
  5.  
  6.     public function dbnew($jakabaza)
  7.     {
  8.       if($jakabaza='pgsql')  return new pgsql_driver;
  9.       if($jakabaza='mysql')  return new mysql_driver;
  10.     }
  11.   }
  12. ?>

czyli aby stworzyć nowy obiekt robiłem coś takiego:
  1. <?php
  2.   $db=db::dbnew('pgsql');
  3. ?>


a to mi się jakoś tak nieładne wydaje. Wolałbym to jednak umieścić w konstruktorze, ale nie wiem za bardzo jak:P

Z góry dzięki za pomoc

Ten post edytował tsharek 14.09.2005, 12:59:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Konstruktor 'db' nie moze zwrocic ci obiektu jakiejs innej klasy (nie bedacej w jego hiearchi), moze zwrocic tylko obiekt swojej klasy lub klas pochodnych.
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: 2.10.2025 - 23:54