apigen / apigen
PHP source code API generator.
v7.0.0-alpha.6
2023-04-07 12:13 UTC
Requires
- php: ^8.1
- ext-ctype: *
- ext-json: *
- ext-mbstring: *
- ext-tokenizer: *
- jetbrains/phpstorm-stubs: ^2022.3
- latte/latte: ^3.0
- league/commonmark: ^2.3
- nette/di: ^3.1
- nette/finder: ^3.0
- nette/schema: ^1.2
- nette/utils: ^4.0
- nikic/php-parser: ^4.15
- phpstan/php-8-stubs: ^0.3.55
- phpstan/phpdoc-parser: ^1.16
- symfony/console: ^6.0
Requires (Dev)
- nette/neon: ^3.4
- nette/tester: ^2.4
- phpstan/phpstan: ^1.9
- tracy/tracy: ^2.9
Replaces
This package is not auto-updated.
Last update: 2025-02-07 21:24:46 UTC
README
ApiGen is easy to use and modern API doc generator supporting all PHP 8.3 features.
Features
- phpDoc
- PHP 8.3
- PHP 8.2
- PHP 8.1
- PHP 8.0
- PHP 7.4
- PHP 7.2
- PHP 7.1
- PHP 7.0
- PHP 5.6
- PHP 5.4
Built on Shoulders of Giants
Install
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:edge \ src --output docs
With Phar
This will install ApiGen phar binary to tools/apigen
.
mkdir -p tools curl -L https://github.com/ApiGen/ApiGen/releases/latest/download/apigen.phar -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
Usage
Generate API docs by passing source directories and destination option:
apigen src --output docs
Configuration
ApiGen can be configured with apigen.neon
configuration file.
parameters: # string[], passed as arguments in CLI, e.g. ['src'] paths: [] # string[], --include in CLI, included files mask, e.g. ['*.php'] include: ['*.php'] # string[], --exclude in CLI, excluded files mask, e.g. ['tests/**'] exclude: [] # bool, should protected members be excluded? excludeProtected: false # bool, should private members be excluded? excludePrivate: true # string[], list of tags used for excluding class-likes and members excludeTagged: ['internal'] # string, --output in CLI outputDir: '%workingDir%/api' # string | null, --theme in CLI themeDir: null # string, --title in CLI title: 'API Documentation' # string, --base-url in CLI baseUrl: '' # int, --workers in CLI, number of processes that will be forked for parallel rendering workerCount: 8 # string, --memory-limit in CLI memoryLimit: '512M'