Welcome to phpdoc-to-rst’s documentation!¶
phpdoc-to-rst is a library that can generate reStructuredText based documentation to be build with sphinx from your PHPDoc annotated code. sphinxcontrib-phpdomain is used to annotate the PHP objects in the documentation.
Command line tool¶
API documentation can easily be generated with the shipped command line tool phpdoc-to-rst.
Usage:
phpdoc-to-rst generate <target> [<src>]...
Arguments:
target Destination for the generated rst files
src Source directories to parse
Options:
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Help:
This command allows you to generate sphinx/rst based documentation from PHPDoc annotations.
Usage¶
You can either use the Command line tool or create your own PHP script if you want to have more control over the generated documentation.
use JuliusHaertl\PHPDocToRst\ApiDocBuilder;
$apiDocBuilder = new ApiDocBuilder(__DIR__ . '/src', __DIR__ . '/docs');
$apiDocBuilder->setVerboseOutput(true);
$apiDocBuilder->addExtension(\JuliusHaertl\PHPDocToRst\Extension\InterfaceImplementors::class);
$apiDocBuilder->addExtension(\JuliusHaertl\PHPDocToRst\Extension\PublicOnlyExtension::class);
$apiDocBuilder->build();
For more details on extensions that can be used, please check the Extensions documentation.
Extensions¶
Available extensions¶
The following extensions are shipped with phpdoc-to-rst:
InterfaceImplementors
- Link a list of all classes that implement an interface.
PublicOnlyExtension
- Only show public methods/properties. Also anything tagged with @internal will be hidden.
TocExtension
- Add a list of methods to the beginning of each interface/class/trait
PHPDocToRst¶
\JuliusHaertl\PHPDocToRst
Namespaces¶
Builder¶
\JuliusHaertl\PHPDocToRst\Builder
Classes¶
MainIndexBuilder¶
-
class
JuliusHaertl\PHPDocToRst\Builder\
MainIndexBuilder
¶ - This class builds a list of all available namespaces in the project.
Source: src/Builder/MainIndexBuilder.php#35 Parent: JuliusHaertl\PHPDocToRst\Builder\RstBuilder
-
public
JuliusHaertl\PHPDocToRst\Builder\MainIndexBuilder::
__construct
($namespaces)¶ Source: src/Builder/MainIndexBuilder.php#40
-
public
JuliusHaertl\PHPDocToRst\Builder\MainIndexBuilder::
render
()¶ Source: src/Builder/MainIndexBuilder.php#44
PhpDomainBuilder¶
-
class
JuliusHaertl\PHPDocToRst\Builder\
PhpDomainBuilder
¶ - Class to build reStructuredText file with sphinxcontrib-phpdomain syntax
Source: src/Builder/PhpDomainBuilder.php#49 Parent: JuliusHaertl\PHPDocToRst\Builder\RstBuilder
Used traits: JuliusHaertl\PHPDocToRst\Builder\ExtensionBuilder
public __construct($extensions)
public static getNamespace($element)
protected addPageHeader($element)
private getTypeForClass($element)
protected addAfterIntroduction($element)
protected addConstants($constants)
private addConstant($constant)
protected addProperties($properties)
private addProperty($property)
protected addParent($element)
protected addUsedTraits($element)
protected addMethods($methods)
private addMethod($method)
public static getLink($type, $fqsen, $description)
public beginPhpDomain($type, $name, $indent)
public endPhpDomain($type)
public addDocBlockDescription($element)
protected addDocblockTag($tagName, $docBlock)
public static typesToRst($typesString)
public shouldRenderElement($element)
-
SECTION_BEFORE_DESCRIPTION = self::class . ::SECTION_BEFORE_DESCRIPTION
Source: src/Builder/PhpDomainBuilder.php#51
-
SECTION_AFTER_DESCRIPTION = self::class . ::SECTION_AFTER_DESCRIPTION
Source: src/Builder/PhpDomainBuilder.php#52
-
SECTION_AFTER_TITLE = self::class . ::SECTION_AFTER_TITLE
Source: src/Builder/PhpDomainBuilder.php#53
-
SECTION_AFTER_INTRODUCTION = self::class . ::SECTION_AFTER_INTRODUCTION
Source: src/Builder/PhpDomainBuilder.php#54
-
public
JuliusHaertl\PHPDocToRst\Builder\PhpDomainBuilder::
__construct
($extensions)¶ Source: src/Builder/PhpDomainBuilder.php#60
-
public static
JuliusHaertl\PHPDocToRst\Builder\PhpDomainBuilder::
getNamespace
(phpDocumentor\Reflection\Element $element)¶ - Strip element name from Fqsen to return the namespace only
Source: Parameters: - $element (
phpDocumentor\Reflection\Element
)
Returns: mixed
- $element (
-
protected
JuliusHaertl\PHPDocToRst\Builder\PhpDomainBuilder::
addPageHeader
(phpDocumentor\Reflection\Element $element)¶ - Add namespace
Source: Parameters: - $element (
phpDocumentor\Reflection\Element
)
- $element (
-
protected
JuliusHaertl\PHPDocToRst\Builder\PhpDomainBuilder::
addAfterIntroduction
($element)¶ Source: src/Builder/PhpDomainBuilder.php#118
-
protected
JuliusHaertl\PHPDocToRst\Builder\PhpDomainBuilder::
addConstants
($constants)¶ Source: src/Builder/PhpDomainBuilder.php#123
-
protected
JuliusHaertl\PHPDocToRst\Builder\PhpDomainBuilder::
addProperties
($properties)¶ Source: Parameters: - $properties (
phpDocumentor\Reflection\Php\Property[]
)
- $properties (
-
protected
JuliusHaertl\PHPDocToRst\Builder\PhpDomainBuilder::
addParent
($element)¶ Source: Parameters: - $element (
phpDocumentor\Reflection\Php\Interface_
|\phpDocumentor\Reflection\Php\Class_
)
- $element (
-
protected
JuliusHaertl\PHPDocToRst\Builder\PhpDomainBuilder::
addUsedTraits
($element)¶ Source: Parameters: - $element (
phpDocumentor\Reflection\Php\Class_
|\phpDocumentor\Reflection\Php\Trait_
)
- $element (
-
protected
JuliusHaertl\PHPDocToRst\Builder\PhpDomainBuilder::
addMethods
($methods)¶ Source: Parameters: - $methods
-
public static
JuliusHaertl\PHPDocToRst\Builder\PhpDomainBuilder::
getLink
($type, $fqsen, $description="")¶ Source: Parameters: - $type string
- $fqsen string
Returns: string
-
public
JuliusHaertl\PHPDocToRst\Builder\PhpDomainBuilder::
beginPhpDomain
($type, $name, $indent=true)¶ Source: Parameters: - $type string
- $name string
- $indent bool Should indent after the section started
-
public
JuliusHaertl\PHPDocToRst\Builder\PhpDomainBuilder::
endPhpDomain
($type="")¶ Source: Parameters: - $type (string)
Returns: $this
-
public
JuliusHaertl\PHPDocToRst\Builder\PhpDomainBuilder::
addDocBlockDescription
($element)¶ Source: Parameters: - $element (
phpDocumentor\Reflection\Php\Class_
|\phpDocumentor\Reflection\Php\Interface_
|\phpDocumentor\Reflection\Php\Trait_
|\phpDocumentor\Reflection\Php\Property
|\phpDocumentor\Reflection\Php\Method
|\phpDocumentor\Reflection\Php\Constant
)
Returns: $this
- $element (
-
protected
JuliusHaertl\PHPDocToRst\Builder\PhpDomainBuilder::
addDocblockTag
($tagName, phpDocumentor\Reflection\DocBlock $docBlock)¶ Source: Parameters: - $tagName (string) Name of the tag to parse
- $docBlock (
phpDocumentor\Reflection\DocBlock
)
-
public static
JuliusHaertl\PHPDocToRst\Builder\PhpDomainBuilder::
typesToRst
($typesString)¶ Source: Parameters: - $typesString (string)
Returns: bool | string
-
public
JuliusHaertl\PHPDocToRst\Builder\PhpDomainBuilder::
shouldRenderElement
(phpDocumentor\Reflection\Element $element)¶ Source: Parameters: - $element (
phpDocumentor\Reflection\Element
)
Returns: bool
- $element (
RstBuilder¶
-
class
JuliusHaertl\PHPDocToRst\Builder\
RstBuilder
¶ - Helper class to build reStructuredText files
Source: src/Builder/RstBuilder.php#34
-
protected static property
JuliusHaertl\PHPDocToRst\Builder\RstBuilder::$
content
¶ Source: src/Builder/RstBuilder.php#38 Type: string
-
public
JuliusHaertl\PHPDocToRst\Builder\RstBuilder::
getContent
()¶ Source: src/Builder/RstBuilder.php#40
-
public static
JuliusHaertl\PHPDocToRst\Builder\RstBuilder::
escape
($text)¶ Source: src/Builder/RstBuilder.php#44
-
public
JuliusHaertl\PHPDocToRst\Builder\RstBuilder::
indent
()¶ Source: src/Builder/RstBuilder.php#50
-
public
JuliusHaertl\PHPDocToRst\Builder\RstBuilder::
unindent
()¶ Source: src/Builder/RstBuilder.php#55
-
public
JuliusHaertl\PHPDocToRst\Builder\RstBuilder::
addFieldList
($key, $value)¶ Source: src/Builder/RstBuilder.php#61
-
public
JuliusHaertl\PHPDocToRst\Builder\RstBuilder::
addH1
(string $text)¶ Source: Parameters: - $text (string)
Returns: $this
-
public
JuliusHaertl\PHPDocToRst\Builder\RstBuilder::
addH2
($text)¶ Source: src/Builder/RstBuilder.php#77
-
public
JuliusHaertl\PHPDocToRst\Builder\RstBuilder::
addH3
($text)¶ Source: src/Builder/RstBuilder.php#83
-
public
JuliusHaertl\PHPDocToRst\Builder\RstBuilder::
addLine
($text="")¶ Source: src/Builder/RstBuilder.php#89
-
public
JuliusHaertl\PHPDocToRst\Builder\RstBuilder::
addMultiline
($text="", $blockIndent=false)¶ Source: src/Builder/RstBuilder.php#94
-
public
JuliusHaertl\PHPDocToRst\Builder\RstBuilder::
addMultilineWithoutRendering
($text)¶ Source: src/Builder/RstBuilder.php#109
-
public
JuliusHaertl\PHPDocToRst\Builder\RstBuilder::
add
($text)¶ Source: src/Builder/RstBuilder.php#118
FileBuilder¶
-
class
JuliusHaertl\PHPDocToRst\Builder\
FileBuilder
¶ - Abstract building class to build sphinxcontrib-phpdomain from a php file
Source: src/Builder/FileBuilder.php#35 Parent: JuliusHaertl\PHPDocToRst\Builder\PhpDomainBuilder
-
protected static property
JuliusHaertl\PHPDocToRst\Builder\FileBuilder::$
file
¶ Source: src/Builder/FileBuilder.php#38 Type: \phpDocumentor\Reflection\Php\File
-
protected static property
JuliusHaertl\PHPDocToRst\Builder\FileBuilder::$
element
¶ Source: src/Builder/FileBuilder.php#41 Type: \phpDocumentor\Reflection\Element
-
protected static property
JuliusHaertl\PHPDocToRst\Builder\FileBuilder::$
extensions
¶ Source: src/Builder/FileBuilder.php#44 Type: \JuliusHaertl\PHPDocToRst\Extension\Extension[]
-
protected abstract
JuliusHaertl\PHPDocToRst\Builder\FileBuilder::
render
()¶ Source: src/Builder/FileBuilder.php#46
-
public
JuliusHaertl\PHPDocToRst\Builder\FileBuilder::
__construct
($file, $element, $extensions)¶ Source: src/Builder/FileBuilder.php#48
-
public
JuliusHaertl\PHPDocToRst\Builder\FileBuilder::
getElement
()¶ Source: src/Builder/FileBuilder.php#58 Returns: \phpDocumentor\Reflection\Element
that is used to build the rst file
-
public
JuliusHaertl\PHPDocToRst\Builder\FileBuilder::
getFile
()¶ Source: src/Builder/FileBuilder.php#65 Returns: \phpDocumentor\Reflection\Php\File
ClassFileBuilder¶
-
class
JuliusHaertl\PHPDocToRst\Builder\
ClassFileBuilder
¶ Source: src/Builder/ClassFileBuilder.php#30 Parent: JuliusHaertl\PHPDocToRst\Builder\FileBuilder
-
protected
JuliusHaertl\PHPDocToRst\Builder\ClassFileBuilder::
render
()¶ Source: src/Builder/ClassFileBuilder.php#32
-
protected
JuliusHaertl\PHPDocToRst\Builder\ClassFileBuilder::
addImplementedInterfaces
($element)¶ Source: Parameters: - $element (
phpDocumentor\Reflection\Php\Class_
)
- $element (
InterfaceFileBuilder¶
-
class
JuliusHaertl\PHPDocToRst\Builder\
InterfaceFileBuilder
¶ Source: src/Builder/InterfaceFileBuilder.php#30 Parent: JuliusHaertl\PHPDocToRst\Builder\FileBuilder
-
protected
JuliusHaertl\PHPDocToRst\Builder\InterfaceFileBuilder::
render
()¶ Source: src/Builder/InterfaceFileBuilder.php#32
TraitFileBuilder¶
-
class
JuliusHaertl\PHPDocToRst\Builder\
TraitFileBuilder
¶ Source: src/Builder/TraitFileBuilder.php#31 Parent: JuliusHaertl\PHPDocToRst\Builder\FileBuilder
-
protected
JuliusHaertl\PHPDocToRst\Builder\TraitFileBuilder::
render
()¶ Source: src/Builder/TraitFileBuilder.php#33
NamespaceIndexBuilder¶
-
class
JuliusHaertl\PHPDocToRst\Builder\
NamespaceIndexBuilder
¶ - This class will build an index for each namespace.It contains a toc for child namespaces, classes, traits, interfaces and functions
Source: src/Builder/NamespaceIndexBuilder.php#40 Parent: JuliusHaertl\PHPDocToRst\Builder\PhpDomainBuilder
public __construct($extensions, $namespaces, $current, $functions, $constants)
private findChildNamespaces()
public render()
protected addIndex($type)
private addFunctions()
private addElementTocEntry($entry)
private shouldRenderIndex($type, $element)
private getHeaderForType($type)
private getElementList($type)
-
RENDER_INDEX_NAMESPACE = 0
Source: src/Builder/NamespaceIndexBuilder.php#42
-
RENDER_INDEX_CLASSES = 1
Source: src/Builder/NamespaceIndexBuilder.php#43
-
RENDER_INDEX_TRAITS = 2
Source: src/Builder/NamespaceIndexBuilder.php#44
-
RENDER_INDEX_INTERFACES = 3
Source: src/Builder/NamespaceIndexBuilder.php#45
-
RENDER_INDEX_FUNCTIONS = 4
Source: src/Builder/NamespaceIndexBuilder.php#46
-
RENDER_INDEX_CONSTANTS = 5
Source: src/Builder/NamespaceIndexBuilder.php#47
-
public
JuliusHaertl\PHPDocToRst\Builder\NamespaceIndexBuilder::
__construct
($extensions, $namespaces, phpDocumentor\Reflection\Php\Namespace_ $current, $functions, $constants)¶ Source: src/Builder/NamespaceIndexBuilder.php#64
-
public
JuliusHaertl\PHPDocToRst\Builder\NamespaceIndexBuilder::
render
()¶ Source: src/Builder/NamespaceIndexBuilder.php#94
-
protected
JuliusHaertl\PHPDocToRst\Builder\NamespaceIndexBuilder::
addIndex
($type)¶ Source: src/Builder/NamespaceIndexBuilder.php#119
Traits¶
ExtensionBuilder¶
-
trait
JuliusHaertl\PHPDocToRst\Builder\
ExtensionBuilder
¶ Source: src/Builder/ExtensionBuilder.php#13
-
protected static property
JuliusHaertl\PHPDocToRst\Builder\ExtensionBuilder::$
extensions
¶ Source: src/Builder/ExtensionBuilder.php#16 Type: \JuliusHaertl\PHPDocToRst\Extension\Extension[]
-
public
JuliusHaertl\PHPDocToRst\Builder\ExtensionBuilder::
__construct
($extensions)¶ Source: src/Builder/ExtensionBuilder.php#18
-
protected
JuliusHaertl\PHPDocToRst\Builder\ExtensionBuilder::
callExtensions
($type, $element)¶ Source: src/Builder/ExtensionBuilder.php#22
Extension¶
\JuliusHaertl\PHPDocToRst\Extension
Classes¶
GithubLocationExtension¶
-
class
JuliusHaertl\PHPDocToRst\Extension\
GithubLocationExtension
¶ - This extension adds a link to the source at github to all elementsArguments0 => Url to the github repo (required)1 => Path to the git repository (required)2 => Branch to link to (default=master)
Source: src/Extension/GithubLocationExtension.php#40 Parent: JuliusHaertl\PHPDocToRst\Extension\Extension
public prepare()
public render($type, $builder, $element)
private getGithubLink($file, $line, $branch)
-
protected static property
JuliusHaertl\PHPDocToRst\Extension\GithubLocationExtension::$
basePath
¶ Source: src/Extension/GithubLocationExtension.php#42
-
protected static property
JuliusHaertl\PHPDocToRst\Extension\GithubLocationExtension::$
githubRepo
¶ Source: src/Extension/GithubLocationExtension.php#43
-
protected static property
JuliusHaertl\PHPDocToRst\Extension\GithubLocationExtension::$
branch
¶ Source: src/Extension/GithubLocationExtension.php#44
-
public
JuliusHaertl\PHPDocToRst\Extension\GithubLocationExtension::
prepare
()¶ Source: src/Extension/GithubLocationExtension.php#46
-
public
JuliusHaertl\PHPDocToRst\Extension\GithubLocationExtension::
render
($type, &$builder, $element)¶ Source: Parameters: - $type (string)
- $builder (
JuliusHaertl\PHPDocToRst\Builder\FileBuilder
) - $element (
phpDocumentor\Reflection\Element
)
AddFullElementNameExtension¶
-
class
JuliusHaertl\PHPDocToRst\Extension\
AddFullElementNameExtension
¶ - Add the fully qualified element name including the namespace to each page
Source: src/Extension/AddFullElementNameExtension.php#39 Parent: JuliusHaertl\PHPDocToRst\Extension\Extension
-
public
JuliusHaertl\PHPDocToRst\Extension\AddFullElementNameExtension::
render
($type, &$builder, $element)¶ Source: Parameters: - $type (string)
- $builder (
JuliusHaertl\PHPDocToRst\Builder\FileBuilder
)
TocExtension¶
-
class
JuliusHaertl\PHPDocToRst\Extension\
TocExtension
¶ - This extension will render a list of methods for easy accessat the beginning of classes, interfaces and traits
Source: src/Extension/TocExtension.php#40 Parent: JuliusHaertl\PHPDocToRst\Extension\Extension
-
public
JuliusHaertl\PHPDocToRst\Extension\TocExtension::
render
($type, &$builder, $element)¶ Source: Parameters: - $type (string)
- $builder (
JuliusHaertl\PHPDocToRst\Builder\FileBuilder
)
NoPrivateExtension¶
-
class
JuliusHaertl\PHPDocToRst\Extension\
NoPrivateExtension
¶ - Do not render classes marked with phpDoc internal tagDo only render public methods/properties
Source: src/Extension/NoPrivateExtension.php#38 Parent: JuliusHaertl\PHPDocToRst\Extension\Extension
-
public
JuliusHaertl\PHPDocToRst\Extension\NoPrivateExtension::
shouldRenderElement
(phpDocumentor\Reflection\Element $element)¶ Source: src/Extension/NoPrivateExtension.php#40
InterfaceImplementors¶
-
class
JuliusHaertl\PHPDocToRst\Extension\
InterfaceImplementors
¶ - Class InterfaceImplementors
Source: src/Extension/InterfaceImplementors.php#41 Parent: JuliusHaertl\PHPDocToRst\Extension\Extension
-
public
JuliusHaertl\PHPDocToRst\Extension\InterfaceImplementors::
prepare
()¶ Source: src/Extension/InterfaceImplementors.php#45
-
public
JuliusHaertl\PHPDocToRst\Extension\InterfaceImplementors::
render
($type, &$builder, $element)¶ Source: Parameters: - $type (string)
- $builder (
JuliusHaertl\PHPDocToRst\Builder\FileBuilder
) - $element (
phpDocumentor\Reflection\Element
)
HideChildNamespaces¶
-
class
JuliusHaertl\PHPDocToRst\Extension\
HideChildNamespaces
¶ - Example for hiding a section in the namespace index page
Source: src/Extension/HideChildNamespaces.php#32 Parent: JuliusHaertl\PHPDocToRst\Extension\Extension
-
public
JuliusHaertl\PHPDocToRst\Extension\HideChildNamespaces::
shouldRenderIndex
($type, $element)¶ Source: src/Extension/HideChildNamespaces.php#34
PublicOnlyExtension¶
-
class
JuliusHaertl\PHPDocToRst\Extension\
PublicOnlyExtension
¶ - Do not render classes marked with phpDoc internal tagDo only render public methods/properties
Source: src/Extension/PublicOnlyExtension.php#38 Parent: JuliusHaertl\PHPDocToRst\Extension\Extension
-
public
JuliusHaertl\PHPDocToRst\Extension\PublicOnlyExtension::
shouldRenderElement
(phpDocumentor\Reflection\Element $element)¶ Source: src/Extension/PublicOnlyExtension.php#40
Extension¶
-
class
JuliusHaertl\PHPDocToRst\Extension\
Extension
¶ Source: src/Extension/Extension.php#32
-
protected static property
JuliusHaertl\PHPDocToRst\Extension\Extension::$
project
¶ Source: src/Extension/Extension.php#35 Type: \phpDocumentor\Reflection\Php\Project
-
protected static property
JuliusHaertl\PHPDocToRst\Extension\Extension::$
arguments
¶ Source: src/Extension/Extension.php#38 Type: array
-
public
JuliusHaertl\PHPDocToRst\Extension\Extension::
__construct
(phpDocumentor\Reflection\Php\Project $project, $arguments=[])¶ Source: src/Extension/Extension.php#40
-
public
JuliusHaertl\PHPDocToRst\Extension\Extension::
prepare
()¶ - Method that will be ran before generating any documentation filesThis is useful for preparing own data structuresto be used in the output documentation
Source: src/Extension/Extension.php#50
-
public
JuliusHaertl\PHPDocToRst\Extension\Extension::
render
($type, &$builder, $element)¶ - Implement custom rendering functionality here.It will be executed by Builder classes depending on the given type.Currently supported types:- PhpDomainBuilder::SECTION_BEFORE_DESCRIPTION- PhpDomainBuilder::SECTION_AFTER_DESCRIPTION
Source: Parameters: - $type (string)
- $builder (
JuliusHaertl\PHPDocToRst\Builder\ExtensionBuilder
) - $element (
phpDocumentor\Reflection\Element
) context for the render type
-
public
JuliusHaertl\PHPDocToRst\Extension\Extension::
shouldRenderElement
(phpDocumentor\Reflection\Element $element)¶ - This method will be called to check if a certain element shouldbe rendered in the documentation.An example extension that makes use of it is PublicOnlyExtension
Source: Parameters: - $element (
phpDocumentor\Reflection\Element
)
Returns: bool
- $element (
-
public
JuliusHaertl\PHPDocToRst\Extension\Extension::
shouldRenderIndex
($type, $element)¶ Source: src/Extension/Extension.php#84
Classes¶
WriteException¶
-
class
JuliusHaertl\PHPDocToRst\
WriteException
¶ - An exception for writing failure of files/directories in the build process
Source: src/WriteException.php#29 Parent: Exception
Summary¶
GenerateDocumentationCommand¶
-
class
JuliusHaertl\PHPDocToRst\
GenerateDocumentationCommand
¶ - Class GenerateDocumentationCommand
Source: src/GenerateDocumentationCommand.php#42 Parent: Symfony\Component\Console\Command\Command
Summary¶
Methods¶
-
protected
JuliusHaertl\PHPDocToRst\GenerateDocumentationCommand::
configure
()¶ Source: src/GenerateDocumentationCommand.php#44
-
protected
JuliusHaertl\PHPDocToRst\GenerateDocumentationCommand::
execute
(Symfony\Component\Console\Input\InputInterface $input, Symfony\Component\Console\Output\OutputInterface $output)¶ Source: src/GenerateDocumentationCommand.php#62