Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]System blogowy - projektowanie oop
Forum PHP.pl > Forum > Przedszkole
adolf1945
Witam. Chciałbym napisać system blogowy w PHP oop.
Napisał bym takie klasy:
- class Register
- class Login
- class Post
-addPost
-editPost
-deletePost

- class Comments
- addComent
- deleteComment


Czy takie podejście jest prawidłowe? (pogrubione to metody)
kamillo121
Witaj, podejście jest raczej prawidłowe o ile odpowiada to twoim potrzebą(chociaż nigdy nie byłem zwolennikiem takiego podejścia smile.gif )
Klasy Register i Login mogłyby być powiązane z jedną klasą user co potem ułatwiłoby sprawę(user może się zarówno rejestrować jak i logować).
Następnie klasy takie jak Post czy Comments tez mogłyby być dzieckiem ogólnej klasy np userText bo przecież mają wspólne metody add, delete, edit.
bastard13
Ciężko ocenić cokolwiek po tym, co napisałeś. Masz kilka nazw klas i parę metod do niektórych.
Ogólnie wydaje mi się że powinno to wyglądać trochę inaczej (wraz z klasą User, o której napisał ci kamillo121):
Masz modele danych:
User, Post, Comment, które powinny zawierać informacje nt danych tzn.
User:
atrybuty: login, email etc.
metody: isLogIn()

Post i Comment:
atrybuty: text, addDate, editDate
metody: edit(), delete() //bez add(), ponieważ dodawanie nie dotyczy istniejącej instancji obiektu Post

Od razu widać, że Post i Comment faktycznie mogłyby dziedziczyć po jednej klasie bazowej.
Oprócz tego potrzebujesz obiektów kontrolujących:
User_Controller:
korzysta z: Authorization (metody: login(), logout(), więc nie potrzeba osobnej klasy Login)
- określa czy użytkownik jest zalogowany czy nie:

Post_Controller i Comment_Controller:
- tworzenie nowego posta
- edytowanie istniejącego
- usuwanie istniejącego

Plus dodałbym do tego fabryki do tworzenia obiektów Post i Comment.

Co do klasy Register, to jeżeli miałoby to być coś na wzór zendowskiego Registry, to czasem się przydaje:)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.