Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Obiekt komentarz, jak poprawnie stworzyc
rahul
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 5.03.2011

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


Witam
Nasunelo mi sie takie pytanie odnosie budowy obiektu komentarza w pewnym przypadku.
Jezeli mam strone ktora przypuscmy ma wiele elementow ktore moga byc komentowane tj. miejsce, zdarzenie, komentarz komentarza.
Jak stworzyc poprawnie obiekt komentarz i jak zawrzec informacje odnsnie zrodla ktore jest komentowane.
Jak w bazie utworzyc pola aby komentarz wiedzial czy komentuje miejsce , czy zdarznie czy inny komentarz i jak wtedy wygladalby taki obiekt?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




1) Może by tak po kolei? Zanim zabierzesz się za obiekt, stwórz strukture bazy
2) Póki co z OOP temat za dużo nie ma wspólnego - przenoszę

Skoro komentować możesz różne struktury, to w tabeli muszą być dodatkowe dwa pola:
TARGET - komentowana struktura. Możesz to oznaczać cyframi lub tekstem. Jak ci wygodniej
TARGET_ID - id danego rekordu z danej tabeli w zależnosci od TARGET
Go to the top of the page
+Quote Post
bastard13
post
Post #3





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


Cytat(nospor @ 19.09.2011, 12:15:47 ) *
1) Może by tak po kolei? Zanim zabierzesz się za obiekt, stwórz strukture bazy

Osobiście nie zgadzam się z tym stwierdzeniem. Jeżeli chodzi o projektowanie, to właśnie najpierw tworzy się model obiektów, a dopiero później, gdy już mamy wszystkie zależności, możemy sobie z łatwością stworzyć diagram ERD i na jego podstawie wygenerować strukturę bazy.
A sama klasa? Moim zdaniem coś takiego:
  1. class Comment{
  2. private $_content;
  3. private $_target;
  4. public function __construct($target) {}
  5. public function setContent($content) {}
  6. public function getContent() {}
  7. }

Target powinien być ustawiany w konstruktorze, bo już w momencie tworzenia wiesz do czego jest dany komentarz. Oczywiście musisz jeszcze zwalidować, czy $target (jakiś obiekt) może rzeczywiście posiadać komentarz. Doradzałbym jakiś wspólny interfejs do wszystkich encji, które mogą mieć komentarz np. Commentable, które będą realizowały. Oszczędzi ci to walidacji, bo wtedy możesz zastosować twarde typowanie.

Oczywiście czym innym jest realizacja tego w kodzie, bo do tego rzeczywiście już potrzeba bazy i odpowiednich tabel, ale jeżeli chodzi o sam projekt, to mniej więcej tak.
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: 15.10.2025 - 13:31