![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 15.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Pisze moją pierwszą aplickację uzywając oop. Chciałem zapytać was o radę. Nie wiem jaki będzie najlepszy sposób na powiązanie klasy obsługi sesji z klasą uzytkownika. Czy mam tworzyc za kazdym razem obiekty obydwu klas oddzielnie, czy moze przy tworzeniu obiektu uzytkownika np. w jego konstruktorze bedzie tworzony tez obiekt sesji.? A może zastosowac tutaj dziedziczenie? Do tego ostatniego rozwiązania nie jestem przekonany bo mimo ze klasy są ze sobą powiązane to oznaczają coś kompletnie innego. Chyba ze sie mylę i dziedziczenie bedzie tutaj poprawne. Prosze o jakieś rady Ten post edytował czarek1986 8.08.2009, 01:36:31 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Hmm, powiem tak: możesz użyć singletona - i tutaj apel, proszę o niewszczynanie kolejnej dyskusji na temat singleton dobry/zły. (były, a autor może je znaleźć na forum)
lub możesz napisać klasę, która będzie "pojemnikiem" na obiekty. ![]() -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Jeśli zaczynasz przygodę z OOP to pisanie własnego Frameworka to kiepski pomysł. Zainstaluj sobie jakieś gotowe rozwiązanie, coś małego i prostego, ale z dobrą dokumentacją. Tam zobaczysz jedno z możliwych podejść do tego zagadnienia. W praktyce sesja niewiele ma wspólnego z Userem. W sesji możesz mieć conajwyżej metodę getUser(), któa zwróci obiekt zalogowanego Usera lub obiekt Anonimowego Usera. Samo logowanie możesz rozwiązać podobnie. Robisz metodę (w klasie Sesji) setUserAsLogged( User $user ) i tyle. Samo sprawdzanie haseł i loginów powinna załatwiać statyczna metoda login( $login, $password ) - zwraca ona obiekt Usera lub false w przypadku niepowodzenia (lub rzuca wyjątek). Jednak każdy realizuje to zagadnienie inaczej, chciałem Ci tylko pokazać jedno z możliwych - moim zdamiem niezłe ![]() Pozdrawiam! -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam. Pisze moją pierwszą aplickację uzywając oop. Chciałem zapytać was o radę. Nie wiem jaki będzie najlepszy sposób na powiązanie klasy obsługi sesji z klasą uzytkownika Czy mam tworzyc za kazdym razem obiekty obydwu klas oddzielnie, czy moze przy tworzeniu obiektu uzytkownika np. w jego konstruktorze bedzie tworzony tez obiekt sesji.? A może zastosowac tutaj dziedziczenie? Do tego ostatniego rozwiązania nie jestem przekonany bo mimo ze klasy są ze sobą powiązane to oznaczają coś kompletnie innego. Chyba ze sie mylę i dziedziczenie bedzie tutaj poprawne. Prosze o jakieś rady Chcesz czy nie chcesz, obiekt Usera i obiekt odpowiedzialny za sesję (nazwijmy go Managerem) są dwoma osobnymi obiektami, które powinny być dostępne w systemie jednocześnie. Od tego stwierdzenia już prosta droga do tego, że obiekt Usera (i każdy inny, który używa sesji) powinien zawierać w sobie ten obiekt Managera i używać go wedle potrzeb.
Jak widzisz - jest trochę sposobów. Ten post edytował LBO 8.08.2009, 07:36:55 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 07:31 |