![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 19.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich
Jako że się uczę całe życie i staram rozwijać, teraz stanąłem przed kolejnym zadaniem. Chciałem zrobić sobie prosty formularz logowania (bez rejestracji itd) wykorzystując OOP i PDO do połączenia z bazą danych. Nie bardzo mogę sobie poradzić z organizacją kodu. Stworzyłem sobie klasę:
Mam też klasę DB zaimplementowaną jako Singleton
No i właśnie tutaj zaczynają się schody. Chciałbym mieć metodę do logowania. Czy ta metodę powinienem umieścić w klasie Użytkownika czy DB ? Jeśli w użytkowniku, to czy przypisywać zawsze użytkowniki instancję DB? Prosiłbym o pomoc, generalnie to opis tego jak Wy to robicie w swoich aplikacjach. Wiem że jak teraz źle coś zrobię, to potem poprawki będą ciężkie. Generalnie najbardziej chodzi mi o rozwiązanie tego gdzie, co i w czym ma być w tych klasach żeby potem utworzenie formularza logowania zajęło raptem parę linijek, np Index.php Login.php
Z góry dziękuję za porady |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze twój kod jest zupełnie bez sensu, bo przykładowo:
1. Nieprawidłowe odwołania do właściwości klasy 2. Singleton razem z publicznym konstruktorem, do którego brak zresztą odwołania. 3. Tworzenie niepotrzebnych zalezności od innych klas 4. itd.... Co do głównego wątku: logowanie, rejestracja, obsługa użytkownika itp. to powinny być oddzielne klasy, a nie kolejne metody. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 19.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze twój kod jest zupełnie bez sensu, bo przykładowo: 1. Nieprawidłowe odwołania do właściwości klasy 2. Singleton razem z publicznym konstruktorem, do którego brak zresztą odwołania. 3. Tworzenie niepotrzebnych zalezności od innych klas 4. itd.... Co do głównego wątku: logowanie, rejestracja, obsługa użytkownika itp. to powinny być oddzielne klasy, a nie kolejne metody. 1. No nie ma odwołan nie chciałem kopiować tutaj wszystkiego. 2. Oczywista oczywistość... Moje niedopatrzenie 3. No właśnie to jak to zrobić jest takie moje pytanie? Co ma być w użytkowniku, czy ma mieć jakies metody, czy te metody do DB przenieść? Nie proszę o wytykanie tylko błędów, ale o naprowadzenie jak to zrobić poprawnie. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie proszę o wytykanie tylko błędów, ale o naprowadzenie jak to zrobić poprawnie. Jak użyjesz wyszukiwarki na forum (tej google) z frazą "logowanie OOP", masz kilkanaście tematów z tym związanych i w prawie każdym drugie tyle odpowiedzi, które z pewnością rozwieją wszelkie wątpliwości. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
A wytykanie błędów to nie jest naprowadzanie jak zrobić poprawnie?
1. Połączenie mógłbyś zaaplikować za pomocą Dependency Injection 2. To samo z logowaniem, rejestracją, itp. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 19.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
Czyli rozumiem, że dla każdej akcji: logowanie, rejestracja, przypominanie hasła mam mieć osobną klasę? Ja trochę poszedłem tokiem myślenia MVC, tak jak jest w cakePHP, a tam po prostu poszczególne operacje są funkcjami i stąd taki mój początek. Potem coś zmodzę, będę prosił o ocenę.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 11:13 |