![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 9 Dołączył: 25.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
Ogarnąłem już PDO i używam statycznej zmiennej do połączenia się z bazą. Tutaj przykładowa klasa: https://gist.github.com/mprz/6cce0e6dd51e4796209c
Tworząc kilka klas niejako uzależniam je od klasy odpowiedzialnej za tworzenie połączenia. Czy to na pewno idealne rozwiązanie? Druga sprawa: gdzie inkludować ową klasę DB? W każdej z klas która jej używa, czy w programie, który korzysta z obu klas (tak robię obecnie)? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Głownie są te błędy wynikające z użycia singletonu samego w sobie:
1. Tworzenie twardych, ukrytych zależności pomiędzy obiektami. To niesie za sobą cały szereg konsekwencji, na czele z utratą korzyści płynących ze stosowania IoC czy interface-driven design. 2. Globalny dostęp do obiektu. Singleton to nic innego jak global w otoczce OOP, a jak złą praktyką jest stosowanie zmiennych globalnych nie trzeba chyba nikomu mówić. Singleton służy wymuszeniu istnienia co najwyżej jednej instancji danego obiektu, a nie dostępowi do niego zewsząd. Innymi słowy chodzi o uniemożliwienie utworzenia następującej konstrukcji: Sytuacje, gdzie istnienie dwóch obiektów tego samego typu nie miałoby najmniejszego sensu czy wręcz mogłoby prowadzić do błędów i/lub zagrożeń są bardzo rzadkie w środowisku PHP. Ja sam nie pamiętam kiedy musiałem skorzystać z Singletonu w swoim kodzie (czy to w PHP czy Javie) - nie jestem nawet pewien czy kiedykolwiek musiałem. EDIT: @vincent vega: Odchodzisz od tematu. Autor pyta konkretnie o przekazywanie surowego połączenia z bazą danych (PDO), nie fabryk czy rejestrów. Co do tego - jak to prawidłowo zrobić - szału to tutaj nie będzie, ale nie wiem czego się spodziewasz:
Ten post edytował Crozin 19.08.2013, 09:39:56 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 10:28 |