PHPackages                             smartfactory/phpdoxy - 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. smartfactory/phpdoxy

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

smartfactory/phpdoxy
====================

Documentation Generator for PHP

1.0.8(5mo ago)030MITPHPPHP &gt;=8.4

Since May 28Pushed 5mo ago1 watchersCompare

[ Source](https://github.com/oschildt/PhpDoxy)[ Packagist](https://packagist.org/packages/smartfactory/phpdoxy)[ RSS](/packages/smartfactory-phpdoxy/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (9)Dependencies (5)Versions (10)Used By (0)

PhpDoxy
-------

[](#phpdoxy)

PhpDoxy is a performant and efficient generator for handful PHP documentation with robust checking for typing errors, missing descriptions, dead references etc.

### Example

[](#example)

### Requirements

[](#requirements)

- PHP 8.4+

### Installation

[](#installation)

```
composer require "smartfactory/phpdoxy"

```

**composer.json**

```
{
  ...

  "require": {
    "php": ">=8.4",
    "smartfactory/phpdoxy": ">=1.0.8"
  }

  ...
}

```

### Key features

[](#key-features)

- Detailed reporting of the object statistics by the processing.
- Detailed reporting of the warning and errors like typing errors, missing descriptions, dead references etc. with referecne to the source file and line.
- Smart resolving of the short object names, based on the context, and linking recognized objects to their documentation.
- Ability to include user defined files into the documentation.
- Useful object lookup, displaying results while typing, and direct jump to the found object (no serverside logic necessary, pure JavaScript solution).
- Formatted source code files are also included as documentation. Each object has a reference to the source file and the line. The developer does not need to go to the real source files and look for the implementation details, he can directly jump to and study it in the documentation.
- Summarizing changes, todos and deprecated notes in a special page *Log*.
- It can be run from WEB and command line.
- Customizing look and feel of the documentation through adjusting the template or extending the renderer.

### Supported tags

[](#supported-tags)

- @author
- @copyright
- @deprecated
- @ignore
- @internal
- @license
- @link
- @package
- @param
- @return
- @see
- @since
- @throws
- @todo
- @uses &amp; @used-by
- @var
- @version

### Usage

[](#usage)

The configuration for the PhpDoxy has to be placed to the configuration file *phpdoxy\_config.xml*. In the case of command line usage, the configuration file may have arbitrary name.

The configuration file should be placed in the working directory of the script. In the case of command line usage, the configuration file could be passed as parameter with a valid relative or absolute path.

#### WEB

[](#web)

There is an example script in *examples/generate.php*.

```

    PhpDoxy - Documentation Generation

    window.scrollTo(0, 10000000);

```

1. Put the script to the directory of your application. Ensure that the including of the *vendor/autoload.php* is valid.
2. Put the configuration file *phpdoxy\_config.xml* to the directory of your application and specify there the source directory with your code to be documented and the target directory for the generated documentation.
3. Run the *generate.php* from your browser.

#### Command Line

[](#command-line)

The composer creates a "binary" script *vendor/bin/phpdoxy* in the vendor directory. You can call it from command line like this:

```
vendor/bin/phpdoxy phpdoxy_config.xml

```

If the configuration file resides in the working directory, it can be omitted by call.

### Configuration

[](#configuration)

The configuration for the documentation generation is setup in the XML file *phpdoxy\_config.xml*.

```

    SmartFactory Library

    test_src
    test_docs
    default

            add_doc\structure.html

```

**title**

The name of your project or library.

**source**

The source directory wuth your code to be documentated. The path can be either absolute or relative. If the path is relative, the PhpDoxy tries to find the path based from the directory containing the configuration file and from the working directory.

**target**

The target directory for the generated documentation. The path can be either absolute or relative. If the path is relative, the PhpDoxy tries to find the path based from the directory containing the configuration file and from the working directory.

**template**

The name of the template to be used for the generation. PhpDoxy has the directory *templates* in its base directory. There, the templates reside. Alernatively, you can specify absolute or relative path to the template. If the path is relative, the PhpDoxy tries to find the path based from the directory containing the configuration file and from the working directory.

**user\_files**

This part is optional and should be used if you want to include your own files into the documentation. You should set the following data:

- The title for the contents of your file.
- The short menu title.
- The path to the file with the contents. The path can be either absolute or relative. If the path is relative, the PhpDoxy tries to find the path based from the directory containing the configuration file and from the working directory.

### Demo

[](#demo)

1. Git-clone the demo application and run 'composer update'.
2. Run *generate.php* from your browser or *generate.cmd/generate.sh*.
3. Study the source code in the directory *src* and the resulting documentation in the directory *docs*.

### Implementation details

[](#implementation-details)

The documentation generation is divided in two parts:

- Parsing and creating data model.
- Generating the documentation files based on the data model.

The *PhpDocParser* parses the source files and creates a *dictionary* (a connected graph) of objects with recursive linking to each other by reference. Do not try to dump it! It is circular recursive.

This *dictionary* is a pure data model with complete infromation about all objects and their relations, which can be used for the generation of the documentation.

The *PhpDocGenerator* ueses the *dictionary* and generates the documentation. It is responsible for visual presentation and structuring of the documentation.

###  Health Score

42

—

FairBetter than 90% of packages

Maintenance70

Regular maintenance activity

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity71

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 ~160 days

Recently: every ~93 days

Total

9

Last Release

174d ago

PHP version history (2 changes)1.0.0PHP &gt;=8.0

1.0.5PHP &gt;=8.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/60dcf712e8e2ffb570e4bf3aec1ac9369e7aaa9690c900bfccc04c54b3f48bab?d=identicon)[oschildt](/maintainers/oschildt)

---

Top Contributors

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

---

Tags

documentationgenerator

### Embed Badge

![Health badge](/badges/smartfactory-phpdoxy/health.svg)

```
[![Health](https://phpackages.com/badges/smartfactory-phpdoxy/health.svg)](https://phpackages.com/packages/smartfactory-phpdoxy)
```

###  Alternatives

[symfony/maker-bundle

Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.

3.4k111.1M568](/packages/symfony-maker-bundle)[genericmilk/docudoodle

Generate documentation for your Laravel application using OpenAI

15120.5k](/packages/genericmilk-docudoodle)[easycorp/easy-doc-bundle

Symfony application documentation generator

1031.0k](/packages/easycorp-easy-doc-bundle)[codelicia/xulieta

Xulieta is a light php binary that lint documentation snippets

6713.3k5](/packages/codelicia-xulieta)[ncuesta/pinocchio

Annotated Source generator for PHP (port of Docco)

122.6k2](/packages/ncuesta-pinocchio)

PHPackages © 2026

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