Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Framework MVC i wywoływanie domyślnego widoku, Jak to wygląda od strony wnętrza frameworka?
Walian
post
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 1
Dołączył: 13.07.2009

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


W jaki sposób we frameworkach MVC są wywoływane domyślne widoki? Tzn. nie pytam o zasady MVC, lecz o kwestię techniczą od strony wnętrza frameworka.

Np. w Zendzie tworzymy sobie najbardziej podstawowy kontroler:
  1. class IndexController extends Zend_Controller_Action
  2. {
  3. function indexAction()
  4. {
  5.  
  6. }
  7. }

I już na tym etapie Zend wie, że ma wyświetlić zawartość pliku index/index.phtml.
Gdzie jest zawarty kod, który to realizuje? Działa to świetnie bo już w akcji można wyłączyć wyświetlenie zarówno layoutu jak i widoku, a nawet wywołać kilka widoków.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
!*!
post
Post #2





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat
Tak jest chyba tylko na polskich forach. Na zagranicznych jakbym wyjechał z tekstem "Jak napisać jądro systemu operacyjnego?" to podaliby kilka ciekawych rad i linków. A u nas? "A po co Ci to?" "Zwariowałeś? Nie masz co robić?" Eh...


Fakt, temat się trochę rozbujał... Szczerze mówiąc to zadałeś pytanie dość ogólnikowe na przykładzie Zenda (a teraz łapka w górę, kto przeanalizował kod widoków?). Co do linków z przykładami, z tym może być różnie... Zależy co chcesz osiągnąć.

Nie zgodziłbym się z tym co napisał Spawnm że MVC != MVP, bo niby dlaczego? MVC jest tak szerokim pojęciem, że każdy je interpretuje jak mu się podoba, MVP to takie MVC tyle tylko żeby określić od razu co robi widok, a co w przypadku gdy mogą być dwa warianty? Mamy FW korzystający ze wzorca MVC czy MVP? Nie, cały czas jest MVC.

Ustal pierw czy chcesz, aby widok był automatycznie generowany w akcji jaką wywołujesz. Dla mnie to trochę dziwne, bo kto powiedział że ta akcja musi mieć widok, i dlaczego musi być to akurat nawet index. Jeśli tworzysz kontroler, to zapewne dziedziczy on po czymś (główny kontroler FW lub aplikacji) i w tym czymś tworzy się widok na podstawie nazwy akcji jaka została wywołana.

W swoim FW przyjmuję zasadę "używaj czegoś, gdy jest to na prawdę potrzebne", czyli niewiele rzeczy generuje się z automatu. Gdy chce wyświetlić widok, to zwyczajnie to robię przekazując do niego parametry, z nazwą szablonu. Domyślnie, widok jest ustawiony na odbiór, ma tylko odbierać dane z kontrolera i ewentualnie je obrobić w pętli lub z czymś porównać. Taka opcja jest wygodna, bo nie muszę umieszczać w szablonie zbędnego kodu do modeli i samego kodu php, przez co webmaster nie musi narzekać, zresztą napisałem też mini system szablonów, co też się przydaje bo jest jedno spójne API. Zaimplementowałem też opcje która pozwala na używanie w widoku odwołania do modelu, to w zasadzie tylko mała furtka jakby było trzeba zrobić coś na szybko.

Nie kojarzę artykułów które by mnie naprowadziły "jak się robi FW", oczywiście, można spotkać coś podobnego jednak co z tego... To Ty piszesz FW, więc na co Ci wiedzieć jak robi to ktoś inny. Wszystkie komponenty FW, głównego rdzenia są dobrze opisane na wikipedii czy wikibooks i nie wzoruj się tylko na rozwiązaniach w PHP. A jak chcesz się czegoś od Nas dowiedzieć, to sprecyzuj dokładniej o co chodzi i jaką masz swoją wizję. ehh przypomniało mi się jak zaczynałem pisać FW... uri, router, boot, spl...
Go to the top of the page
+Quote Post

Posty w temacie
- Walian   Framework MVC i wywoływanie domyślnego widoku   27.05.2012, 17:35:55
- - skowron-line   Zapewne do widoku jest przekazywana nazwa akcji ja...   27.05.2012, 18:16:40
- - irmidjusz   Cytat(Walian @ 27.05.2012, 18:35:55 )...   28.05.2012, 00:19:09
- - !*!   CytatI już na tym etapie Zend wie, że ma wyświetli...   28.05.2012, 08:04:55
- - Pilsener   Jak chcesz to MVC to wybrałeś zły przykład. ZF to ...   28.05.2012, 14:23:10
- - Walian   Niczego nie jestem pewien. Po prostu chcę sobie st...   29.05.2012, 11:59:17
- - Crozin   Skoro Zend Ci odpowiada to po jakie licho robisz s...   29.05.2012, 12:22:03
|- - !*!   Cytat(Crozin @ 29.05.2012, 13:22:03 )...   29.05.2012, 12:28:24
- - Walian   @!*! Jesteś jedną z niewielu osób, która n...   29.05.2012, 13:16:02
- - Dipter   @!*! i Walian Może inaczej.. Główny probl...   29.05.2012, 16:14:55
- - !*!   Cytattzn. ludzie zamiast skorzystać z gotowych kla...   29.05.2012, 17:26:13
- - Dipter   CytatAle dobre dla kogo? Dla Ciebie? Dla innych bo...   29.05.2012, 18:03:22
- - !*!   Dipter chyba nie za bardzo rozumiesz o czym rozmaw...   29.05.2012, 18:34:43
- - Dipter   CytatTak, takie same gotowce jak PHP, ale to nie z...   29.05.2012, 20:34:05
- - irmidjusz   Według mnie, czasami warto napisać własny FW (a pr...   30.05.2012, 03:08:36
- - !*!   CytatCo nie oznacza, że trzeba je odstawiać na bok...   30.05.2012, 08:34:51
- - tehaha   Wasza dyskusja za bardzo do niczego nie prowadzi b...   30.05.2012, 12:31:55
- - Dipter   CytatA jakiś argument w końcu podasz, tak czekam i...   30.05.2012, 14:39:53
- - !*!   KodA właściwie to jest jakiś argument, który Cię z...   30.05.2012, 15:47:27
- - Dipter   CytatBo to właśnie moje rozwiązanie tongue.gif A T...   30.05.2012, 17:49:58
- - !*!   CytatPonieważ w każdej aplikacji którą tworzę za k...   30.05.2012, 18:30:19
- - Dipter   CytatWłaśnie, w Twojej wink.gif Zapytałeś, dostał...   30.05.2012, 19:39:25
- - !*!   CytatJak można nauczyć się zasad jakiegokolwiek ko...   30.05.2012, 19:59:54
- - Spawnm   Dąży, user !*! wyjaśnił ci że włąsny FW za...   30.05.2012, 20:03:15
- - marcio   Zgadzam sie w 100% ze @Spawn i @!*! nie wa...   31.05.2012, 14:13:18
- - Walian   Celowo nie zaglądałem do tego wątku, bo wiedziałem...   1.06.2012, 11:48:26
|- - irmidjusz   Cytat(Walian @ 1.06.2012, 12:48:26 ) ...   1.06.2012, 19:09:28
|- - !*!   Cytat(irmidjusz @ 1.06.2012, 20:09:28...   1.06.2012, 20:41:43
- - Spawnm   Cytat- Wykorzystywanie modeli w widoku i na odwrót...   1.06.2012, 12:02:15
- - !*!   CytatTak jest chyba tylko na polskich forach. Na z...   1.06.2012, 17:29:36
- - Walian   CytatDla mnie najwygodniejszym rozwiązaniem jest, ...   1.06.2012, 21:47:22
|- - irmidjusz   Cytat(Walian @ 1.06.2012, 22:47:22 ) ...   3.06.2012, 12:36:27
- - Dipter   Co do pierwszego postu napisałem mały mechanizm ja...   1.06.2012, 22:44:50
- - !*!   Ostatnio rozmyślam nad czymś takim... Wszytko opie...   3.06.2012, 13:02:04
- - marcio   Cytat(!*! @ 3.06.2012, 14:02...   3.06.2012, 14:42:45


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 10:27