Goede avond allemaal,

Ik ben al enige tijd bezig met het uitdenken van een CMS. Ik probeer zoveel mogelijk functionaliteiten in te voegen zodat ik gelijk op veel punten terecht kom en zoveel mogelijk leer. Dat is immers het voornaamste doel van dit project.

Nu heeft Wouter J mij in een vorig topic behoorlijk geholpen. Aan de hand hiervan ben ik toch nog verder gaan zoeken naar uitleg over interfaces en abstract classes. Ik vroeg mij nu af gebruik ik het nu niet overkill? Is mijn huidige opzet wel OOP? Zou ik hiermee verder kunnen als ik een simpele cms wil bouwen? Mis ik dingen?

Mij nieuwe opzet is hier te vinden: klikerdeklik

Altijd in voor opbouwende kritiek.

Gr, Milo
Nee, dat heb je helemaal goed.
God staat mij bij, Mwoehahaha.

Als ik mij dan niet vergis is dit wat je graag zou willen zien?

MapperInterface

UserInterface
User [color=blue]implements[/color] UserInterface
Authentication

RoleInterface
Role [color=green]abstract[/color] [color=blue]implements[/color] RoleInterface
Moderator [color=red]extends[/color] Role
Administrator [color=red]extends[/color] Role

UserMapper [color=blue]implements[/color] MapperInterface


PageInterface
Page [color=blue]implements[/color] PageInterface
News [color=red]extends[/color] Page

PageMapper [color=blue]implements[/color] MapperInterface
NewsMapper [color=blue]implements[/color] MapperInterface


MediaInterface
Image [color=blue]implements[/color] MediaInterface
ImageMapper [color=blue]implements[/color] MapperInterface

Bij de media interface kunnen altijd andere media klasse worden toegevoegd, bijvoorbeeld een music klasse...


Wat betreft de database denk ik dat het handig is om wel een database handler te maken. Zo kan ik makkelijk van database soort wisselen... Hier zal ik dan uit moeten gaan van de standaard functies. Connectie, Query, fetch_* etc.
UserMapper extends User

Nee, UserMapper IS GEEN User. UserMapper MAAKT EEN User.

Wat betreft de database denk ik dat het handig is om wel een database handler te maken. Zo kan ik makkelijk van database soort wisselen... Hier zal ik dan uit moeten gaan van de standaard functies. Connectie, Query, fetch_* etc.

Ja, of je gebruikt een al bestaande library, zoals Doctrine DBAL. Dit is zeg maar een erg mooie open source database klasse.
Sorry Wouter, ik ben echt aan het slapen, de mappers moeten uiteraard geïmplementeerd worden bij de mapperinterface

De waslijst die hier terecht gekomen is na een edit heb ik even in een word document geplaatst.
In bovenstaande plan loop ik vast.

Een Authentication class is er voor om te kijken of de gebruiker wel is wie hij zegt dat hij is. Als ik een pagina ophaal door middel van een paginatitel, welke meegegeven is via de URL, moet ik de pagina dan niet ook nakijken met bijvoorbeeld een PageAuthentication? Dat ik dan huidige Authentication class hernoem tot een UserAuthentication?
Of behoort dit gewoon tot de fatsoenlijke foutafhandeling binnen de PageMapper?
Mocht het wel het geval zijn, dan heb ik er ook een nodig voor nieuws als ik bijvoorbeeld al het nieuws op wil halen van een bepaalde auteur?

De Authentication klasse werkt samen met de Mappers, maar om iets op te halen met een specifiek ID moet ik daarvoor dan nog een extra methode voor schrijven? Ik neem aan van niet, dat het dan geregeld wordt door te kijken of er een ID meegezonden is of niet...

Reageren