PHPDocumentor und UTF-8

Per Default erzeugt PHPDocumentor HTML-Seiten im ISO-Latin-1 Character-Set. Wer aber wie ich Quelltexte in UTF-8 schreibt und dementsprechend auch die JavaDoc/PHPDoc-Kommentare in UTF-8 ablegt, der bekommt in der Standard-Einstellung eine ziemlich unleserliche Dokumentation.

Um die HTML-Dokumentation in ordentlicher Darstellung zu bekommen, muß lediglich eine Template-Datei angepaßt werden. Es handelt sich um die Datei header.tpl. Diese liegt bei mir (Debian Etch, PHPDocumentor via PEAR installiert) im Verzeichnis /usr/share/php/data/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates.

Zunächst sollte man aber eine Backup-Datei anlegen, man weiß ja nie:

cp header.tpl header.backup

Die zu ändernden Zeilen der Datei lauten:

<?xml version="1.0" encoding="iso-8859-1"?>
[...]
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
[...]

Hier müssen die Zeichensätze auf UTF-8 geändert werden. Da XML-Dateien grundsätzlich in UTF-8 geschrieben werden, kann die Angabe des Zeichensatzes im XML-Tag auch komplett weggelassen werden.

Die geänderten Zeilen lauten dann:

<?xml version="1.0" ?>
[...]
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
[...]

Damit wird die Dokumentation wieder sauber dargestellt. Happy coding :)

Weitere Templates

Funktioniert bei mir nur, wenn ich auch die Templates index.tpl, top_frame.tpl und blank.tpl im selben Verzeichnis anpasse.

Dankeschön!

Das hat mir ein bißchen Zeit gespart :)

Danke

Die HTML-Ausgabe klappt damit ja schon mal ganz gut,
aber gibt es auch eine Lösung für die PDF-Ausgabe?

Fein, danke :-) Carsten.

Fein, danke :-)

Carsten.

Danke ...

... hat bei mir funktioniert!

Ich frage mich nur, wie das nach einem Update von PEAR bzw. phpDocumentor aussieht.
:-)

Gruss Stefan

Geänderte Templates und Update von PHPDocumentor

Ein Update von PHPDocumentor wird wahrscheinlich die geänderten Templates wieder überschreiben und den ursprünglichen Zustand wieder herstellen. Damit die Templates so ein Update überleben, ist es wohl am einfachsten, die geänderten Templates in ein separates Verzeichnis zu kopieren.

Um beispielsweise das "phpdoc.de"-Template dauerhaft UTF8-tauglich zu machen, müßte man in etwa folgendes machen:
cd /usr/share/php/data/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates
mkdir phpdoc.de.utf8
cp phpdoc.de/* phpdoc.de.utf8

Der Aufruf von PHPDocumentor erfolgt dann mittels:
phpdoc -o "HTML:frames:phpdoc.de.utf8" ...

:-)