PHPackages                             hschletz/doxygen-phpdoc - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. hschletz/doxygen-phpdoc

AbandonedArchivedLibrary[Utility &amp; Helpers](/categories/utility)

hschletz/doxygen-phpdoc
=======================

PHPDoc support for Doxygen

v1.0.1(7y ago)17902MITPHP

Since Oct 13Pushed 7y ago1 watchersCompare

[ Source](https://github.com/hschletz/doxygen-phpdoc)[ Packagist](https://packagist.org/packages/hschletz/doxygen-phpdoc)[ Docs](https://github.com/hschletz/doxygen-phpdoc)[ RSS](/packages/hschletz-doxygen-phpdoc/feed)WikiDiscussions master Synced today

READMEChangelog (2)Dependencies (1)Versions (3)Used By (0)

PHPDoc support for Doxygen
==========================

[](#phpdoc-support-for-doxygen)

This package provides [PHPDoc](https://en.wikipedia.org/wiki/PHPDoc) support for [Doxygen](http://doxygen.nl/). It contains:

- *doxygen-phpdoc-filter.php:* An input filter for Doxygen, required to parse PHPDoc comments
- *Doxyfile.sample:* A sample configuration file fragment for Doxygen with the required options
- *doxygen-phpdoc-fixhtml.php:* A postprocessor for the generated HTML output

It works best with plain PHPDoc comments. The filter may get confused when Doxygen elements get mixed in.

Installation
============

[](#installation)

The package can be installed standalone or as a composer dependency for a project.

Standalone package
------------------

[](#standalone-package)

Download the package and install is dependencies via [composer](https://getcomposer.org):

```
cd doxygen-phpdoc
composer install

```

As a composer dependency
------------------------

[](#as-a-composer-dependency)

To include the package in another project, add it as a dependency:

```
cd MyProject
composer require --dev hschletz/doxygen-phpdoc

```

Usage
=====

[](#usage)

The package provides an input filter which must be activated in the project's Doxygen config file. Also activate the JAVADOC\_AUTOBRIEF option:

```
FILTER_PATTERNS        = *.php=vendor/bin/doxygen-phpdoc-filter.php
JAVADOC_AUTOBRIEF      = YES

```

Adjust file extensions and script path as necessary. After setting project-specific options in the config file, Doxygen should be able to compile the documentation.

The output is already usable, but with some limitations. The postprocessor can fix some of the issues for the HTML output. Invoke it with the output directory:

```
vendor/bin/doxygen-phpdoc-fixhtml.php doc/api/html

```

The input filter
================

[](#the-input-filter)

Doxygen invokes the input filter, passing the source file name, and processes its output instead of the original source. Any modifications by the input filter are temporary and the original source is not touched.

The filter treats every occurrence of a single backslash within a documentation block as a namespace separator and replaces it with `::`, which is required for correct Doxygen operation. For this reason, only PHPDoc's "@"-Syntax will work for any tags. Multiple consecutive backslashes are left untouched, and Doxygen will interpret them as escaped backslashes.

Some PHPDoc tags, like `@var`, `@property`, `@return` or `@link`, have a different meaning or syntax in Doxygen. These commands are rewritten in a way that is correctly handled. In some cases, the behavior can only by emulated to some degree. For example, there is no full equivalent for `@internal`, which gets replaced by `@private`. The same goes for some commands which don't exist in Doxygen, like `@property-read` (put description in a `@remark`) or `@license`(replace with `@copyright`).

Inline tags, like `{@inheritdoc}`, are unknown to Doxygen. The curly braces are removed to prevent them from appearing in the output.

The file header gets properly marked as such. Otherwise it would be interpreted as documentation for the namespace, which is uncommon in PHPDoc.

Doxygen does not understand typed arrays, like `string[]` as datatypes for parameters and return values. These get replaced by `array` and the full typehint is added to the description.

The HTML postprocessor
======================

[](#the-html-postprocessor)

The postprocessor applies some fixes to the HTML output. Namespace separators which are partially output as "::" get converted to a backslash where possible. Some occurrences may remain because not all of them can be reliably detected.

When linking to the PHP documentation for builtin classes with the help of a tagfile, Doxygen makes the links unusable by appending a .html suffix. These links get fixed.

Known issues
============

[](#known-issues)

- Not all PHPDoc tags are supported yet.
- The input filter only works properly on files that contain a namespace. Support for code without namespace may be added in the future.
- Doxygen will issue some warnings even for otherwise correct code. These warnings could be filtered out by a wrapper script.

warning: Detected potential recursive class relation
----------------------------------------------------

[](#warning-detected-potential-recursive-class-relation)

This message occurs when a class inherits (directly or indirectly) from a class with the same name from a different namespace. This is a bug or limitation in Doxygen.

warning: Internal inconsistency: scope for class ... not found!
---------------------------------------------------------------

[](#warning-internal-inconsistency-scope-for-class--not-found)

This message is caused by some external documentation from a tagfile for unknown reasons.

warning: Illegal command ... as part of a &lt;dt&gt; tag
--------------------------------------------------------

[](#warning-illegal-command--as-part-of-a-dt-tag)

This is a known Doxygen bug which occurs with methods marked deprecated having a namespaced class typehint for a parameter. The typehint will not show on the "Deprecated List" page. The documentation is otherwise correct.

WARNING: could not parse ...
----------------------------

[](#warning-could-not-parse-)

This message is generated by the postprocessor on invalid XHTML files. The invalid markup can be caused by insufficient escaping or otherwise malformed docblocks. Check the source files for invalid syntax.

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~6 days

Total

2

Last Release

2814d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1310065?v=4)[hschletz](/maintainers/hschletz)[@hschletz](https://github.com/hschletz)

---

Top Contributors

[![hschletz](https://avatars.githubusercontent.com/u/1310065?v=4)](https://github.com/hschletz "hschletz (4 commits)")

### Embed Badge

![Health badge](/badges/hschletz-doxygen-phpdoc/health.svg)

```
[![Health](https://phpackages.com/badges/hschletz-doxygen-phpdoc/health.svg)](https://phpackages.com/packages/hschletz-doxygen-phpdoc)
```

###  Alternatives

[christiankuri/laravel-favorite

Allows Laravel Eloquent models to implement a 'favorite' or 'remember' or 'follow' feature.

227484.2k6](/packages/christiankuri-laravel-favorite)[padosoft/php-oara

The goal of the Open Affiliate Report Aggregator (OARA) is to develop a set of PHP classes that can download affiliate reports from a number of affiliate networks, and store the data in a common format.

1811.4k1](/packages/padosoft-php-oara)[deltasystems/dewdrop

121.0k](/packages/deltasystems-dewdrop)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
