Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> baza danych koncepcja obiektowa
collecter
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 22.10.2010

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


Poniewaz dopiero od niedawna mam stycznosc z objektowym projektowaniem w php, mam jedno pytanie ktore przysparza mie sporo trudnosci. Dotyczy ono polaczenia z baza danych i pozniejszego jego wykorzystywania. Zalozmy ze mamy kilka klas korzystajacych z bazy danych. Czy w waszych aplikacjach na poczatku pliku tworzycie polaczenie ( za pomoca funkcji mysql connect ) i dolaczacie ten plik do kazdej strony, a w waszych klasach zakladacie ze polaczenie zostalo juz wczesniej otwarte i uzywacie komend mysql query a na koncu strony zalozmy w pliku footer.php zamykacie polaczenie? Czy moze tworzycie klase mysql z komendami query itd. I kazda klasa korzysta z jej instancji i metod.

Chcac dac przyklad zeby to lepiej zobrazowac zalozmy ze mam klase User i metode setName. Czy w metodzie setName uzywacie bezposrednio komendy mysql update liczac ze polaczenie zostalo otwarte wczesniej (nie w tej klasie, a dolaczone w pliku do kazdej strony) czy moze w tej metodzie tworzycie instancje klasy MYSQL (stworzonej przeze mnie i np laczycie sie z baza w konstruktorze) i korzystacie z jej metod zeby wykonac operacje na bazie danych.

Mam nadzieje ze nie zagmatwalem tego za bardzo.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


1. Od połączenia z bazą danych w PHP masz PDO, a nie mysql_connect.
2. Stan globalny (funkcje mysql_*() na nim operują) jest nienaturalny dla programowania obiektowego. Za każdym razem, gdy zaczynasz korzystać z czegoś globalnego można śmiało powiedzieć, że na 99% masz coś zrypanego.
3. Google: oop dependency injection
Go to the top of the page
+Quote Post
pyro
post
Post #3





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Cytat(Crozin @ 20.04.2011, 22:25:23 ) *
1. Od połączenia z bazą danych w PHP masz PDO, a nie mysql_connect.


Nigdy nie widziałem wiarygodnego wpisu, który by mówił o tym, że to PDO jest zwierzchnikiem połączeń z MySQL. Równie dobrze można użyć MySQLi, które nawet lepiej się sprawdzi w połączeniach z MySQL. (jest szybszy).

@collecter, połączeń z bazą danych powinno być jak najmniej. Jeśli to możliwe to najlepiej tylko jedno, które jak sam powiedziałeś może być w innym pliku, a ten plik może być potem dołączany do skryptu. Jakbyś pooglądał strukturę plików niektórych systemów opartych na PHP to byś zobaczył nieraz plik a'la db.php / conn.php / config.php, który najczęściej właśnie odpowiada za połączenie z bazą danych.
Go to the top of the page
+Quote Post

Posty w temacie


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: 26.12.2025 - 04:22