Doxygen

From A-Eskwiki
Jump to: navigation, search

Doxygen is een programma dat volautomatisch code omzet in klikbare documentatiepagina. De documentatie voor de livesite is te vinden op [1].

Persoonlijke docusites

WORK IN PROGRESS

Dit gaat over het plan van User:Timb om per debugsite documentatie te genereren. Dan zou voor een $bla-debug de site $bla-docs-debug.a-eskwadraat.nl beschikbaar moeten zijn.

Gebruik

./manage docs genereert documentatie op basis van je huidige wwwdebug. TODO: automatiseer dit dmv een script elke nacht ofzo?

Dit zeurt over een aantal files die Doxygen zou moeten negeren maar dat niet doet. Geen idee waarom.

Doxygen updaten

Omdat CentOS ongelofelijk oud is is de laatste versie van doxygen op de package manager 1.6.1. Om een nieuwere versie te installeren zijn er 2 mogelijkheden:

  • Deinstaalleer doxygen als dit nog geinstalleerd is met yum: sudo yum remove doxygen
  • Download de binary van http://www.stack.nl/~dimitri/doxygen/download.html
  • Verplaats de binary naar /usr/bin/doxygen (Zorg voor -rwxr-xr-x permissies met de file owner as root)

Omdat vooraf gemaakte binaries saai zijn en zo kunnen we het ook zelf compilen!

git clone https://github.com/doxygen/doxygen.git
cd doxygen
mkdir build
cd build
cmake -G "Unix Makefiles" ..
make
make install

Verplaats dan de binary van /usr/local/bin/doxygen naar /usr/bin/doxygen

PHPDoc

We zouden ook phpdoc kunnen gebruiken. Binnen de PHP-community lijkt het iets gebruikelijker om phpdoc te gebruiken, namelijk. Bovendien ziet het er gewoon cooler uit :D

Helaas crasht het bij het genereren van documentatie omdat het meer dan 2GB aan RAM / schijfruimte nodig heeft om de hele WhosWho te documenteren. Dus vandaar toch maar gewoon doxygen...

Installatie

pear install phpdoc op de vm-www-debug Oh nee, dat is niet stabiel over composer updaten.

Zet het volgende in je composer.json

"require-dev": {
    "phpdocumentor/phpdocumentor": "2.*"
}

en run ./composer update. Dit kost even want het moet erg veel dependencies naar binnen slurpen.