cvuorinen/phpdoc-markdown-public
Generate clean Markdown documentation from PHPDoc comments for public APIs. Extracts classes, methods, and types into readable docs for packages and projects, helping you publish consistent reference docs directly from your codebase.
@param, @return, @throws), reducing manual documentation overhead.phpdoc CLI) to auto-generate API docs for controllers, services, and models. Can integrate with Laravel Forge/Envoyer for deployment-ready docs.README.md + API docs in one place).UserController with @method store(string $name) will auto-generate Markdown.phpdoc output or run in parallel (e.g., GitHub Actions matrix).$hasMany) be documented?docs/ (versioned) or auto-commit to README.md?main branch only, or per-PR for feedback?composer exec phpdoc (no Laravel-specific setup).AuthController, UserService) to annotate.phpdoc to CI (e.g., GitHub Actions):
- name: Generate API Docs
run: composer exec phpdoc -d src -t docs/api --template=cvuorinen/phpdoc-markdown-public
docs/api/ (ignored in .gitignore unless versioned).@property-read \Illuminate\Database\Eloquent\Collection $posts).Job, Policy).phpdocumentor/phpdocumentor is a peer dependency (version-managed via Composer).phpdocumentor/phpdocumentor to a LTS version (e.g., ^3.0) for stability.php-cs-fixer).composer require --dev cvuorinen/phpdoc-markdown-public
phpdoc in composer.json:
"extra": {
"phpdoc": {
"templates": ["vendor/cvuorinen/phpdoc-markdown-public"]
}
}
app/Http/Controllers/:
composer exec phpdoc -d app/Http/Controllers -t docs/api
docs/ via script.custom.twig files).@throws \InvalidArgumentException).CONTRIBUTING.md.phpdoc -vv.autoload includes all namespaces.ServiceProvider/Command PHPDoc.--processes=4 in phpdoc for parallel generation.git diff.| Failure | Impact | Mitigation |
|---|---|---|
| Missing PHPDoc | Incomplete/incorrect docs | Enforce via CI + CodeSniffer |
| PHPDoc Syntax Errors | Build breaks | Validate with phpdoc --validate |
| Template Rendering Issues | Broken Markdown output | Test with phpdoc -t docs/api --debug |
| CI Timeout | Docs not updated | Cache output or split into smaller jobs |
How can I help you explore Laravel packages today?