Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Budowanie strony z modułów, MVC MVP
olechafm
post
Post #1





Grupa: Zarejestrowani
Postów: 125
Pomógł: 2
Dołączył: 8.10.2010
Skąd: Poniemieckie miasto przesiedleńców

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


Budując aplikację w oparciu czy to o MVC czy MVP skupiamy się na jednej funkcji, którą ma pełnić jedna podstrona serwisu i do niej dostosowujemy kontroler model i widok np. żeby wyświetlić użytkownikowi listę newsów używam elementów odpowiedzialnych za tą czynność (wywołuje odpowiedni kontroler)

strona nie zawiera jednak tylko tego elementu (lista newsów) ale również inne komponenty jak chociażby stopka, czy menu które są stałe dla wszystkich stron (lub zmienne zależnie od podstrony)

W jaki sposób konstruować całą podstronę, jak wypełnić ją pozostałymi elementami, czy to kontroler danej funkcji serwisu ( np. listowania newsów) powinien przechowywać informacje o tym z jakich elementów ma się składać i załączać te elementy strony które powinny śię wyświetlac na danej podstronie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Dodaj sobie jeszcze H (od ang. Hierarchical) do obu tych skrótów, a otrzymasz odpowiedź.
Go to the top of the page
+Quote Post
olechafm
post
Post #3





Grupa: Zarejestrowani
Postów: 125
Pomógł: 2
Dołączył: 8.10.2010
Skąd: Poniemieckie miasto przesiedleńców

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


jakieś dobre źródło na ten temat może ktoś zna?

w dalszym ciągu będę wdzięczny za jakieś dobre źródło...

czy do wywoływania obiektów które będą kolejne w hierarchii po głównym kontrolerze powinienem koniecznie używać specjalnego obiektu (w tym co widziałem zawsze występowała implementacja wzorca Factory)?
Go to the top of the page
+Quote Post
Niktoś
post
Post #4





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Wzaorzec faktory ,nie jest zbytnio trwały ,ale do tego może akurat się nadać.
Go to the top of the page
+Quote Post
Crozin
post
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
czy do wywoływania obiektów które będą kolejne w hierarchii po głównym kontrolerze powinienem koniecznie używać specjalnego obiektu (w tym co widziałem zawsze występowała implementacja wzorca Factory)?
Możesz wykorzystać dokładnie ten sam mechanizm - o ile ma on ręce i nogi - co do odpalania głównego kontrolera z jakoś tam zmienionym środowiskiem.

Na dobrą sprawę dla typowej aplikacji webowej w szablonie umieszczasz jakąś tam instrukcję wywołującą inne komponenty:
  1. <div id="sidebar">
  2. <h3>Prawa kolumna</h3>
  3.  
  4. <fw:include component="KomponentOstatnichPostówNaFormu" />
  5. <fw:include component="KomponentAktualnieZalogowanychUżytkowników" />
  6. </div>
Co uruchamia odpowiedni kontroler, który zaś może wywoływać kolejne szablony.

Warto jedynie dla tak odpalonych komponentów ustanowić nowy kontekst ich wywołania - tak by były świadome, że zostały wywołane jako komponent (mogą mieć np. referencję do nadrzędnego komponentu).

@Niktoś: Co to znaczy, że wzorzec nie jest zbytnio trwały?
Go to the top of the page
+Quote Post
Niktoś
post
Post #6





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Nie potrzebnie tak pisałem,nie wiem jak by ten wzorzec sprawdzał się przy callbackach i requestach ajaxu.W asp.net używam jeszcze partial postback. I tworzenie takich obiektów np.w prostocie singeltona bywa czasami kłopotliwa ,nie mówiąc już o wzorcu fabryki gdzie mechanizmami obsługi tworzonych obiektów są interfejsy.
Może ,jeszcze za mało się znam.Za bardzo skomplikowane to dla mnie ,jak na razie ,a co sądziłbyś o tym
http://pl.wikipedia.org/wiki/Pula_obiekt%C...c_projektowy%29 -nie wiem czy w PHP jest ten wzorzec dostępny.
Trzeba tylko pilnować stanu obiektów,nie potrzebne są żadne interfejsy.

Ten post edytował Niktoś 26.12.2011, 23:09:16
Go to the top of the page
+Quote Post
Crozin
post
Post #7





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Po pierwsze to spację wstawia się po znaku interpunkcyjnym.

Co mają AJAX-owe żądania tutaj do rzeczy? Jaką to niby prostotę w tworzeniu obiektu wprowadza singleton i co ma wykorzystanie interfejsów do wzorca fabryki?
Co zaś pula obiektów może mieć tu do rzeczy to już kompletnie nie rozumiem i w czym ona niby wyręcza(?) interfejsy.
W ogóle co drugie Twoje zdanie jest tutaj kompletnie oderwane od rzeczywistości.
Go to the top of the page
+Quote Post
olechafm
post
Post #8





Grupa: Zarejestrowani
Postów: 125
Pomógł: 2
Dołączył: 8.10.2010
Skąd: Poniemieckie miasto przesiedleńców

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


Cytat(Crozin @ 26.12.2011, 21:58:48 ) *
Warto jedynie dla tak odpalonych komponentów ustanowić nowy kontekst ich wywołania - tak by były świadome, że zostały wywołane jako komponent (mogą mieć np. referencję do nadrzędnego komponentu).


sprowadzając to do przykładu, taka informacja pozwoli mi zdecydować np. o tym jaki template użyć (inny dla wywołania jako komponent gdy np. lista newsów będzie boxem na stronie głównej a inny gdy będzie wyświetlana jako główna treść na podstronie newsów), taki ma to cel?
Go to the top of the page
+Quote Post
Crozin
post
Post #9





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Na dobrą sprawę mogłoby to nawet i do takiego celu posłużyć:
  1. if ($request->getParent() == null) { // $request->isRoot()
  2. $template = 'normalny';
  3. } else {
  4. $template = 'komponent';
  5. }
Ale w rzeczywistości raczej będziesz mieć dwie osobne akcje do tych celów, bo będą one realizować raczej nieco inne zdania - komponent raczej będzie bardziej okrojony niż "pełna wersja".

Taka informacja o rodzicu nie musi być wcale jakoś specjalnie potrzebna, ale warto by było ją przekazać, szczególnie, że nic to nie kosztuje. W tej chwili nie przychodzi mi do głowy jakiś książkowy przykład przydatności tego. Pozwoliłoby to jednak na identyfikację kontekstu wywołania, a taka informacja może być użyteczna.
Go to the top of the page
+Quote Post

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: 23.12.2025 - 12:43