Dokumentacja kodu - Doxygen vs phpDocumentor

15 czerwiec 2007, autorstwa: 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:

  • phpDocumentorphpDocumentor - przykładowa dokumentacja
  • DoxygenDoxygen - przykładowa dokumentacja

    Doxygen - przykładowa dokumentacja

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: , |

Adres dla trackback. RSS dla komentarzy w tym wpisie.

Liczba komentarzy: 3

  1. Navision Says:

    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.

  2. Wrzasq Says:

    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?

  3. kozik Says:

    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 :).

Dodaj komentarz




Uwaga: Włączona jest moderacja komentarzy, więc nowy komentarz nie ukaże się bezpośrednio po jego wysłaniu.

Uwaga: Działa filtr antyspamowy. Jeśli umieścisz w komentarzu odnośniki, to może on zostać błędnie zakwalifikowany jako spam.