PHPackages                             zero-to-prod/docgen-visitor - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. zero-to-prod/docgen-visitor

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

zero-to-prod/docgen-visitor
===========================

A PHP AST visitor for automatically generating or updating docblocks in PHP source code.

v1.2.0(1y ago)18581MITPHPPHP &gt;=8.1CI passing

Since Feb 18Pushed 8mo ago1 watchersCompare

[ Source](https://github.com/zero-to-prod/docgen-visitor)[ Packagist](https://packagist.org/packages/zero-to-prod/docgen-visitor)[ Docs](https://github.com/zero-to-prod/docgen-visitor)[ Fund](https://github.com/sponsors/zero-to-prod)[ RSS](/packages/zero-to-prod-docgen-visitor/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (5)Dependencies (3)Versions (9)Used By (1)

Zerotoprod\\DocgenVisitor
=========================

[](#zerotoproddocgenvisitor)

[![](art/logo.png)](art/logo.png)

[![Repo](https://camo.githubusercontent.com/9a90a3efeee26aed7d7f2feee9cd84566a26f9c362cc773b184d076210906e1c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6769746875622d677261793f6c6f676f3d676974687562)](https://github.com/zero-to-prod/docgen-visitor)[![GitHub Actions Workflow Status](https://camo.githubusercontent.com/b8f0f3726788dc876b5c8314100a85c43d964634504b5a89a7bc1d2aad110f31/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f7a65726f2d746f2d70726f642f646f6367656e2d76697369746f722f746573742e796d6c3f6c6162656c3d74657374)](https://github.com/zero-to-prod/docgen-visitor/actions)[![GitHub Actions Workflow Status](https://camo.githubusercontent.com/3c06cba455b39a99569a8e822a29e5a4239b0a00824e3531803ae3cd557d6794/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f7a65726f2d746f2d70726f642f646f6367656e2d76697369746f722f6261636b77617264735f636f6d7061746962696c6974792e796d6c3f6c6162656c3d6261636b77617264735f636f6d7061746962696c697479)](https://github.com/zero-to-prod/docgen-visitor/actions)[![Packagist Downloads](https://camo.githubusercontent.com/bc5bbed029fb6b1eaf49f1671052cf86d4760eaaff82798dcde763f0c5b26719/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7a65726f2d746f2d70726f642f646f6367656e2d76697369746f723f636f6c6f723d626c7565)](https://packagist.org/packages/zero-to-prod/docgen-visitor/stats)[![php](https://camo.githubusercontent.com/9e033c46700fbf07bcc290aa0fc70d1756bea8908b3dfe87930743425545e8b9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f7a65726f2d746f2d70726f642f646f6367656e2d76697369746f722e7376673f636f6c6f723d707572706c65)](https://packagist.org/packages/zero-to-prod/docgen-visitor/stats)[![Packagist Version](https://camo.githubusercontent.com/c4a37328654ed22f9e3f4618c6b5dd03e4c244dc0f5ee0228845d6e3bb9c72ee/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7a65726f2d746f2d70726f642f646f6367656e2d76697369746f723f636f6c6f723d663238643161)](https://packagist.org/packages/zero-to-prod/docgen-visitor)[![License](https://camo.githubusercontent.com/e3bc0fdce987eedff97b88db1762096bbac49fd9c2e3d44b8244beec90f50556/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f7a65726f2d746f2d70726f642f646f6367656e2d76697369746f723f636f6c6f723d70696e6b)](https://github.com/zero-to-prod/docgen-visitor/blob/main/LICENSE.md)[![wakatime](https://camo.githubusercontent.com/391df8804de32708fb82efd2a64051d47dd83bc591a3f3178d6d141ba3042aa4/68747470733a2f2f77616b6174696d652e636f6d2f62616467652f6769746875622f7a65726f2d746f2d70726f642f646f6367656e2d76697369746f722e737667)](https://wakatime.com/badge/github/zero-to-prod/docgen-visitor)[![Hits-of-Code](https://camo.githubusercontent.com/40df194692baf7e6b15d88403611c7ee38183a5a32fafedfeaf1d3f52482f58c/68747470733a2f2f686974736f66636f64652e636f6d2f6769746875622f7a65726f2d746f2d70726f642f646f6367656e2d76697369746f723f6272616e63683d6d61696e)](https://hitsofcode.com/github/zero-to-prod/docgen-visitor/view?branch=main)

Contents
--------

[](#contents)

- [Introduction](#introduction)
- [Requirements](#requirements)
- [Installation](#installation)
- [Documentation Publishing](#documentation-publishing)
    - [Automatic Documentation Publishing](#automatic-documentation-publishing)
- [Usage](#usage)
- [Local Development](./LOCAL_DEVELOPMENT.md)
- [Contributing](#contributing)

Introduction
------------

[](#introduction)

A PHP AST visitor for automatically generating or updating docblocks in PHP source code.

Requirements
------------

[](#requirements)

- PHP 7.1 or higher.

Installation
------------

[](#installation)

Install `Zerotoprod\DocgenVisitor` via [Composer](https://getcomposer.org/):

```
composer require zero-to-prod/docgen-visitor
```

This will add the package to your project's dependencies and create an autoloader entry for it.

Documentation Publishing
------------------------

[](#documentation-publishing)

You can publish this README to your local documentation directory.

This can be useful for providing documentation for AI agents.

This can be done using the included script:

```
# Publish to default location (./docs/zero-to-prod/docgen-visitor)
vendor/bin/zero-to-prod-docgen-visitor

# Publish to custom directory
vendor/bin/zero-to-prod-docgen-visitor /path/to/your/docs
```

### Automatic Documentation Publishing

[](#automatic-documentation-publishing)

You can automatically publish documentation by adding the following to your `composer.json`:

```
{
    "scripts": {
        "post-install-cmd": [
            "zero-to-prod-docgen-visitor"
        ],
        "post-update-cmd": [
            "zero-to-prod-docgen-visitor"
        ]
    }
}
```

Usage
-----

[](#usage)

Here's how you can use DocgenVisitor to read a PHP file, process its contents, and then write the updated code back to the same file:

```
