![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 276 Pomógł: 3 Dołączył: 22.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Zagadnienie, które mnie nurtuje to jak zorganiwazować połączenia z bazą danych w bibliotekach (zbiorach funkcji) a mianowicie dokładnie
(*) klasy reprezentujące rekordy poszczególnych tabel zgodnie z filozofią Active Record posiadają klasę bazową baseClass, która w konstruktorze wywołuje połączenie z bazą danych (to jest dobre (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) ) (*) teraz przystępuję do pisania zbioru funkcji, łączonych w biblioteki, będą to funkcje zwracające z bazy MySQL różne tablice z danymi np:
itp Pytanie brzmi: o ile dla klas połączenie było realizowne w kontruktorze, to jak lepiej zrobić to dla zbioruy takich funkcji bibliotecznych. 1) czy lepiej w ciele każdej z tej funkcji łączyć się i rozłączać z bazą danych 2) czy może lepsze jest zastosowanie parametru przekazującego obiekt PDO
3) a może nieładnie skorzystać z globalnego obiektu odpowiedzialnego za połączenie? Zastanawiam się jak się będzie to miało do wydajności (szybkości działania) aplikacji w momencie gdy będą wykonywane duże ilości takich zapytań w jednym skrypcie? Jak państwo rozwiązujecie takie problemy? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 362 Pomógł: 0 Dołączył: 18.02.2004 Skąd: Knurów Ostrzeżenie: (0%) ![]() ![]() |
Co do ActiveRecord, to ja chcę u siebie zaimplementować bardziej dynamiczne rozwiązanie, odwzorowujące w czasie rzeczywistym stan bazy danych, więc np. utworzenie obiektu Post, który będzie odwzorowywał tablicę posts w bazie danych wyglądałoby tak:
Podobnie wygląda to w Ruby on Rails. A co do sprawdzonych źródeł wzorców, m.in. Registry: PoEAA (Patterns of Enterprise Application Architecture). W polskim wydaniu opis wzorca Registry znajduje się na s. 438. A co do mojej implementacji tego wzorca - u mnie jest to po prostu kontener, nie zawiera on metod tworzenia obiektów, jeśli one nie istnieją, a jedynie udostępnia globalny intefejs dostępu do przechowywanych obiektów. Brakuje mi jeszcze w moim rozwiązaniu implementacji wzorca IdentityMap, lub czegoś podobnego, co zapewni unikalność obiektów - chwilowo są to tylko nazwy wpisów w rejestrze. Wygląda to mniej więcej tak:
A tak wygląda klasa kontenera, którą Registry rozszerza.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 06:31 |