Overzicht van de codebase

From A-Eskwiki
Revision as of 00:23, 31 August 2017 by Daanr (Talk | contribs)

Jump to: navigation, search

Dit artikel is WIV (Werk In Voortgang)!

www/

Hier staat alle code die door de site zelf gebruikt wordt. Alles hierbuiten zijn vooral extra dingen, zoals losse scripts (scripts), git hooks (hooks) en lokalisatie (gettext).

space/

In deze map staat alle basis-infrastructuur voor de website, zoals alle constanten (constants.php, specialconstants.php) en algemeen bruikbare classes als Page.

Een belangrijk bestand is init.php: dit is de main entry point voor elke request. Hier wordt zo'n beetje alle code van toepassing met require_once geladen.

benamite/

Benamite is het routing systeem van de website. Het parset de URL van de request, en beslist op basis van de websitestructuur (die in de database staat) welke pagina er moet worden geladen. Lees voor meer details de gelinkte pagina.

WhosWho4/

Hier leeft het leeuwendeel van de website. Over het algemeen wordt hier de zogenaamde MVC-architectuur gevolgd: elke request wordt afgehandeld door een methode in een Controller-klasse die bepaalt wat er precies moet gebeuren en de juiste Model-data ophaalt. Vervolgens worden dan methodes in een View-klasse aangeroepen om de uiteindelijke pagina te bouwen. Dit wordt helaas niet altijd netjes gedaan; soms staat er view-code in een controller. De code is dan ook zo onderverdeeld: controllers staan onder Controller/, views onder View/ (of een paar onder Views/, want redenen), en de models onder DBObject/ (want ze komen allemaal uit de database). Ook hebben sommige delen van de website hun eigen map, zoals Bugweb. In die mappen wordt dan weer dezelfde MCV-structuur gebruikt.

Ook staat er op veel plekken een Generated/-map. Hierin zitten (vanzelfsprekend) gegenereerde klassen. Dat genereren gaat op basis van een bestand gemaakt met Dia, een tool voor UML-diagrammen (als je niet weet wat dat is, geen stress; als je een UML diagram ziet spreekt het redelijk voor zich). Het script hiervoor is docs/dia2php.


bookweb/

Hier woont de code van het oorspronkelijke Bookweb, het antieke gedrocht wat oorspronkelijk door leden gebruikt werd om boeken te bestellen. Op dit moment wordt het alleen gebruikt voor de verkoop van dictaten, kaartjes, enz. Binnenkort wordt het hopelijk vervangen door Boekweb2, wat ook al een tijdje in ontwikkeling is.

manage

TODO

scripts/

TODO