Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Rozszerzanie klasy PDO - propozycja, Singleton, zrywanie połączenia
elnino.pl
post
Post #1





Grupa: Zarejestrowani
Postów: 125
Pomógł: 0
Dołączył: 17.06.2006

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


Co myślicie o poniższym kodzie:

  1. <?php
  2. class db extends PDO
  3. {
  4. public function singleton()
  5. {
  6. static $instance;
  7. if(!isset($instance))
  8. $instance = new db;
  9. return $instance;
  10. }
  11.  
  12. function __construct()
  13. {
  14. require_once('../config.php5');
  15. parent::__construct($dbd['type'] . ':host=' . $dbd['server'] . ';dbname=' . $dbd['db'], $dbd['user'], $dbd['pass']);
  16. parent::query("SET CHARACTER SET utf8"); 
  17. define('P', $dbd['prefix']);
  18. }
  19. }
  20. ?>


Niby wszystko działa tak jak chcę, ale w jaki sposób mam zabijać uchwyt do bazy? Czyste pdo niszczyłem poprzez $obiektPDO = null - A w tej chwili nie bardzo wiem jak to zrobić. Próbowałem wywołać destruktor PDO w destruktorze mojej klasy, ale okazało się, że PDO nie posiada destruktora. Nie chcę, żeby mi "zwisały" otwarte połączenia z bazą. Pamiętam, że przy standardowych połączeniach z bazą miałem z tym problem. Czasem zapominałem kończyć połączenia.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bigZbig
post
Post #2





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


Po pierwsze ta klasa nie jest Singletonem ponieważ mozna utworzyć wiecej niż jedną jej instancję.

Po drugie brak deklaracji wlasciwosci statycznych

Po trzecie gdyby to byl singleton to nie mialbys problemu ze "zwisającymi" otwartymi polaczeniami z baza bo byloby tylko jedno polaczenie.

Po czwarte - destrukcja $obiektDB = null; i po sprawie
Go to the top of the page
+Quote Post

Posty w temacie
- elnino.pl   Rozszerzanie klasy PDO - propozycja   19.07.2006, 16:14:11
- - bigZbig   Po pierwsze ta klasa nie jest Singletonem ponieważ...   21.07.2006, 09:36:56
- - elnino.pl   Nie jest singletonem, bo php odmawia oznaczenia ko...   21.07.2006, 09:40:22
- - bigZbig   A czytales temat Singleton i dziedziczenie?   21.07.2006, 09:45:10
- - elnino.pl   Czytałem. Z tego, co zrozumiałem w wersji 5.1.4 ni...   21.07.2006, 09:51:13
- - bigZbig   Czytaj do konca. Poza tym nie zmienia to faktu, ze...   21.07.2006, 09:55:30
- - elnino.pl   Chodzi Ci o wersję cvs? [PHP] pobierz, plaintext ...   21.07.2006, 11:33:01
|- - bigZbig   Cytat(elnino.pl @ 21.07.2006, 12:33 ) [PH...   21.07.2006, 12:23:18
- - NuLL   elnino - po co stosujesz zmienna statyczna metody ...   21.07.2006, 12:32:21
- - elnino.pl   Dzięki za pomoc. A jak w takim razie rozwiązać kwe...   21.07.2006, 12:53:12
- - bigZbig   O co Ci chodzi z tym destruktorem? Obiekt Twojej k...   21.07.2006, 13:00:09
- - elnino.pl   [PHP] pobierz, plaintext <?phpclass db extends ...   21.07.2006, 13:05:20
- - bigZbig   1. Konstruktor klasy db musi byc publiczny poniewa...   21.07.2006, 13:23:17
- - elnino.pl   Dzięki. Nadal jednak nie wiem co z tym zabici...   21.07.2006, 13:25:02
- - bigZbig   Zamiast Twojej klasy sprobuj tego (pisane z reki) ...   21.07.2006, 13:30:49
- - elnino.pl   Niestety to samo. A jeśli chodzi o niszczenie - k...   21.07.2006, 13:35:13
- - bigZbig   Zrobilem poprawki zapomnialem usunac extends PDO ...   21.07.2006, 13:35:51
- - elnino.pl   Dzięki, gra i buczy!   21.07.2006, 13:39:37


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: 4.10.2025 - 07:09