MVC model

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Daan s

Daan s

14/04/2019 10:09:23
Quote Anchor link
Sinds ik gestart ben met het eigen MVC model te gaan gebruiken loop ik nog op een enkel ding vast. Dit heeft ongetwijfeld meer met het totaalplaatje te maken dan mijn actuele programmeer skills.

Wanneer ik ga kijken naar de OOP tutorial op phptuts (http://www.phptuts.nl/view/45/3/), welk gedeeltelijk op PHPhulp staat, dan staat er het volgende: `Elk zelfstandig naamwoord is een object`.

Stel we hebben de volgende mappen / bestanden

-> Views
Page.php
-> Models
PageModel.php
-> Controllers
PageController.php



De view spreekt voor zich. Alleen loop ik nu tegen het volgende probleem aan. Zoals hierboven gezegd heb ik het idee dat het Model (PageModel.php) voor een enkel object staat. Bijvoorbeeld één pagina met een titel en wat content.

Maar stel je wil een overzicht maken met verschillende pagina's (bijvoorbeeld een contactpagina, een linkpagina, et cetera). Hoe doe je dit dan?

Kun je dit uit een enkel model halen?
En is er een goed voorbeeld van de structuur (mappen + bestanden).
Gewijzigd op 14/04/2019 11:51:59 door Daan s
 
PHP hulp

PHP hulp

19/06/2019 18:10:34
 
Frank Nietbelangrijk

Frank Nietbelangrijk

14/04/2019 12:57:05
Quote Anchor link
De model fungeert als een laag tussen (de rest van) je applicatie en de database. Ik ben gewend -en dat hoeft niet perse een gouden regel te zijn- om een model aan te maken per tabel in de database. Dus stel je hebt in de database een tabel 'users' dan maak ik een UserModel welke ik vul met methods die ik nodig heb. Bijvoorbeeld de methods 'getAllUsers()' en 'getAdmins()' welke beiden een array met User objecten terug leveren. Wel ontstaan hierin overlappingen doordat sommige tabellen in de database 'keuzenlijstjes' zijn voor andere tabellen (bijv. een tabel provincies die alle provincies bevat en gebruikt wordt bij het aanmaken van een gebruiker). Ik ga dan geen ProvinceModel class maken maar integreer dit gewoon mee in de UserModel met een JOIN in de query.

Verder gebruik ik die UserModel class waar ik dat wil. In het login-systeem, in het berichten-systeem en als ik wil op iedere pagina.

Toevoeging op 14/04/2019 13:02:56:

Overigens heeft een goed framework natuurlijk een base model die in de belangrijkste behoeften voorziet zoals:

-findAll()
-findBy(array $criteria, array|null $orderBy = null, int|null $limit = null, int|null $offset = null)
-findOneBy(array $criteria, array $orderBy = [])
-count(array $criteria)

Toevoeging op 14/04/2019 13:06:02:

Enne.. eigen framework? reinventing the wheel?

Een stoomcursus Symfony of Laravel duurt minder lang ;-)
Gewijzigd op 14/04/2019 13:08:52 door Frank Nietbelangrijk
 



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.