Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: MVC + komponenty
Forum PHP.pl > Forum > PHP > Object-oriented programming
KotWButach
Witam wszystkich smile.gif

Czytałem dość sporo na temat MVC mimo to nie potrafię zrozumieć pewnej kwestii... Inaczej nie prosił bym was o pomoc.

Otóż mamy model MVC + bootstrap itd.
Przypuśćmy że wchodzimy na stronę localhost\strona\artykuły

Mamy więć na stronie liste artykułów, wyszukiwarkę, blok reklamowy, komponent dodawania nowych artykułów, itd.

Moje pytanie brzmi jak takie "wtyczki" mają być napisane. Czy wszystko ma sie zwalić na podstawową strukturę MVC dzięki czemu otrzymamy w modelu prócz plików index, artykuły całą listę komponentów jak blok reklam, wyszukiwarka które sa przeciez tylko cześcią strony z artykułami.

Czy może maja być to samodzielne dodatki które dodajemy tylko do widoku?
  1. <div><?php $dodawacz->dodaj('wyszukiwarka'); ?> <div />


Nie rozumiem tego zagadnienia prosił bym o pomoc sad.gif Bo strasznie się zaciołem i nie mogę nic napisać sensowenego bo obawiam się że jest niezgodne z czymkolwiek a wesoła twórczosć nie spotka sie z uznaniem za super portfolio u pracodawcy... za jakiś czas.
Sephirus
Twój problem dotyczy elementów ogólnie przyjętych w frameworkach PHP - przedstawie je na przykładzie Zenda smile.gif


Tak jak piszesz jest strona, która ma na przykład:

NAGŁÓWEK

MENU TREŚĆ

STOPKA

smile.gif

Kontroller wywoływany z adresu (dispatch) zajmuje się tylko treścią. Nagłówek, menu i stopka mogą zostać zrobione na kilka sposobów:

1. Jako helpery - czyli dodatkowe metody widoku generujace coś w danym miejscu. Umieszcza się ja (do wyświetlania) w kodzie skryptu widoku pomiędzy html'em. Każdy helper może łączyć się z bazą, mieć własny widok i generować kod do wrzucenia w tam gdzie się go powoła

2. Helpery jednak nie powinny być zbyt mocno wypasione (zbyt duże) zatem można wykorzystać do tego samego celu akcję controllera. W zendzie na przykład masz helpera o nazwie action, który to zwraca w miejsce jego wrzucenia w skypcie widoku wynik działania podanej akcji kontrolera. Kontroler nie jest jednak dispatch'owany smile.gif tylko wywołany wewnątrz tego helpera action. Czyli tworzysz akcje w kontrollerze zwracające nagłówek, menu i stopkę i odpowiednio dodajesz je do głównego widoku.

3. Zend - ma coś takiego jak layout a w nim (mogę przekłamać nazwę) placeholdery - to też sposób chyba najlepszy do boksów itp... to taki "większy" widok.

4. W przypadku gdy nie wymagana jest generacja danych i ich pobierania czy przetwarzania z bazy danych = można po prostu wrzucić do jednego widoku drugi... nawet przekazujac jakieś parametry (np poprzez helpery partial czy partialLoop w Zend)

To takie ogólniki ale mam nadzieję że naszkicowałem Ci w myślach choć zarys tego wszystkiego smile.gif Poczytaj o tym więcej wink.gif
KotWButach
Coś mi się już rozjaśnia ale nie do końca gdyż frameworki przedemną jeszcze.

Czy mógł bym Cie prosić o możę mały kodzik abstrakcyjny? Będę wdzięczny zakochany.gif
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.