abbadon1334/phpdoc-to-rst

Generate Sphinx/ReStructured documentation from PHPDoc

Maintainers

๐Ÿ‘ abbadon1334

Package info

github.com/abbadon1334/phpdoc-to-rst

pkg:composer/abbadon1334/phpdoc-to-rst

Statistics

Installs: 227

Dependents: 0

Suggesters: 2

Stars: 1

1.1 2020-12-26 19:42 UTC

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

AGPL-3.0-or-later d47841ee53a0668382575a58f4581948d00c2227

  • Francesco Danti <fdanti.woop@gmail.com>
  • Julius Hรคrtl <jus.woop@bitgrid.net>
  • Ferenc Kurucz <ferenc.kurucz.6351.woop@gmail.com>

This package is auto-updated.

Last update: 2026-05-29 01:36:54 UTC


README

๐Ÿ‘ Codacy Badge
๐Ÿ‘ Build Status
๐Ÿ‘ Coverage Status
๐Ÿ‘ Codacy Badge
๐Ÿ‘ Codacy Badge

Forked and refactor by Francesco "Abbadon1334" Danti.

Now working as intended, with good coverage.

##Generate reStructuredText for Sphinx based documentation from PHPDoc annotations.

This project is heavily based on phpDocumentor/Reflection and makes use of sphinxcontrib-phpdomain.

An example for the documentation output can be found in our own documentation

Quickstart

Install phpdoc-to-rst to your project directory:

composer require --dev abbadon1334/phpdoc-to-rst

Command line usage

Run the command line tool to parse the folders containing your PHP tree and render the reStructuredText files to the output directory:

php vendor/bin/phpdoc-to-rst generate --repo-base "$PWD" --repo-github https://github.com/abbadon1334/phpdoc-to-rst -t docs/rst/ src/

Programatically usage to generate documentation rst

 // your source path or multiple path to be parsed
 $src = [__DIR__.'/../src'];
 
 // destination path for the documentation
 $dst = __DIR__.'/../docs/api';
 
 $apiDocBuilder = new ApiDocBuilder($src, $dst);
 
 // DEBUG FATURES : optional
 // optional : activate verbosity
 $apiDocBuilder->setVerboseOutput(true);
 // optional : activate debug
 $apiDocBuilder->setDebugOutput(true);
 
 // EXTENSIONS : optional
 
 /**
 * Do not render classes marked with phpDoc internal tag
 * Do only render public methods/properties.
 */
 $apiDocBuilder->addExtension(PublicOnlyExtension::class);
 
 /**
 * Do not render classes marked with phpDoc internal tag
 * Do only render public methods/properties.
 */
 $apiDocBuilder->addExtension(NoPrivateExtension::class);
 
 /**
 * This extension will render a list of methods for easy access
 * at the beginning of classes, interfaces and traits.
 */
 $apiDocBuilder->addExtension(TocExtension::class);
 
 /**
 * This extension adds a link to the source at github to all elements.
 *
 * Arguments
 * 0 => Url to the github repo (required)
 * 1 => Path to the git repository (required)
 * 2 => Branch to link to (default=master)
 */
 $apiDocBuilder->addExtension(GithubLocationExtension::class, [
 __DIR__.'/../src',
 'http://github.com/abbadon1334/phpdoc-to-rst/',
 ]);
 
 // Build documentation
 $apiDocBuilder->build();