Modulair werken
Ik ben momenteel aan het proberen om een OOP systeempje te maken die met modules werkt. Dus een kleine 'core' die modules inlaadt. De modules inladen is in feite geen probleem.
Nu maak ik op een pagina een nieuwe instantie van Core aan. Ik koppel er dan Smarty aan ($core->tpl = new Smarty;). Nu zal automatisch de module 'standaard' ingeladen worden door het systeem. Dus de het klassebestand wordt required zegmaar. Nu wil ik vanuit dat bestand de core kunnen aanspreken. Dus bijvoorbeeld om vanuit die klasse een template in te laden..
Ik heb even in een webshop zitten bladeren en gekeken hoe ze het daar doen, ze gebruiken $GLOBALS['core']. Maar als ik mij niet vergis, heeft iemand eens gezegd dat dat de oude manier van werken is. Hoe los ik dit probleem het best op?
Cedric
Gewijzigd op 01/01/1970 01:00:00 door Cedric
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Gewijzigd op 01/01/1970 01:00:00 door Christiaan Baartse
Nuttig leesvoer over Singleton, vooral het onderdeel "Nadelen", aangezien je het over modulair werken hebt...
Ik zou ook wel eens de beste manieren zien van modulair werken. Ik wil nl een CMS ontwikkelen en eventueel hier losse modules voor schrijven. Zodat je het helemaal custom kan aanpassen.
Dan zou ik daarbij een mapje maken waarin je 'modules' kan zetten, gewoon submapjes met een naam die eindigt op '.module', en allemaal een bepaald ini-bestand bevatten met een vaste naam, bijvoorbeeld 'manifest.ini'. Dat ini-bestand bevat de gegevens zoals het versienummer, de naam, de maker, en een korte beschrijving van wat de module aanbiedt. Vanuit het configuratiepaneel kan je ze aan- en uitzetten. Die instellingen kan je bijvoorbeeld opslaan in de database, of in een SQLite databaseje.
De core laadt bij iedere aanroep 1 bestandje van alle geactiveerde modules. Iedere module levert zo'n bestandje aan en dat bestandje bevat alle informatie die nodig is om de module eventueel te gebruiken. Bijvoorbeeld commando's die de module aan bepaalde events hangt, of die regels in de router stopt zodat de module kan worden aangeroepen, of configuratiepanelen toevoegt aan het grote configuratiepaneel.
Anyway, ik zou gewoon eens kijken naar hoe ze het bij Wordpress oplossen. Ik vind het zelf een heel prettig systeem om mee te werken, het is ook behoorlijk simpel om mee te werken en je hebt veel vrijheid. En volgens mij is het ook niet langzaam.
Met een CMS beheerst je naar mijn idee de inhoud van je site dus de backend. Daarintegen gebruik je een Framework voor je frontend.
Dit kan natuurlijk wel heel dicht met elkaar verweven zijn.
Gewijzigd op 01/01/1970 01:00:00 door Christiaan Baartse
Een CMS doet in het kort dit:
informatie ophalen of wegschrijven in een database.
Lijkt me juist met een framework goed op te vangen?
Die Core die ik beschrijf is ook niet het CMS zelf, maar een onderdeel. De core + alle modules is het CMS. De core + de hulpmiddelen om de modules te schrijven is het framework.