![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 0 Dołączył: 5.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Temat pewnie wam znany i stary jak swiat. Pisze sobie swoj cms starajac sie zrobic to obiektowo. Dotychczas przejrzalem i przeczytalem wiele artykulow dotyczacych OOP i robie sie coraz glupszy bo z tego co rozumie to zastosowan jest multum, tylko ktore to najlepsze. mam taka klase
Pierwsze pytanie : Czy klasa User powinna miec funkcje takie jak Loguj, Rejestruj, Edytuj, Zmien Haslo i czy te funckje powinny miec juz "hardcoded" zapytania do bazy wewnatrz, patrz funckja loguj();. Wywoluje ja tak:
Jezeli cos tego pokroju jest ok to spoko. Teraz np dopisalem sobie taka funkcje to tej samej klasy, ktora jak dla mnie moglaby byc w kazdej prawie innej klasie :
Dzieki tej funkcji lapie sobie wszystko z bazy i w prosty sposob moge wywolywac wszystkie kolumny :
Bardzo podoba mi sie mozliwosc poboru rekordow i nazw wierszy tabeli w tak prosty sposob. Teraz do rzeczy : Funckja ta jest w Users ale generalnie moglaby byc w prawie kazdej innej klasie, np Products, Articles itp. Czy mam utworzyc osobna klase z ta funckja z ktorej jakos beda kozystac wszyskie inne klasy ? Czy ma byc to w klasie bazy danych, czy moze w jakies jeszcze innej ? Prosze o odpowiedzi i wyrozumialosc (IMG:style_emoticons/default/smile.gif) Ten post edytował rahul 20.08.2011, 20:50:56 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Pomyśl nad tym co chcesz osiągnąć... Jak dla mnie sensowniejsze jest, by funkcja ta zwracała już od razu obiekt klasy User i to od programisty zależy co z tym obiektem dalej będzie robił. Dla mnie w takim wypadku sensownym byłoby takie napisanie konstruktora, by mógł on przyjąć jako parametr liczbe. Wywołanie bezparametrowe utworzy pusty obiekt (czyli wstęp dla tworzenia nowego usera), a z liczbą utworzyło by obiekt uzupełniony danymi usera o takim id lub wyjatek, jeśli ktoś sobie jaja zacznie robić i wpisze id usera, którego nie ma. Pamiętaj, że konstruktor to metoda jak każda inna i parametry może przyjmować, o czym niestety wielu poczatkujących zapomina, traktujac go jako jakąś magię straszną (IMG:style_emoticons/default/wink.gif) Ci którzy "wychowywali się" na C/C++ wiedza jakie cuda można z pomocą konstruktorów robić i dla nich to co jest w php daje tak naprawdę ograniczone możliwości. Sam pamiętam jak kolega obok siedzący zaczął się za bardzo wzorować na typowych i do znalezienia w necie przykładach dla Kohany. Niemal nigdy kontroler w swoim konstruktorze nie przyjmuje parametru. Mój kod miał to w określonych wypadkach i trochę to za dziwne uznawał, do czasu aż mu to się samemu nie spodobało , bo czasem upraszcza pewne rzeczy. Tak jak w tym wypadku, gdzie konstruktor jest jednocześnie inicjalizatorem.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.10.2025 - 03:54 |