Difference between revisions of "Overzicht van de codebase"
m (Zet 'm in de WebCie categorie) |
(Voeg de helptekst van ./manage) |
||
(8 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
'''Dit artikel is WIV (Werk In Voortgang)!''' | '''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 (<code>scripts</code>), git hooks (<code>hooks</ | + | Hier staat alle code die door de site zelf gebruikt wordt. Alles hierbuiten zijn vooral extra dingen, zoals losse scripts (<code>scripts</code>), git hooks (<code>hooks</code>) en lokalisatie (<code>gettext</code>). |
− | == | + | == space/ == |
In deze map staat alle basis-infrastructuur voor de website, zoals alle constanten (<code>constants.php</code>, <code>specialconstants.php</code>) en algemeen bruikbare classes als <code>Page</code>. | In deze map staat alle basis-infrastructuur voor de website, zoals alle constanten (<code>constants.php</code>, <code>specialconstants.php</code>) en algemeen bruikbare classes als <code>Page</code>. | ||
− | |||
− | Een belangrijk bestand is <code>init.php</code>: dit is de main entry point voor elke request. Hier wordt zo'n beetje | + | Een belangrijk bestand is <code>init.php</code>: dit is de main entry point voor elke request. Hier wordt zo'n beetje alle code van toepassing met <code>require_once</code> geladen. |
− | + | ||
− | + | ||
+ | === benamite/ === | ||
[[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. | [[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. | ||
− | |||
− | == <code> | + | == 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 <code>Controller/</code>, views onder <code>View/</code> (of een paar onder <code>Views/</code>, want redenen), en de models onder <code>DBObject/</code> (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 <code>Generated/</code>-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 <code>docs/dia2php</code>. | ||
+ | |||
+ | <!-- TODO: Verzamelingen omschrijven? --> | ||
+ | |||
+ | == 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 == | ||
+ | Het scriptje <code>www/manage</code> is een makkelijke manier om te zorgen dat alle gegenereerde dingen en dependencies e.d. van je debug website in orde zijn. Deze staat in <code>www/</code> en niet <code>scripts/</code>, zodat het wat meer bij de hand is als je aan het ontwikkelen bent. Op het moment heeft het twee subcommando's: <code>build</code> en <code>update</code>. De ingebouwde helptekst legt die redelijk goed uit: | ||
+ | |||
+ | <code><pre> | ||
+ | $ ./manage --help | ||
+ | Gebruik: manage COMMAND [command-options] | ||
+ | |||
+ | Manage de buildable content van de site | ||
+ | |||
+ | Als zowel --enable-debug als --enable-demo niet gebruikt worden | ||
+ | wordt de configuratie gegenereerd voor een live-site | ||
+ | |||
+ | Commands: | ||
+ | build Configureert de website. Gebruikt de opties in het bestand install.config indien dit bestaat | ||
+ | update Update alle content in composer en bower en draait minify | ||
+ | |||
+ | Options: | ||
+ | --enable-debug Genereer de configuratie voor een debug-website | ||
+ | --enable-demo Genereer de configuratie voor een demo-website | ||
+ | --enable-realdb Zet de optie RealDB aan. RealDB defaults naar !debug | ||
+ | --hostname De naam van de site die geconfigureerd wordt. Defaults naar www.a-eskwadraat.nl | ||
+ | --libdir De locatie van de map lib. Defaults naar /mnt/wwwdebug/$USER/wwwdebug/www/../lib | ||
+ | --scriptsdir De locatie van de map scripts. Defaults naar /mnt/wwwdebug/$USER/wwwdebug/www/../scripts | ||
+ | --gettextdir De locatie van de map gettext. Defaults naar /mnt/wwwdebug/$USER/wwwdebug/www/../gettext | ||
+ | --spacedir De locatie van de map space. Defaults naar /mnt/wwwdebug/$USER/wwwdebug/www/space | ||
+ | --whoswho4db De naam de wsw4db om te bruiken. Defaults naar whoswho4 voor live en test_whoswho4 voor debug en demo | ||
+ | --boekendb De naam de boekendb om te bruiken. Defaults naar boeken voor live en test_boeken voor debug en demo | ||
+ | --benamitedb De naam de benamitedb om te bruiken. Defaults naar benamite voor live en test_benamite voor debug en demo | ||
− | + | </pre></code> | |
− | = | + | = scripts/ = |
− | + | TODO |
Latest revision as of 22:18, 2 October 2017
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
Het scriptje www/manage
is een makkelijke manier om te zorgen dat alle gegenereerde dingen en dependencies e.d. van je debug website in orde zijn. Deze staat in www/
en niet scripts/
, zodat het wat meer bij de hand is als je aan het ontwikkelen bent. Op het moment heeft het twee subcommando's: build
en update
. De ingebouwde helptekst legt die redelijk goed uit:
$ ./manage --help
Gebruik: manage COMMAND [command-options]
Manage de buildable content van de site
Als zowel --enable-debug als --enable-demo niet gebruikt worden
wordt de configuratie gegenereerd voor een live-site
Commands:
build Configureert de website. Gebruikt de opties in het bestand install.config indien dit bestaat
update Update alle content in composer en bower en draait minify
Options:
--enable-debug Genereer de configuratie voor een debug-website
--enable-demo Genereer de configuratie voor een demo-website
--enable-realdb Zet de optie RealDB aan. RealDB defaults naar !debug
--hostname De naam van de site die geconfigureerd wordt. Defaults naar www.a-eskwadraat.nl
--libdir De locatie van de map lib. Defaults naar /mnt/wwwdebug/$USER/wwwdebug/www/../lib
--scriptsdir De locatie van de map scripts. Defaults naar /mnt/wwwdebug/$USER/wwwdebug/www/../scripts
--gettextdir De locatie van de map gettext. Defaults naar /mnt/wwwdebug/$USER/wwwdebug/www/../gettext
--spacedir De locatie van de map space. Defaults naar /mnt/wwwdebug/$USER/wwwdebug/www/space
--whoswho4db De naam de wsw4db om te bruiken. Defaults naar whoswho4 voor live en test_whoswho4 voor debug en demo
--boekendb De naam de boekendb om te bruiken. Defaults naar boeken voor live en test_boeken voor debug en demo
--benamitedb De naam de benamitedb om te bruiken. Defaults naar benamite voor live en test_benamite voor debug en demo
scripts/
TODO