![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 19.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Jestem nowy na tym forum więc witam wszystkich.
Teraz do sedna postanowiłem rozpocząć przygodę z programowaniem obiektowym i mam pytanie czy ten kod poniżej na sens programowania obiektowego ? Proszę o wyrozumiałość to początki, ale uwagi mile widziane.
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Dane do połączenia z bazą powinny zostać przekazane np do konstruktora a nie na stałe zapisane w ciele klasy.
Metody __set i __get nic nie wnoszą i są tutaj niepotrzebne Brak flirtowania danych (patrz zaloguj) spr_stan powinna zwracać true/false w zależności czy zalogowany czy nie, zamiast wyrzucać jakieś komunikaty. -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 19.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie dane do połączeni z bazą dałem na stałe (na tą chwilę), ponieważ zastanawiałem się jak zrobić, aby w kilku klasach można było z bazy korzystać. Bo za każdym razem przekazywać dane np do konstruktora to trochę nie poręczne, myślałem nad dziedziczeniem (tylko nie wiem czy to ma sens) oraz użycie zmiennej globalne i tutaj nie do końca wiedziałem jak to uczynić
![]() Co do __set i __get to racja na chwilę obecną nic nie wnoszą. Co spr_stan to słusznie ![]() |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 19.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Przyłączam się do pytania z połączeniem z bazą - jak to najlepiej zrobić, żeby można było korzystać z połączenia w kilku klasach?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 14 Dołączył: 28.11.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Prócz tego co wypisał Tobie Fifi209, to ad. komunikatów, które wyrzucasz podczas wystąpienia czegokolwiek - od tego są wyjątki + do tego polecam wpis na blogu Zyxa.
Co do trzymania jakichś właściwości klasy (w twoim przypadku User) wykorzystaj do tego kontener/tablicę (lecz tracisz w tym przypadku brak supportu ze strony IDE), bądź po prostu ustaw je jako zmienne w klasie i za pomocą IDE wygeneruj metody set/get. Swoją drogą klasa User, raczej powinna określać danego użytkownika jako byt, nie jako forma autoryzacji. Ponadto staraj się używać konwencji PSR-0/1/2 i angielskiego nazewnictwa. Ad. przekazywania połączenia z bazą danych - Najlepiej jest to zrobić poprzez przekazanie obiektu jako argument choćby konstruktora. Stwórz abstrakcyjną klasę zajmującą się "Modelem" czyli warstwą do obsługi danych i ustal w niej metodę do przekazania połączenia. Nigdy zaś nie powinieneś dziedziczyć w stylu Użytkownik - Baza danych. Ten post edytował Dipter 20.03.2013, 14:14:21 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
W dużym ułatwieniu można choćby użyć singleton'a, którego nie polecam.
Drugim wyjściem jest napisanie jakieś klasy, która będzie trzymała cały config i połączenie z bazą w sobie i wtedy z każdego miejsca się tam dostaniesz. Ten post edytował Fifi209 20.03.2013, 14:27:38 -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ten kod jest niepoprawny z kilku powodów:
1. Wspomniane już robienie "dwulicowej klasy". 2. Pakowanie widoku w model. 3. Niepoprawne wywoływanie funkcji w konstruktorze. 4. Mieszanie polskich nazw z angielskimi. 5. Niekompletny kod. 6. Brak komentarzy przez co potem się pogubisz. Przykładowe poprawne rozwiązanie (propo bazy danych):
Ten post edytował pyro 20.03.2013, 15:03:31 -------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 1 Dołączył: 26.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
Korzystając z tematu. Mam pytanie, dlaczego niektóre zmienne składowe daje się w nawiasy klamrowe, np.
$variable = "{$this ->producerFirstName}"; Czytam książke "PHP Obiekty, wzorce, narzędzia" i tu autor często stosuję tę konwencję - niestety bez wspominek o konieczności ich stosowania. Z mojego domysłu używa się ich do seperacji, ciągów znaków od innych typów danych, myle się?. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
http://php.net/manual/en/language.types.string.php -> curly syntax
-------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 03:01 |