Dokumentacja kodu - Doxygen vs phpDocumentor
kozik Dłuższy czas używałem phpDocumentor do tworzenia dokumentacji z kodu PHP. Był wygodny i tworzył poprawną dokumentację. Zarówno do mniejszych projektów jak i do wyplucia doc dla www.pcformat.pl. Wkurzał mnie brak natywnej obsługi jakiejkolwiek innej strony kodowej poza ISO-8859-1, ale dało się to przeżyć. Jednak obwieszczeniem “Fatal error: Allowed memory size of 134217728 bytes exhausted” postawił sprawę jasno - nie jest nam po drodze!
Zainteresowałem się już jakiś czas wcześniej Doxygen, ale początkowo zniechęciła mnie informacja na stronie o średnim wsparciu dla kodu PHP. Przymierzyłem się do niego ponownie i… to była właściwa decyzja.
- Konfiguracja jest bardzo prosta - doxygen -g wygeneruje nam bardzo czytelny plik konfiguracyjny z komentarzami, który trzeba przejrzeć i ustawić co poniektóre zmienne. Banał.
- Język PHP obsługuje bardzo dobrze.
- Potrafi wyciągnąć wszystkie klasy, metody, funkcje, pola i zmienne (również zmienne lokalne!).
- Działa błyskawicznie - napisany jest w C++. Tym samym nie wymaga żadnego interpretera (np. PHP jak w przypadku phpDocumentora).
- Obsługuje UTF-8 bez zająknięcia.
- Można łatwo zdefiniować co ma parsować (jaki typ plików, jakie katalogi).
- Może robić dokumentację z kodem źródłowym lub bez niego. W pierwszym przypadku kod źródłowy będzie przeparsowany - metody/funkcje/zmienne itp. będą linkami do ich opisu w dokumentacji!
- I wiele innych istotnych cech (pewnie nie wszystkie możliwości poznałem).
Jeśli jesteś ciekaw jak to wygląda, to zajrzyj do dokumentacji projektu K-charts.
Oto screeny:
P.S. Choć w Gentoo ebuild wymaga Graphviz, to nie jest to prawda. Niezależnie jaki kit ktoś będzie Ci wciskał - Doxygen nie wymaga Grpahviz-a i nie trzeba go instalować.
Wysłano w Blog - Web | Tags: open-source, programowanie |

czerwiec 18th, 2007 at 15:43
Sam do tej pory używalem phpDocumentatora, dzięki, przetestuje ten Doxygen bardziej, wydaje się być bardziej rozwinięty pod wzgledem mozliwości, niby rzekomego kiepskiego wsparcia dla php.
lipiec 24th, 2007 at 22:10
Też mam takie same rozterki - używam phpDocumentora, chociaż mam zainstalowany doxygen i chciałem się na niego przerzucić. Ale mam problemy pewne, może to dlatego, że mój kod jest w PHP5 (praktycznie zupełnie co innego niż PHP4 - wykorzystuje ile się da). Jak ze wsparciem dla PeHaPa5tki?
lipiec 24th, 2007 at 22:19
Wątpię, zeby problemy wynikały z użycia PHP5… W sumie nie napisałem tego we wpisie, bo dla mnie PHP5 jest od dawna już oczywistością, więc może wyraźniej to teraz zaznaczę - wpis, przemyślenia i doświadczenia z Doxygenem tyczą się tylko i wyłącznie PHP5.
Różnic w składni pomiędzy piątką a czwórką wielu nie było - tylko dodanie pewnych podstawowych elementów składniowych w obiektowym podejściu (grubą przesadą jest twierdzenie “praktycznie zupełnie co innego”). Sam Doxygen został napisany z myślą m.in. o C++ i Javie, więc z tymi elementami programowania obiektowego w PHP5 nie ma prawa mieć problemu… no i nie ma :).