Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Koncepcja OOP dla małego projektu
Boshi
post
Post #1





Grupa: Zarejestrowani
Postów: 342
Pomógł: 15
Dołączył: 30.08.2011

Ostrzeżenie: (0%)
-----


Chcę w ramach ćwiczenia napisać sobie prosty panel administracyjny na podstawie hierarchi szkolnej. Jako, że OOP ledwo co umiem, a bez praktyki nie ma wyników to chcę sobie to przećwiczyć.

Hierarchia szkolna
Dyrektor, nauczyciel, uczeń. Nie bardzo mam pojęcie jak to rozłożyć w klasach wszystko. Myślałem nad czymś takim

klasa abstrakcyjna osoba, klasa dziedzicząca po osoba Dyrektor, Nauczyciel, Uczeń. Każda grupa ma swoje metody. Np Nauczyciel, zmień ocenę. Kolejne klasy to:
Config (polaczenie z bazą przez PDO)- myślałem nad Singletonem.
login (klasa obsługująca logowanie użytkowników)
register- klasa rejestrująca użytkowników

Myslałem nad 4 tabelami w MYSQl- Dyrektor, Nauczyciel, Uczeń, Uprawnienia. Choć podejrzewam, że rozbicie tego nie ma sensu.

Mógłby mi ktoś to nakreślić? no nie potrafię rozłożyć nawet małego projektu w oparciu o klasy, nie wiem co ma być do czego.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Dipter
post
Post #2





Grupa: Zarejestrowani
Postów: 81
Pomógł: 14
Dołączył: 28.11.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat
Config (polaczenie z bazą przez PDO)- myślałem nad Singletonem.

Klasa konfiguracji nic nie ma do połączenia z bazą danych - tym powinien zajmować się jakikolwiek Handler/Adapter czy jak to nazwać. Poza tym zamiast Singletona użyj Dependency Injection - po prostu przekaż obiekt PDO do klasy tej i tej.

Cytat
login (klasa obsługująca logowanie użytkowników)
register- klasa rejestrująca użytkowników

"login" i "register" to czynności, a klasy powinny być bytami, stąd też złe nazewnictwo dla podanych klas.

Co do samego rozplanowania praw - poczytaj o ACL.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 03:16