|
In dit deel gaan we verder met het maken van een MVC component, zoals we dat begonnen zijn in deel I. Ook dit is een ruwe vertaling van het origineel dat je hier kan vinden. In het vorige deel hebben we gezien dat de data hardcoded (= het stond er gewoon in!) in de view stond. Dit is niet geheel volgens de opzet van de MVC. Daar is het de bedoeling dat dit los staat, en de view de data laat zien, maar dat het er dus niet staat. In dit deel gaan we zien hoe we dit uit de view halen, en in het model stopppen. In een toekomstige uitleg, zullen we aantonen hoe flexibel en sterk dit design model is. Het maken van het Model. (hiernaast een ander soort model, om de saaie tekst wat af te wisselen.) De vertaling van 'Model' is "modeleren, vormen, boetseren". Dat is ook wat ons model wil doen. Ons eerste model, zal een groet voorstellen. De benamingsconventie in het Joomla Framework, is dat het model class bestand start met de naam van het component: "hello". Gevolgd door "model" en dan de naam van het model. In ons geval zal dat worden: HelloModelHello. Op dit moment zullen we één vorm van functionaliteit 'moddeleren' en dat is de begroeting ophalen. We zullen dan één methode hebben: getGreeting() en zal de string "Hallo wereld" teruggeven. De code voor de model class vind je hier. Je ziet een regel die begint met JImport. Deze functie word gebruikt dat bestanden van het Joomla Framework worden geladen die nodig zijn voor het component. Dit statement zal de class laden voor de basis van ons model. De punt ( . ) word gebruikt als directorie scheiders. En het laatste deel is het bestand dat geladen moet worden. De bestanden worden relatief geladen ten opzichte van de bibliotheek directory's. Dit bestand geeft de basis class definitie voor ons model, welke deze classe zal uitbreiden met zijn eigen functionaliteit. Nu we het model hebben, moeten we onze view aanpassen zodat deze de begroeting zal ophalen. Het Model gebruiken. Het Joomla Framework is zo opgezet dat de controller automatisch het model zal laden, die dezelfde naam heeft als de view, en zal deze daarin doorzetten. Omdat onze view 'hello' heet, zal ons hello model, geladen worden en in de view worden geladen. Op die manier kunnen we makkelijker een reference naar ons model maken door gebruik te maken van de JView::getModel() methode. Als we deze benamingsconventie niet hadden gebruikt dan zouden we de naam van het model kunnen doorgeven aan deze functie. Onze voorgaande versie van de view had: $greeting = "Hello World"; Als we gebruik willen maken van ons model doen we dit: $model=&$this->getModel(); $greeting = $model->getGreeting(); De nieuwe versie van de View ziet er dan zo uit.(popup) Deze zullen we dan ook toe moeten voegen aan ons XML installatie bestand. We voegen dan de volgende regel toe: <filename>models/hello.php</filename> Nu hebben we een simpel MVC component. Elk element is erg simpel op dit moment, maar geeft veel flexibiliteit en kracht. Op naar deel III waar we met Database gaan werken ! (Joepie lijkt me hier wel op zijn plaats)
|