Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MVC pjektowanie modelu
nocturne
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 24.09.2011

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


Witam Korzystam z DOCTRINE 2 i CodeIgniter. Zastanawiam się jak prawidlowo zbudować modele do czegos takiego:

W bazie mam 4 tabele

Post = zawiera podstawowe informacjie o poscie
Post_settings = dodatkowe wartosci dla posta
categorie = kategori do ktorej zostanie dowiazany psot
category_has_post = tablica laczaca

Żeby korzystać z doctrinie stworzylem modele ktore odzwierciedlaja wyglad mojej bazy.

Jak ma wygladac model ktory będzie doawał i edytował wpis ?

myslalem nad czyms takim:

  1. class wpis
  2. {
  3. private post; // obiekt kalsy Post
  4. privare post_settings; // tablica obiektow post_settings
  5. private categorie_dostepne; // tablica obiektow categorie
  6. private categorie_zaznaczone; // tablica obiektow categorie
  7.  
  8.  
  9. funkcja add(){} //dodawanie rekordow do TABLE category_has_post ,categorie ,Post_settings ,Post poprzez wywolanie odpowiednich regol z tych klas
  10. funkcja edit(){} // edycja wpisu
  11. funkcja get(){} //pobranie wpisu
  12.  
  13. }




Mam jeszcze 2 pytanie, wyslalem formularz z tym wpisem chcem teraz dokanac walidacjitablicy $_POST gdzie to powino sie robic ? w Mdelu wpis czy moze mam utworzyć biblioteke którą będzie wywolywal kontrooler gdzie będzie walidowała i obrabiała $_POSTA np striptags, trim, strtoupper , empty,in_number ?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
toffiak
post
Post #2





Grupa: Zarejestrowani
Postów: 395
Pomógł: 80
Dołączył: 24.08.2009

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


Jeżeli już nie chcesz korzystać z relacji Doctrine 2, to i tak proponowałbym klasę Post jako tą która zawiera listę/tabele kategorię i właściwości samego posta (PostSettings), jest to bardziej naturalne.

Sama klasa Wpis jest właściwie niepotrzebna, za co ona odpowiada ?, chyba że miała by być menadżerem i odpowiadała za zarządzanie postami: coś w rodzaju findOneBy($id), find($id).
Tylko że to posiada Doctrine 2 i działa to niemal automatycznie.

Skoro więc "zaprzągłeś" do pracy ORM-a to wykorzystaj go w pełni.
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: 13.10.2025 - 14:50