![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 21.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Jakiś czas temu postanowiłem posiedzieć trochę nad obiektowym PHP. Standardowe pisanie laików w OOP zaczyna się od napisania klasy do obsługi bazy danych. Wyczytałem, że wykorzystywanie mysqli jest wydajniejsze od mysql. Sama w sobie mysqli jest klasą którą można wykorzystać więc jest jakiś sens "wynajdowania koła na nowo"? Jeśli będę korzystał z tej wbudowanej już klasy w PHP, to pisząc jakieś inne klasy np. rejestrację w jaki sposób rozwiązać "problem" połączenia? Tzn. w klasie np. register.class.php umieścić kod mysqli('host','user','password','db_name'); ? Czy może w jakiś inny sposób? Z racji, że raczkuję w obiektowym PHP proszę o w miarę jasne wytłumaczenie (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Ok, przykład pierwszy - uniezależnienie się od stosowanej biblioteki obsługi bazy - mając własną klasę będziesz mógł - bez modyfikowania zapytań - swobodnie wymieniać back-endy do baz, np. korzystasz ze SQLite, a zechcesz przejść na MySQL, czy też zmienić sposób łączenia z bazą z natywnego na np. ODBC. W przypadku prostych zapytań (inne back-endy) skończy się na wymianie klasy. ;]
Pewnym rozwiązaniem jest PDO, ale jak benchmarki dowodzą, potrafi on zmniejszać wydajność o prawie połowę (kosztem udostępnienia obiektowego interfejsu). Cytat Jeśli będę korzystał z tej wbudowanej już klasy w PHP, to pisząc jakieś inne klasy np. rejestrację w jaki sposób rozwiązać "problem" połączenia? Tzn. w klasie np. register.class.php umieścić kod mysqli('host','user','password','db_name'); ? Osobiście korzystam z wywoływania metody zestawiania połączenia w pliku konfiguracyjnym bazy. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 20:46 |