Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przekazywanie połączenia z baza
Jen
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 25.02.2006

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


Witam.
Mam nadzieje, ze wybralam dobry dzial, bo chyba do Pro post sie nie nadaje. Wyczytalam dzis na forum, ze glupota jest utworzenie w skrypcie kilka razy identycznego polaczenia do bazy danych - tzn podczas jednego przeladowania strony tworzonych jest kilka identycznych polaczen. W takim razie gdzie moge "trzymac" to polaczenie zeby bylo dostepne z kazdego miejsca? Zmienne globalne raczej nie wchodza w gre. Chodzi mi o rozwiazanie jak najbardziej obiektowe. Np. mam klase:

  1. <?php
  2. class Polaczenie()
  3. {
  4.  var $linkDoBazy;
  5.  function __construct()
  6.  {
  7. $this->linkDoBazy = new mysqli('host','user','pass','baza');
  8.  }
  9. }
  10. ?>


i cudownie by bylo jakby mozna bylo sobie do tej klasy napisac jeszcze funcje statyczna:

  1. <?php
  2. static function udostepnij()
  3. {
  4.  return $linkDoBazy;
  5. }
  6. ?>

Ale jak wiadomo nic z tego:)
I o ile po utworzeniu nowego obiektu Polaczenie:
  1. <?php
  2. $pol = new Polaczenie();
  3. ?>

poza klasami moge korzystac z $pol->linkDoBazy to juz inne klasy tego polaczenia widziec nie beda i jezeli utworze sobie np. klase B, ktorej metody potrzebowaly beda dostepu do bazy to bede musiala utworzyc dla tej klasy osobne polaczenie z baza. Czy ktos moglby pomoc mi rozwiazac problem wielokrotnego tworzenia polaczenia? Obiektowo - bez funkcji "pozaklasowych".

Co prawda mozna to rozwiazac tak:
  1. <?php
  2. class B
  3. {
  4. static function zapytaj($pol)
  5. {
  6. $wynik = $pol->query("SELECT ...");
  7. // obrabianie wyniku
  8. }
  9. }
  10. ?>

i w wywolaniu metody zapytaj() jako argumentu uzyc $pol->linkDoBazy:
  1. <?php
  2. $a = B::zapytaj($pol->linkDoBazy);
  3. ?>

Ale czy to rozwiazanie jest do przyjecia? Czy takie sie praktykuje?
Pozdrawiam Forumowiczow:)

Ten post edytował Jen 15.09.2006, 20:01:58
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Astarot
post
Post #2





Grupa: Zarejestrowani
Postów: 90
Pomógł: 4
Dołączył: 5.02.2006

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


Proponuje zapoznanie się ze wzorcem Singleton
Go to the top of the page
+Quote Post
Jen
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 25.02.2006

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


Dzieki Astarot.
Go to the top of the page
+Quote Post

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: 23.08.2025 - 07:08