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. |
|
|
|
![]() |
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 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%)
|
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. |
|
|
|
collecter baza danych koncepcja obiektowa 20.04.2011, 21:17:38
Crozin CytatNigdy nie widziałem wiarygodnego wpisu, który... 20.04.2011, 23:06:08
smentek Jakąkolwiek warstwę abstrakcji wybierzesz (PDO jes... 22.04.2011, 10:56:52
Inscure Trzeba zacząć od tego, że funkcje mysql_ nie są ju... 29.04.2011, 22:22:59
Zyx Witaj Inscure, na Twoją prośbę przesłaną przez PW ... 1.05.2011, 13:49:00
Inscure Zastanawiałem się nad dwoma typami rozwiązań probl... 1.05.2011, 17:27:04
pejott Ja bym zdecydowanie zrezygnował z metod statycznyc... 1.05.2011, 17:55:40 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 04:22 |