![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 12.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Jako ze zaczalem uczyc sie OOP chcialbym sie dowiedziec, gdzie umiescic sprawdzanie czy user jest zalogowany ? Chodzi o to, ze chce informacje o tym czy jest zalogowany trzymac w sesji. I teraz jak zorganizowac klase logowanie ? Chcialbym przy kazdym przeladowaniu strony sprawdzic, czy istnijeje zmienna sesyjna np. 'userlogin' i na podstawie jej wartosci zalogowac go. Czy calosc operacji zrobic w klasie, czy np. gdzies w kodzie najpierw sprawdzic czy zmienna sesyjna istnieje i dopiero pozniej ewentualnie utworzyc klase Logowanie(), czy raczej przy kazdym wywolaniu strony tworzyc klase Logowanie a w środku niej sprawdzac czy user jest zalogowany ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Cytat // i potem w każdej odpowiedniej podstronie można go sprawdzać if ( !$user->isLogged() ){ die('trza się zalogować'); } Niekoniecznie, bo skoro tworzysz instancję klasy User we front controllerze, to można tam też uruchomić proces autoryzacji i jej obsługę. Chyba, że Tobie chodzi o warstwę widoku. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) @beceme - Wszystko zależy od tego, czy User to obiekt pasywny, czy aktywny. Jeśli jest pasywny, to powinien być zarządzany przez inną klasę (np. userManager, Authorization itp. - nazwa nie jest tu tak ważna).
Osobiście skłaniam się ku pierwszemu rozwiązaniu, choć w jakimś małym CMS'ie obsługiwanym przez jedną osobę nie trzeba rozbudowywać autoryzacji, więc drugie rozwiązanie wystarczyłoby w zupełności. Musisz patrzeć na system pod kątem relacji w jakie wchodzą jego obiekty. Np. patrząc logicznie, to klasa User powinna być tylko zestawem danych na temat użytkownika, a więc odzwierciedleniem wiersza z tabeli bazy danych (albo z pliku). Tym samym powinna zawierać metody do operowania tymi danymi, natomiast nie powinna zawierać metod, które wpływają na cały system. Taką metodą jest np. metoda User::login() - użytkownik rejestruje się sam, co jest nielogiczne. Kończąc - masz rację - inna klasa, której celem jest autoryzacja użytkowników jest bardziej zorientowana obiektowo. Pozdrawiam. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 10:35 |