Aktywne Wpisy

RobertPupica +129
Pierwszy dzien w pracy jako motorniczy :)
źródło: Zdjęcie z biblioteki
Pobierz
addddd +122
wyplusujcie tego pięknego prosiaka - nikt nigdy nie plusuje prosiaków :/
źródło: 2f5d99df-7fac-4169-95c4-86f847c2f2ce
Pobierz




Problem jest następujący: chcę sobie dla wprawki napisać klasę obsługującą zarządzanie użytkownikami i mam dylemat, bo nie wiem, jak to do końca zrobić. Dla uproszczenia zakładam, że user będzie miał login i hasło, bez zbędnych parametrów. Klasa natomiast powinna obsługiwać dodawanie, usuwanie, modyfikowanie konta użytkownika, sprawdzanie, czy użytkownik istnieje i pobierać dane użytkownika.
Wyobrażam to sobie mniej więcej tak: http://pastebin.com/f4iwAzjg
Zastanawiam się, czy dobrze kombinuję - metody do tworzenia, aktualizacji i usuwania usera robię jako statyczne, przekazując do nich obiekt, na którym chcę dokonać zmiany, ale pobieranie i ustawianie loginu i hasła wykonuję bezpośrednio na obiekcie.
Oczywiście to tylko uproszczona forma, ale pytanie - czy tak właśnie powinno to mniej więcej wyglądać? Czy może metody operujące na koncie powinny być wywoływane przez instancję obiektu? A może wydelegowane do innej klasy?
Ogólnie, dobrze kombinujesz z tym, że teraz Twoja klasa użytkownika łamię zasadę jednej odpowiedzialności, czy na pewno użytkownik powinien wiedzieć jak dodać rekord do bazy danych?
Wydziel część tego kodu do klasy np UserRepository i tam zapisuj dane w bazie. Najlepiej gdybyś zaczepił się o jakiś sprawdzony framework np Symfony2 który pokaże Ci pewne rozwiązania.
@banditpanda: no właśnie chcę usiąść do Symfony 2, ale przedtem chciałbym dla wprawki napisać coś sam, żeby zrozumieć ideę i zasady OOP, czyli dlaczego coś ma być statyczne, dlaczego chronione, kiedy interfejs, a kiedy trait. Niestety, zatrzymałem się na proceduralnym
przeklikaj sobie ten artykuł, powinien przybliżyć Cię do koncepcji jakie dziś możesz spotkać w świecie PHP.
Jak powiedział @banditpanda unikaj funkcji statycznych ;)
@ghost1511: a opowiesz, co się dokładnie stało?
Komentarz usunięty przez autora
eg. user/index
$userRepository->all();