Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Nedoumice oko konekcije na bazu i singleton patterna...

[es] :: PHP :: Nedoumice oko konekcije na bazu i singleton patterna...

[ Pregleda: 2205 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mika
NBG-ML

Član broj: 55
Poruke: 640
*.adsl.static.sezampro.yu.



+1 Profil

icon Nedoumice oko konekcije na bazu i singleton patterna...02.02.2007. u 11:03 - pre 209 meseci
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.
Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford
 
Odgovor na temu

bzero
dev null
europe

Član broj: 5907
Poruke: 371
*.dynamic.sbb.co.yu.

Jabber: bzero@elitesecurity.org
Sajt: www.google.com/search?q=b..


Profil

icon Re: Nedoumice oko konekcije na bazu i singleton patterna...02.02.2007. u 11:50 - pre 209 meseci
Code:

$this->_connection = mysql_connect("servername","username", "password");


Kada se koristi na ovaj nacin mysql_connect() funkcija pri prvom pozivu otvara konekciju na bazu i vraca resource, a pri svakom sledecem pozivu sa istim parametrima, ne otvara novi link, nego vraca prethodno otvoreni resource link. To radi na nivou samog php-a i u vecini slucajeva nemas potrebe da razmisljas o tome. Ukoliko zelis da se pri svakom pozivu otvara novi link (sto je opet u vecini normalnih slucajeva nepotrebno i/ili nepozeljno) mozes da kao cetvrti parametar mysql_connect() stavis true.
Never trust an operating system you don't have sources for.
 
Odgovor na temu

mika
NBG-ML

Član broj: 55
Poruke: 640
*.adsl.static.sezampro.yu.



+1 Profil

icon Re: Nedoumice oko konekcije na bazu i singleton patterna...02.02.2007. u 11:56 - pre 209 meseci
Dakle, upravo to me interesovalo. So, pre svakog C/R/U/D zahteva prema bazi (Create/Retreive/Update/Delete) ja odradim jedno:
$db = DB::getInstance();
... i ne razmišljam?

Varijanta o kojoj sam razmišljao bila je i korišćenje persistent konekcija, ali kad bolje razmislim... čemu to?


HVALA!
Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford
 
Odgovor na temu

[es] :: PHP :: Nedoumice oko konekcije na bazu i singleton patterna...

[ Pregleda: 2205 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.