Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Phpdocumentor Markdown Laravel Package

saggre/phpdocumentor-markdown

phpDocumentor Markdown template that generates GitHub/GitLab-ready docs from PHP source. Documents classes, interfaces, traits, functions, methods, properties, types, modifiers, and inheritance. Run phpdoc with the template to output Markdown for repos, wikis, or AI context.

View on GitHub
Deep Wiki
Context7

phpDocumentor-markdown - Automatically generate Markdown documentation

Use cases: In-repository documentation, GitHub/GitLab wikis, AI prompt context.

Markdown template for phpDocumentor3

Tests Status Generate Docs Status

Wish there was an easy way to generate PHP source code documentation?
Using phpDocumentor with phpDocumentor-markdown template, you can automatically generate GitHub/GitLab-ready Markdown documentation from PHP source code.

This template can be used to document:

Name Descriptions Inheritance Implements Constants Properties Methods Inherited methods
Classes
Interfaces
Traits
Name Descriptions Types (parameter, return, etc.) Access modifiers
Functions
Methods
Properties

Example

Examples are available in the .wiki directory.

Installation & Usage

  • Please refer to this guide for instructions on installing phpDocumentor.
  • Usage instructions assume that phpdoc is the phpDocumentor binary.

Running manually

# Run phpDocumentor with --template argument pointed to this directory's markdown template
phpdoc --directory=src --target=docs --template=<PATH TO THIS REPOSITORY/themes/markdown>

Using Composer

Installation via Composer

# Require this package. You probably want it as a dev dependency
composer require --dev saggre/phpdocumentor-markdown

Running manually after installing via Composer

# Run phpDocumentor with --template argument pointed to markdown template inside vendor directory
phpdoc --directory=src --target=docs --template="vendor/saggre/phpdocumentor-markdown/themes/markdown"

Installation & Usage tips

Adding a Composer helper script

Add this script to your composer.json and run composer create-docs to generate the documentation.

"scripts": {
    "create-docs": "phpdoc --directory=src --target=docs --template='vendor/saggre/phpdocumentor-markdown/themes/markdown'"
},

Using with PhpDocumentor XML config

Add a template element to your phpDocumentor XML config and run phpDocumentor to generate the documentation.

<phpdocumentor>
    <!-- Specify template element inside phpdocumentor -->
    <template name="./vendor/saggre/phpdocumentor-markdown/themes/markdown"/>
</phpdocumentor>

You can also check out the config file used for generating this repository's example documentation for a full example.

GitLab wiki

The output of this template can be used directly as a GitLab wiki.

GitHub wiki

⚠️ GitHub wiki uses a flat directory structure for linking, so the internal links in the resulting documentation will not work as expected.

CI pipelines

You can use the PhpDocumentor Docker image with this template in your CI pipelines to generate documentation automatically.

AI integration

The generated documentation can be used as prompt context for AI models that work with source code. For other use cases you'll likely want structured data, like JSON.

Running tests

# Clone the repository
git clone git@github.com:Saggre/phpDocumentor-markdown.git

# Go to the cloned repository
cd phpDocumentor-markdown

# Install dependencies
composer install

# Set up PHPUnit configuration
cp phpunit.xml.dist phpunit.xml

# Run PHPUnit in project root directory
composer test

Contributing

  • There are unit tests and functional tests available in the tests directory.
    • Unit tests are used to test individual Twig macros
    • Functional tests are used to test the whole documentation generation process

Inspired by:

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor
spatie/laravel-javascript-views