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
Install phpdoc-to-rst to your project directory:
composer require --dev abbadon1334/phpdoc-to-rst
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/
// 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();