[ mika @ 02.02.2007. 11:03 ] @
Pozdrav drugari. Imam jednu logičku nedoumicu oko konekcije na (mysql) bazu po modelu singleton patterna. Kod je sledeći: Code: class DB { private static $_singleton; private $_connection; private function __construct(){ $this->_connection = mysql_connect("servername","username", "password"); } public static function getInstance(){ if (is_null (self::$_singleton)) { self::$_singleton = new DB(); } return self::$_singleton; } } //main program $db = DB::getInstance(); Dakle, kao što se zna, singleton pattern onemogućava višestruko instanciranje, već (u ovom slučaju) uvek vraća jedan te isti resource link za bazu. Ako uzmemo u obzir sledeći scenario: web aplikacija sa stotinak aktivnih korisnika, koji u diskretnim vremenskim intervalima pretražuju bazu, upisuju u nju, i pregledaju tabele. Pitanje:Da li je dovoljno svim korisnicima dostaviti jedan: $db = DB::getInstance();...i ne razmišljati dalje o konekciji na bazu, ili je potrebno svakom korisniku dodeliti poseban resource link (tj. svakom korisniku instancirati novi objekat koji se konektuje na bazu)? Napominjem da bi se podaci o sesiji pojedinačnog korisnika čuvali standardnim PHP session mehanizmom. |