[MVC] Vragen omtrend gebruik Model, Controller en View

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wouter J

Wouter J

05/09/2011 10:42:05
Quote Anchor link
Ik ben begonnen met het leren van MVC en vooral ook het gebruiken. Nu heb ik nog geen betaalde host of domein en maak ik voor mijn 'website' alleen gebruik van een sub domeintje van een andere site. Het probleem hierin is dat er geen database in zit.

Nu ben ik van plan om XML te gebruiken voor die website i.p.v. een database. Dit lukt allemaal wel, maar ik zat met een vraagje over het ophalen van de gegevens. Moet dit gebeuren in de Model of de Controller?
De Model is voor het gegevens ophalen uit de database, of ook van een XML file?
Gewijzigd op 06/09/2011 19:58:09 door Wouter J
 
PHP hulp

PHP hulp

22/11/2024 07:34:31
 
Ric swave

ric swave

05/09/2011 11:52:30
Quote Anchor link
Hey Wouter,


Zoals ik erover denk:

In de model, zonder twijfel.
Hier moet je alle logica verwerken.


In de controller moet je alleen de routing en via de models data ophalen. Zeg maar 'aan elkaar knopen' van logica.

Eigenlijk staat XML er los van. Dus dat maakt het ook flexibel.
Want wanneer je straks wel een database tot beschikking hebt, dan hoef je alleen je model class aan te passen, en de rest werkt perfect verder :) (als het goed is).
Je model moet wel op zichzelf staan. Dus niet weer afhankelijk van je routing of get waardes...

Dus stel je dat je index controller zoiets is:


-->controller

public function indexAction(){

$oNews = new News();
$this->view->news = $oNews->getNews();


}

--> model class News{

public function getNews(){

//connecten naar je db of xml
// haal je data op
// db connecties of andere resources hier verwerken.

return $aNews;

}


--> view class bijvoorbeeld..

echo $news;




Zoiets denk ik.
 
Pim -

Pim -

05/09/2011 17:21:19
Quote Anchor link
Idd. Als het goed is, is alleen je model gelinkt aan opslagmechanismen, en je view en controller communiceren daarmee via je model.

Helemaal ideaal is het als je model/domein object/entities (new, user, post) zelf ook los staan van de opslag en dat een apart model hier weer voor zorgt. Dat heet het Datamapper patroon (min of meer).
 
Wouter J

Wouter J

06/09/2011 19:57:18
Quote Anchor link
Ah, bedankt Rik. Nu begin ik langzamerhand het nut in te zien van het MVC design pattern: Door de taken te verdelen kun je later makkelijk iets veranderen aan soort database, productie code of ontwerp.

En Datamapper is dus eigenlijk dat je voor elk object een Model maakt. Ik maak nu een blog, dus ik heb een PostModel en een UserModel. En daarnaast nog een model om de pagina dingen op te halen (zoals navigatie)?

En wat ik nog niet begrijp is wanneer je een nieuwe controller gebruikt. Bij die blog. Heb ik dan een IndexController voor de index en contact pagina en een BlogController voor de blog pagina's. Of moet ik ook nog een ContactController hebben?

En als we dan toch bezig zijn. Is het verstandig om heel veel views te hebben (index, singlePost, categorie) of is het verstandig om te zo klein mogelijk te houden? Mijn gevoel zegt het laatste, maar volgens mij is het eerste...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.