Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 1.01.2009 Ostrzeżenie: (0%)
|
Witam, nie dawno zająłem się klasami w PHP i po napisaniu klasy DataBase i klasy User pojawił się problem jak klasa User ma korzystać z utworzonego obiektu klasy DataBase, aby wykonywać operacje na bazie danych. Aby ominąć chwilowo problem napisałem takie coś:
I takie rozwiązanie się sprawdza, ale przeczytałem gdzieś, że nie jest poprawne, bezpieczne, etc. Tu pojawia się moje pytanie, jak nie tak to zrobić, aby nie musieć przy każdym stworzeniu obiektu User() podawać w parametrze obiektu bazy danych? Jestem początkujący w klasach, nie wiem czy dobrze wszystko nazwałem, ale myślę, że jakoś wytłumaczyłem, o co mi chodzi ;]. Dziękuję za przeczytanie tego postu. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
Ja bym to zrobił mniej-więcej w ten sposób.
Pozwól, że nie będę opisywał kodu - chyba jest on dość czytelny. |
|
|
|
Post
#3
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%)
|
a dlaczego w ogóle upierasz się przy:
Cytat Tu pojawia się moje pytanie, jak nie tak to zrobić, aby nie musieć przy każdym stworzeniu obiektu User() podawać w parametrze obiektu bazy danych? (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) przecież przekazanie jednego parametru do konstruktora nie jest żadnym obciążeniem kodu... możesz napisać klasę DB wg wzorca SINGLETON - ale jest to równie nie polecane, co korzystanie ze zmiennych globalnych |
|
|
|
Post
#4
|
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
możesz napisać klasę DB wg wzorca SINGLETON - ale jest to równie nie polecane, co korzystanie ze zmiennych globalnych Racja. Jeżeli napiszesz klasę jako singleton to zamykasz sobie drogę do równoczesnego korzystania z kilku baz (tego samego lub różnego typu). Niby jest to wykorzystywane bardzo rzadko ale lepiej pozostawić sobie taką furtkę. |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 27.01.2008 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%)
|
No i to własnie najgorsze rozwiązanie, gorsze niż singelton. :/
|
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 04:21 |