Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> znowu MVC ;/
zimi
post
Post #1





Grupa: Zarejestrowani
Postów: 233
Pomógł: 9
Dołączył: 3.06.2007

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


trochę mam wyrzuty że wałkuję znowu biedne MVC bo z tego co widziałem było nieraz, przeczytałem kilka artykułów również na wortal.php.pl, masę postów na temat tej architektury, przejrzałem kod przykładowego rozwiązania: http://www.phppatterns.com/docs/design/mvc_pattern_version_2
jednak żadne z powyższych nie tłumaczą mi mojego problemu
zastanawiam się nad:
1. jak wykonujecie zapytanie gdy potrzebujecie złączenia 2 tabel, robicie to złączenie czy wewnątrz klasy np. artykuł tworzycie obiekt klasy np. Autor i nim wykonujecie kolejne zapytanie?
2. jeśli robicie to złączenie to jak dane składujecie w obiekcie czy macie atrybut autor w którym znajduję się jego ksywa? czy w tym atrybucie znajduję się obiekt

może to głupie pytanie ale jakoś nie mogę tego pojąć, ani znaleźć nigdzie odpowiedzi ;/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zimi
post
Post #2





Grupa: Zarejestrowani
Postów: 233
Pomógł: 9
Dołączył: 3.06.2007

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


no tak działanie MVC już kojarzę chyba: zasadniczo kontroler kontroluję (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) :P, model wybiera sobie dane i widok "oprawia" dane w HTML no albo do innego formatu... zależnie od potrzeb, jednak nie o to chodzi
no i jeszcze względnie FrontController zajmuje się przetwarzaniem zapytania...

no dobra to postaram się teraz konkretniej...
Struktura bazy prosta:
Uzytkownik
id | ksywa

News
id | tytul | tresc | autor | data

i dorzućmy jeszcze

Galeria
id | tytul_zdjecia | opis | dodal

złączenia na News.autor=Uzytkownik.id i Galeria.dodal=Uzytkownik.id to chyba oczywiste (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
no i teraz dumamy nad przyjętą architekturą... obiektówka + MVC + DRY, to chyba rozsądne nieprawdaż?
zrobimy sobie zapytanie w np.
getOne w modelu Newsa
  1. SELECT jakieś kolumny FROM News LEFT JOIN Uzytkownik ON News.autor=Uzytkownik.id WHERE id=7

potem w getOne w modelu Galerii zapytanie staje się całkiem podobne stąd już pewien problem IMO z DRY...
dlatego się zastanawiałem czy bardziej sensowne nie będzie zrzucenie wyboru zapytania odnośnie autora na model Uzytkownika ale to by stworzyło dużo niepotrzebnych zapytań, dlatego ni jedno, ni drugie rozwiązanie nie podoba mi się i myślałem że jest jakiś inny sposób... jest? bądź co bądź wg takich obiektowych założeń wyciągnięcie ksywy autora nie jest w gestii modelu Newsa ani Galerii, nieprawdaż? czy może się mylę?(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Cytat
Ja dane składuję w tablicach wielowymiarowych

hmmm no ja stwierdziłem że do tego są obiekty i jego atrybuty..., ale jeszcze zobaczę jak mi to wyjdzie wszystko
w każdym razie wielowymiarowość tej tablicy polega na tym że "zamieszczasz w nim" obiekt innej klasy
czyli dla naszego przykładu masz tablicę:
  1. <?php
  2. $obiekt=array('id' => 7, 'tytul' => 'Jakiś tytuł', 'autor' => array('id' => 3, 'ksywa' => 'zimi'), 'data' => '2007-06-29');
  3. ?>

czy po prostu na tym, że masz dane zgromadzone w wielowymiarowej tablicy bo takie były potrzeby skryptu? jeśli to pierwsze, to wg mnie ta architektura jest w sumie bałaganem już, bo gdybyśmy chcieli dorzucić oprócz autora jeszcze kilka złączeń do tabel które obsługują oddzielne modele, to tym sposobem przeciążamy nasz model Newsa i tworzymy klasę boską... co AFAIR jest błędem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) no ale w sumie się nie znam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) dlatego przecież pytam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
dobrze mówię czy źle?(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

PS. mam nadzieje, że jaśniej sformułowałem swoje wątpliwości...

może jednak ktoś się zlituję..., chciałbym jednak znaleźć odpowiedź na moje pytanie

Ten post edytował zimi 28.06.2007, 23:35:16
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: 3.10.2025 - 17:49