Skip to content

Releases: ApiGen/ApiGen


31 Jan 20:45
Choose a tag to compare




10 Jul 09:31
Choose a tag to compare
7.0.0-alpha Pre-release

Rewritten to be based on nikic/php-parser and phpstan/phpdoc-parser with full support of PHP 8.1 features.



With Docker

ApiGen is available as apigen/apigen Docker image which you can directly use.

docker run --rm --interactive --tty --volume "$PWD:$PWD" --workdir "$PWD" \
  apigen/apigen \
  src --output docs

With Phar

This will install ApiGen phar binary to tools/apigen.

mkdir -p tools
curl -L -o tools/apigen
chmod +x tools/apigen
tools/apigen src --output docs

With Composer

This will install ApiGen to tools/apigen directory with executable entry point available in tools/apigen/bin/apigen.

composer create-project --no-dev apigen/apigen:^7.0@alpha tools/apigen
tools/apigen/bin/apigen src --output docs

Released version 5.0 RC5

31 Aug 15:18
Choose a tag to compare

If you are interested in ApiGen behind-scene @TomasVotruba wrote a post about ApiGen 5 revival process:


  • @vlastavesely added as a co-maintainer, thanks to his great additions to the project 👏

  • #971 Added resolving parent classes, Thanks to @vlastavesely

  • #987 Improve parsing by BetterReflection by Caching, make use of Roave/BetterReflection#312; also decouple BetterReflection subpackage and turn static to DI


  • #977, #978 Updated to EasyCodingStandard 2.2.6 with new checkers
  • #990 Improve ProjectVendorSourceLocatorFactory readability, Thanks @simara-svatopluk


Full diff: v5.0.0-RC4...v5.0.0-RC5

Released version 5.0 RC4 - DEMO is Back!

03 Aug 16:26
Choose a tag to compare



  • #956 Reflection: allowed nullable filenames for internal reflections, Thanks @vlastavesely
  • #969 Upgraded to EasyCodingStandard 2.2


  • #955 RelativePathResolver: fix for functions loaded from file source, Thanks @vlastavesely
  • #957 Parser: fixed file source loader, Thanks @vlastavesely
  • #954 Deprecated methods of deprecated interface, Thanks @vlastavesely
  • #969 Lock Roave\BetterReflection to specific commit to prevent breaking the code

Full diff: v5.0.0-RC3...v5.0.0-RC4

Released version 5.0 RC3

16 Jul 19:36
Choose a tag to compare

Huge thanks to @vlastavesely for dozens of PR to this release!
Your work is pushing this repository fast forward.


  • #944 Added support for FileLocator; Thanks to @vlastavesely
    vendor/bin/apigen generate src/Directory src/SomeClass.php --destination /api
  • #940 Added support for traits with properties; Thanks to @vlastavesely
  • #916 Added support different vendor analysis by adding a ComposerSourceLocator; Thanks to @vlastavesely
  • #946 Added highlighting of method's param default value; Thanks to @vlastavesely
  • #932 Added autocomplete search; Thanks to @vlastavesely and also to @POPSuL



Full diff: v5.0.0-RC2...v5.0.0-RC3

Released version 5.0 RC2

02 Jul 23:24
Choose a tag to compare


  • #888 more informative information added on --version call in CLI; Thanks to @brunoaugusto
  • #895 implemented TraitMethodReflection::isDeprecated(); Thanks to @vlastavesely
  • #923 used local Bootstrap CSS for more flexible local development; Thanks to @vlastavesely
  • #919 added exception standalone page via ExceptionGenerator + separation from classes in NamespaceGenerator; Thanks to @vlastavesely


  • #918 use Coveralls for coverage over Scrutinizer


Thank you all guys for great work. I'm very happy to see such activity around this project! ❤️

Full diff: v5.0.0-RC1...v5.0.0-RC2

Released version 5.0 RC1

02 Jul 23:12
Choose a tag to compare


  • #863 Added Annotation package
  • Added Element package
  • Added ModularConfiguration package
  • Added Reflection package
  • #858 Added StringRouting package
  • Added .editorconfig to the project
  • #704 Added support for static type
  • #731 Added bitcoin link support via @link bitcoin:address
  • Added theme option to load theme from directory
  • Added phpDocumentor/TypeResolver for type resolving
  • Added phpDocumentor/ReflectionDocBlock for annotation parsing
  • Added Symplify/EasyCodingStandard to make coding standard powerful
  • Added phpstan for static analysis checks


  • #827 Changed PHP Token Reflection library from andrewsville/php-token-reflection to roave/better-reflection
  • Minimum PHP requirement was increased from 5.4 to 7.1
  • #880 Change DI library from Nette\DI to Symfony\DependencyInjection due to Symfony 3.3 new features and PSR-11
  • Project is now PSR-2 compatible
  • #64 UTF-8 is now a standard/default charset. [ApiGen] will expect UTF-8 encoded files by default
  • #771 Only relevant classes are generated in sidebar and source code pages
  • Enabled autocomplete for methods and properties
  • #814 #862 ThemeDefault and ThemeBootstrap merged to one local theme, with support of Bootstrap 3
    and mobile-friendly design
  • #823 @internal annotation cannot be ignored now
  • #826 Long and short description merged to one, since there was thin and not clear line between them
  • #818 #827 Class<Generator,Reflection> split to Class, Trait and Interface with own type-specific methods
  • #845 #845 SourceCodeGenerator dropped and moved to particular reflection generators (ClassGenerator...)
  • #855 Indirect and direct users/implementers/inheritors merged to one group
  • #858 Tree and Namespace filters simplified
  • #862 Standardize use of annotations
  • #860 Left sidebar removed, it duplicated main content and had complicated tree structures
  • #749 Don't fully qualify local members


  • #520 Fixed an issue with temporary files not being removed upon exit (in cases where failure happens)
  • #631 Fixed an issue with generate command throwing an error
  • #804 Fixed tests (and hopefully compatibility) on Windows OS
  • Fixed deprecation checks when generating docs
  • Fixed issues with exception handling in low-level parser
  • Fixed an error on generating docs for non-existent traits
  • #668 Fixed an issue with handling paths on different OS. The paths should now be normalized and work on Windows
  • #740 Fixed an issue where ApiGen sometimes would incorrectly resolve return typehints for functions
  • #734 Fixed an issue when docblocks marked with @internal would be documented
  • #750 Fixed support of $this as return type hint
  • #848 Fixed missing methods in class
  • #717 Fixed duplicated function source code

PHP 5.5, 5.6 and 7 and parsing related Fixes

  • #620 Fixed composed trait methods
  • #774 Fixed default constant value and __DIR__ constant parsing
  • #751 Fixed broken function definition
  • #680 Fixed ::class parsing


  • #826 --main option dropped
  • #813 Magic elements dropped
  • --charset CLI option has been dropped (expecting UTF-8 now by default)
  • --skip-doc-path CLI option has ben dropped
  • #827 --template-config and --template-theme dropped
  • #853 --exclude and --extensions options dropped (use FinderInterface implementation instead)
  • Removed various deprecated generators (Robots, Sitemap) which weren't used
  • #809 Tree generator dropped
  • Dropped Zip generator, internet is quite fast nowadays.
  • Dropped PHAR support.
  • #827 Exception element dropped
  • Dropped element js toggling in page, was bugged and was causing confused page jumps.
  • Dropped support for global constant documentation, as BetterReflection doesn't support it out of the box yet.

Full diff: v4.1.2...v5.0.0-RC1

Released version 4.1.2

29 Nov 20:25
Choose a tag to compare

Minor fixes

Full diff: v4.1.1...v4.1.2