Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PDO
o13k
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 7.06.2005

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


Obiekt do obslugi bazy powinien byc singletonem. Czy klasa PDO jest oparta o ten wzorzec?
Go to the top of the page
+Quote Post
NuLL
post
Post #2





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Cytat
Obiekt do obslugi bazy powinien byc singletonem.

A kto ci to powiedział questionmark.gif

PDO nie jest singletonem.

php -> PHP5

Ten post edytował NuLL 12.01.2006, 23:49:54


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
o13k
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 7.06.2005

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


Tzn. powinien (dobrze by bylo), nie musi.
Przegladam kod wygenerowany przez phpobjectgenerator, ktory tworzy klase w ktorej kazda metoda tworzy nowy obiekt PDO. Przeciez jaki to ma sens?
Jeden obiekt moze zawierac kilka polaczen do bazy. Tak ma to wygladac? Czy to narzedzie jest kiepskie?

Ten post edytował o13k 30.01.2006, 23:12:53
Go to the top of the page
+Quote Post
Ociu
post
Post #4





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Wyglądać to może tak:
  1. <?php
  2. $db = singletonPDO::instance('mysql:host=localhost;dbname=baza_kurde', 'root', '');
  3.  
  4. $jakas_klasa = new jakas_klasa($db);
  5. $jakas_klasa2 = new jakas_klasa2($db);
  6.  
  7. class singletonPDO extends PDO {
  8. private static $instance = null;
  9. public function getInstance($arg) {
  10. if(self::$instance == null) {
  11. self::$instance = new PDO($arg); # mozna jeszcze chyba parent uzyc, ale wolalem uzyc.
  12. }
  13.  
  14. return self::$instance;
  15. }
  16.  
  17. public function query($sql, $fetch_mode) {/* kod funckji */}
  18. }
  19. ?>


pozdrawiam

Ten post edytował Ociu 13.01.2006, 15:07:32
Go to the top of the page
+Quote Post
o13k
post
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 7.06.2005

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


A no to jest dobre rozwiazanie. O tym nie pomyslalem, zeby wlasna klase napisac dziedziczaca po PDO
  1. <?php
  2.  
  3. self::$instance = new PDO($arg); # mozna jeszcze chyba parent uzyc, ale wolalem uzyc.
  4. }
  5. ?>


tutaj mam pytanie. Czy singleton nie ma zwracac instancji wlasnej klasy? I jak tak to w takim razie mozna zrobic to tak?
  1. <?php
  2.  
  3. self::$instance = parent::__construct($arg);
  4.  
  5. ?>


Ten post edytował o13k 30.01.2006, 23:16:26
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: 21.08.2025 - 15:21