Ik heb gekozen voor het subforum 'programmeren', omdat ik al het een en ander geschreven heb, maar wat vragen heb over een aantal dingen. Ik zal bij het begin beginnen.
Inleiding
Ik mijzelf een aantal jaar geleden leren programmeren in PHP. Omdat ik zelf niet in de ict zit (een simpele student gymleraar, met een wat uit de hand gelopen hobby), heb ik er nooit veel behoefte aan gehad 'perfect' te coderen. Echter ben ik sinds een paar jaar webmaster van de vereniging hier in de buurt en ben ik begonnen met deze opnieuw opzetten. Ik heb alles dus zelf uit moeten vinden, waar ik veel van geleerd heb, maar ik zou graag willen weten of ik een beetje in de goede richting zit.
Waarom wil ik dat weten?
Ik ben bezig met een eigen CMS'je en werk vanuit wat classes en functies bouw ik de website op. De vereniging is nu zo blij dat ik de nieuwe website opzet, dat ze mij er een behoorlijke vrijwilligersvergoeding voor willen geven. Ik zit dan wel zo in elkaar, dat ik dan ook een goed product af wil leveren. Daarnaast ben ik benaderd door verschillende mensen die er ook interesse in hebben (voor een nieuwe website). Ik wil graag een goed systeem bouwen, waar ik makkelijk een nieuwe layout over kan zetten en zo kan aanleveren.
De website
Ik stuur alle aanvragen door naar de index van de website. Deze pagina haalt de opgevraagde url uit elkaar en laad de nodige functies en classes en met de gegevens maakt de class cms er met een template een pagina van.
Er zit echter een verschil in een aantal pagina's en classes. De standaard pagina's hebben 1 class 'dinamisch', welke er voor zorgt dat 'nieuws', 'fotos', 'uitslagen' en 'verslagen' getoond worden. De class 'database' handelt alles met de database af. Daarnaast blijven er nog pagina's over die niet door deze 'dinamische' class getoond kunnen worden. Deze include ik op de volgende manier:
Zoals je ziet heb ik gekozen om de verschillende pagina's in verschillende directory's te plaatsen, om een duidelijk overzicht te behouden. Als de module niet bestaat krijg je een foutmelding via de class 'pagina'.
Elke module wordt standaard aangesproken met een $class->index($url). (de url is een array van de gevraagde url). De functie index van de class'en gaat met behulp van de url uitzoeken wat er precies getoond moet worden en returnd de inhoud van de pagina. De class 'cms' maakt van de template en de inhoud van de pagina één geheel en print deze uit.
Wat wil ik weten?
Ben ik op een goede manier aan het werk? Gebruik ik de classes waarvoor ze bedoelt zijn, of sla ik de plank helemaal mis?
Waarom gebruik ik geen bestaande frameworks?
Omdat ik graag het wiel zelf uitvind en daar de tijd voor heb en denk dat ik hier het meeste van leer. Daarnaast is het administratie gedeelte complex met rechten en heb ik zo niet het idee dat ik dat in een bestaande framework kan bouwen. Daarnaast heb ik me daar ook niet in verdiept, ik zie door de bomen dan ook het bos niet in wat nou een goede keuze is en hoe ik er direct mee aan de slag kan.
Inleiding
Ik mijzelf een aantal jaar geleden leren programmeren in PHP. Omdat ik zelf niet in de ict zit (een simpele student gymleraar, met een wat uit de hand gelopen hobby), heb ik er nooit veel behoefte aan gehad 'perfect' te coderen. Echter ben ik sinds een paar jaar webmaster van de vereniging hier in de buurt en ben ik begonnen met deze opnieuw opzetten. Ik heb alles dus zelf uit moeten vinden, waar ik veel van geleerd heb, maar ik zou graag willen weten of ik een beetje in de goede richting zit.
Waarom wil ik dat weten?
Ik ben bezig met een eigen CMS'je en werk vanuit wat classes en functies bouw ik de website op. De vereniging is nu zo blij dat ik de nieuwe website opzet, dat ze mij er een behoorlijke vrijwilligersvergoeding voor willen geven. Ik zit dan wel zo in elkaar, dat ik dan ook een goed product af wil leveren. Daarnaast ben ik benaderd door verschillende mensen die er ook interesse in hebben (voor een nieuwe website). Ik wil graag een goed systeem bouwen, waar ik makkelijk een nieuwe layout over kan zetten en zo kan aanleveren.
De website
Ik stuur alle aanvragen door naar de index van de website. Deze pagina haalt de opgevraagde url uit elkaar en laad de nodige functies en classes en met de gegevens maakt de class cms er met een template een pagina van.
Er zit echter een verschil in een aantal pagina's en classes. De standaard pagina's hebben 1 class 'dinamisch', welke er voor zorgt dat 'nieuws', 'fotos', 'uitslagen' en 'verslagen' getoond worden. De class 'database' handelt alles met de database af. Daarnaast blijven er nog pagina's over die niet door deze 'dinamische' class getoond kunnen worden. Deze include ik op de volgende manier:
PHP:
1
2
3
4
5
6
7
8
9
| function __autoload($class) { switch ($class){ case (in_array($class,array("webbeheer","administratie"))); $file = 'admin/'; break; case (in_array($class,array("cms","database","settings"))); $file = 'core/'; break; default; $file = 'modules/' . $class . '/'; break; } if(file_exists($file)) require_once $file . $class . '.php'; else require_once 'modules/pagina/pages.php'; } |
Zoals je ziet heb ik gekozen om de verschillende pagina's in verschillende directory's te plaatsen, om een duidelijk overzicht te behouden. Als de module niet bestaat krijg je een foutmelding via de class 'pagina'.
Elke module wordt standaard aangesproken met een $class->index($url). (de url is een array van de gevraagde url). De functie index van de class'en gaat met behulp van de url uitzoeken wat er precies getoond moet worden en returnd de inhoud van de pagina. De class 'cms' maakt van de template en de inhoud van de pagina één geheel en print deze uit.
Wat wil ik weten?
Ben ik op een goede manier aan het werk? Gebruik ik de classes waarvoor ze bedoelt zijn, of sla ik de plank helemaal mis?
Waarom gebruik ik geen bestaande frameworks?
Omdat ik graag het wiel zelf uitvind en daar de tijd voor heb en denk dat ik hier het meeste van leer. Daarnaast is het administratie gedeelte complex met rechten en heb ik zo niet het idee dat ik dat in een bestaande framework kan bouwen. Daarnaast heb ik me daar ook niet in verdiept, ik zie door de bomen dan ook het bos niet in wat nou een goede keuze is en hoe ik er direct mee aan de slag kan.