Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> singleton dynamicznie.. jak?
LBO
post
Post #1





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Mam problem.. wykorzystalem factory patern w klasie bedacym loaderem drivera wczesniej zdefiniowanej bazy danych. Problem powstal gdy zamiast nowej instancji drivera, chcialem wywolac Singleton
Podam w prostym przykładzie:
  1. <?php
  2.  
  3. class DatabaseLoader {
  4. public static function factory($type) {
  5. if (include_once 'drivers/'.$type.'.php') {
  6. $classname = 'Driver_'.$type;
  7. //tutaj jest blad parsera
  8. return {$classname}::singleton;
  9. } else {
  10. throw new Exception ('Driver not found');
  11. }
  12. }
  13. }
  14.  
  15. /*
  16.  *wczesniej w kodzie:
  17.  *
  18.  *$type = 'MySQL';
  19. */
  20. $database = DatabaseLoader::factory($type);
  21.  
  22. ?>

Czy da sie dynamicznie wywołać Singleton'a. Chcialbym uniknac wpisywania if'ów dla każego drivera bazy danych, bo mijaloby sie to z celem sad.gif

Ten post edytował LBO 7.01.2006, 01:18:01
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Mozesz takie cos: DatabaseLoader::factory($zmienna); chyba ze Cie nie zrozumialem o co chodzi.


--------------------
Go to the top of the page
+Quote Post
LBO
post
Post #3





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


nie zrozumiałeś.. tongue.gif chodzi mi o to jak mam dynamicznie odwołać się do statycznej metody.. (kurde, zabrzmialo to jakbym sobie sam odpowiedzial, ze nie mozna :/)

Ten post edytował LBO 7.01.2006, 01:19:45
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





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

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


np. eval()'em


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Termit_
post
Post #5





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 11.06.2005
Skąd: Gostyń

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


No właśnie,
  1. <?php
  2. if(class_exists($type)) {
  3. eval('return ' . $type . '::singleton');
  4. }
  5. ?>


--------------------
@nospor: trzymajcie się. Wszystko będzie dobrze!
Go to the top of the page
+Quote Post
LBO
post
Post #6





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


dzieki wielkie :*
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 Aktualny czas: 19.08.2025 - 07:32