Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z singletonem
Forum PHP.pl > Forum > PHP
fjellah
Chciałbym, za pomocą kodu
  1. <?php
  2. public static function getInstance ()
  3. {
  4. if (null === self::$_instance) {
  5.  self::$_instance = new self();
  6. }
  7.  
  8. return self::$_instance;
  9. }
  10. ?>
utowrzyć instację mojego sterownika do mysql-a. W związku z tym mam pytanie: czy mogę w tej funckji umieścić mysql_connect? Czy trzeba ją umieścić gdzie indziej? Pozdrawiam.
.radex
niee biggrin.gif

mysql_connect odpalasz tylko *raz*, a z takiego getInstance() korzysta się wiele razy.

  1. <?php
  2. class DB
  3. {
  4. public static $_instance;
  5. public function connect(...)
  6. {
  7. }
  8. public static function getInstance ()
  9. {
  10. if (null === self::$_instance) {
  11.  self::$_instance = new self();
  12. }
  13.  
  14. return self::$_instance;
  15. }
  16. }
  17. ?>
artega
Cytat
W związku z tym mam pytanie: czy mogę w tej funckji umieścić mysql_connect? Czy trzeba ją umieścić gdzie indziej?

Możesz co automatycznie nie oznacza, że powinieneś - to zależy od Twojej koncepcji.
Cytat
niee

mysql_connect odpalasz tylko *raz*, a z takiego getInstance() korzysta się wiele razy.

Równie dobrze mysql_connect można wywoływać wiele razy z identycznymi parametrami.
.radex
Cytat(artega @ 20.06.2008, 08:49:22 ) *
Równie dobrze mysql_connect można wywoływać wiele razy z identycznymi parametrami.


Ale to całkowicie bez sensu.
artega
Cytat
Ale to całkowicie bez sensu.

To Twój punkt widzenia i nie oznacza, że nie można winksmiley.jpg
Równie dobrze może to przedstawiać się w ten sposób
  1. <?php
  2. class DB
  3. {
  4. public static $_instance;
  5. private $connection = null;
  6.  
  7. public function connect(...)
  8. {
  9. if ($this->connection) return null;
  10.  
  11. $this->connection = mysql_connect(...);
  12. }
  13. public static function getInstance ()
  14. {
  15. if (null === self::$_instance) {
  16.  self::$_instance = new self();
  17.  // self::$_instance->connect(...);
  18. }
  19.  
  20. // self::$_instance->connect(...);
  21. return self::$_instance;
  22. }
  23. }
  24. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.