Skip to content
This repository

Documentation Generator for PHP

Octocat-spinner-32 .old-docs Add documentation in the new style and add template supports November 22, 2013
Octocat-spinner-32 .puppet added git submodule October 24, 2013
Octocat-spinner-32 bin Removed manual phar compilation process March 09, 2014
Octocat-spinner-32 data Refactored log to an option September 02, 2013
Octocat-spinner-32 docs Add more information in the template guide March 14, 2014
Octocat-spinner-32 features #1133: Fixed subpackage without package validation February 27, 2014
Octocat-spinner-32 src Added more info April 14, 2014
Octocat-spinner-32 tests fix two failing XmlTest cases, possibly related to fix for #1184; March 29, 2014
Octocat-spinner-32 .gitattributes updated git attributes to force linux line endings February 01, 2013
Octocat-spinner-32 .gitignore Add phpunit.xml to ignore file February 24, 2014
Octocat-spinner-32 .gitmodules added git submodule October 24, 2013
Octocat-spinner-32 .scrutinizer.yml made cc external March 23, 2014
Octocat-spinner-32 .travis.yml made cc external March 23, 2014
Octocat-spinner-32 Preparing release of version 2.4 of phpDocumentor April 01, 2014
Octocat-spinner-32 updated the docs October 14, 2013
Octocat-spinner-32 LICENSE Added parameter for setting the desired output format for transformat… October 06, 2010
Octocat-spinner-32 Update Composer installation instructions March 07, 2014
Octocat-spinner-32 VERSION Update version for the development of release 2.5 April 01, 2014
Octocat-spinner-32 Vagrantfile Update Vagrant and Puppet to work out of the box July 03, 2013
Octocat-spinner-32 box.json Finalize implementing box-project. March 09, 2014
Octocat-spinner-32 build.xml Enabled phpcpd testing February 22, 2014
Octocat-spinner-32 composer.json Update version for the development of release 2.5 April 01, 2014
Octocat-spinner-32 composer.lock Preparing release of version 2.4 of phpDocumentor April 01, 2014
Octocat-spinner-32 package.xml Commit package file for 2.3.1 February 26, 2014
Octocat-spinner-32 phpdoc.dist.xml Change template to the new clean template July 28, 2013
Octocat-spinner-32 phpmd.xml.dist Create phpmd.xml.dist March 22, 2014
Octocat-spinner-32 phpunit.xml.dist Add clover XML output when generating unit tests February 22, 2014


What is phpDocumentor?

phpDocumentor an application that is capable of analyzing your PHP source code and DocBlock comments to generate a complete set of API Documentation.

Inspired by phpDocumentor 1 and JavaDoc it continues to innovate and is up to date with the latest technologies and PHP language features.


phpDocumentor supports the following:

  • PHP 5.3 compatible, full support for Namespaces, Closures and more is provided.
  • Shows any tag, some tags add additional functionality to phpDocumentor (such as @link).
  • Processing speed, Zend Framework experienced a significant reduction in processing time compared to phpDocumentor 1.
  • Low memory usage, peak memory usage for small projects is less than 20MB, medium projects 40MB and large frameworks 100MB.
  • Incremental parsing, if you kept the Structure file from a previous run you get an additional performance boost of up to 80% on top of the mentioned processing speed above.
  • Easy template building, if you want to make a branding you only have to call 1 task and edit 3 files.
  • Command-line compatibility with phpDocumentor 1, phpDocumentor 2 is an application in its own right but the basic phpDocumentor 1 arguments, such as --directory, --file and --target, have been adopted.
  • Two-step process, phpDocumentor first generates a cache with your application structure before creating the output. If you'd like you can use that to power your own tools or formatters!


phpDocumentor requires the following:

Note: If you do not want to install the Graphviz dependency you are encouraged to generate your own template and make sure that it does not contain anything related to Graph. An easier solution might be to edit data/templates/responsive/template.xml file and remove every line containing the word Graph but this will be undone with every upgrade of phpDocumentor.

Please see the documentation about creating your own templates for more information.


There are 3 ways to install phpDocumentor:

  1. Via PEAR (recommended)
  2. Via Composer
  3. Using the PHAR

Please note that it is required that the installation path of phpDocumentor does not contain spaces. This is a requirement imposed by an external library (libxml)

PEAR (recommended)

  1. phpDocumentor is hosted on its own PEAR channel which can be discovered using the following command:

    $ pear channel-discover
  2. After that it is a simple matter of invoking PEAR to install the application

    $ pear install phpdoc/phpDocumentor

Via Composer

  1. phpDocumentor is available on Packagist.
  2. It can be installed as a dependency of your project by running

    $ composer require --dev phpdocumentor/phpdocumentor dev-master

Afterwards you are able to run phpDocumentor directly from your vendor directory:

$ php vendor/bin/phpdoc.php

Using the PHAR

  1. Download the phar file from
  2. ???
  3. Profit!

How to use phpDocumentor?

The easiest way to run phpDocumentor is by running the following command:


This command will parse the source code provided using the -d argument and output it to the folder indicated by the -t argument.

phpDocumentor supports a whole range of options to configure the output of your documentation. You can execute the following command, or check our website, for a more detailed listing of available command line options.

$ phpdoc run -h

Configuration file(s)

phpDocumentor also supports the use of configuration files (named phpdoc.xml or phpdoc.dist.xml by default). Please consult the documentation to see the format and supported options.


For more detailed information you can check our online documentation at

Known issues

  1. phpDocumentor must be installed in a path without spaces due to restrictions in libxml. The XSL transformation will throw all kinds of odd warnings if the path contains spaces.


If you would like to help out financially we accept donations using gittip. All donations will be used to cover the costs for hosting phpDocumentor's website and PEAR repository.


To come in contact is actually dead simple and can be done in a variety of ways.

Something went wrong with that request. Please try again.