PHPackages                             phalcon/quill - 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. phalcon/quill

ActiveLibrary

phalcon/quill
=============

API documentation generator for Zephir and PHP sources

0467↑2636.6%[2 issues](https://github.com/phalcon/quill/issues)[1 PRs](https://github.com/phalcon/quill/pulls)PHPCI passing

Since Aug 2Pushed todayCompare

[ Source](https://github.com/phalcon/quill)[ Packagist](https://packagist.org/packages/phalcon/quill)[ RSS](/packages/phalcon-quill/feed)WikiDiscussions master Synced today

READMEChangelog (1)DependenciesVersions (1)Used By (0)

Phalcon Quill
=============

[](#phalcon-quill)

[![Latest Version](https://camo.githubusercontent.com/89f5fa272f2bd19e152ccfecd6879f09b24f60fd41e6c9873dbc2efe00fde364/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7068616c636f6e2f7175696c6c3f696e636c7564655f70726572656c6561736573267374796c653d666c61742d737175617265266c6f676f3d7061636b6167697374266c6f676f436f6c6f723d7768697465)](https://packagist.org/packages/phalcon/quill)[![PHP Version](https://camo.githubusercontent.com/44b26cc8ce717e08740232ce09989231dccd3423ed481fa4d9a68515897743cc/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f7068616c636f6e2f7175696c6c3f7374796c653d666c61742d737175617265266c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://packagist.org/packages/phalcon/quill)[![Total Downloads](https://camo.githubusercontent.com/9cd0d83d809f586057a90eefd608c450970671938b69e7563668197c530636b3/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7068616c636f6e2f7175696c6c3f7374796c653d666c61742d737175617265266c6f676f3d7061636b6167697374266c6f676f436f6c6f723d7768697465)](https://packagist.org/packages/phalcon/quill/stats)[![License](https://camo.githubusercontent.com/7d7bb97a6b1bb4d6447c15537e3c4c605aa18e8c2161ac18bb224904d3ed4050/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f7068616c636f6e2f7175696c6c3f7374796c653d666c61742d737175617265266c6f676f3d6f70656e736f75726365696e6974696174697665266c6f676f436f6c6f723d7768697465)](https://github.com/phalcon/quill/blob/master/LICENSE)

[![Quill CI](https://github.com/phalcon/quill/actions/workflows/main.yml/badge.svg?branch=master)](https://github.com/phalcon/quill/actions/workflows/main.yml)[![Quality Gate Status](https://camo.githubusercontent.com/0c785e08fb34850847c6fe6cc26177d15dae0453ae6589ab2ac964a98d3d8a72/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d7068616c636f6e5f7175696c6c32266d65747269633d616c6572745f737461747573)](https://sonarcloud.io/summary/new_code?id=phalcon_quill2)[![Coverage](https://camo.githubusercontent.com/d1515837220ff8cc5fa63ec517fcd0c04ac398321e2b2055073e47d7f564845a/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d7068616c636f6e5f7175696c6c32266d65747269633d636f766572616765)](https://sonarcloud.io/summary/new_code?id=phalcon_quill2)[![PDS Skeleton](https://camo.githubusercontent.com/50d01a5094afcc3a827c3cadaec43d23b2a256cb249f5fdd6e5ffdb53ea7971c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7064732d736b656c65746f6e2d626c75652e7376673f7374796c653d666c61742d737175617265)](https://github.com/php-pds/skeleton)

[![Discord](https://camo.githubusercontent.com/94fc3d9eff10556bb8115023b0f05a2b7465d01e863e0d7bb030e8fc51cfcf56/68747470733a2f2f696d672e736869656c64732e696f2f646973636f72642f3331303931303438383135323337353239373f6c6162656c3d446973636f7264266c6f676f3d646973636f7264267374796c653d666c61742d737175617265)](https://phalcon.io/discord)[![Contributors](https://camo.githubusercontent.com/e7c640999032b78ed05304381f7942a02c616ba495e14d0158fb4bf3c58195ab/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636f6e7472696275746f72732f7068616c636f6e2f7175696c6c3f7374796c653d666c61742d737175617265266c6f676f3d676974687562266c6f676f436f6c6f723d7768697465)](https://github.com/phalcon/quill/graphs/contributors)[![OpenCollective Backers](https://camo.githubusercontent.com/b0e7e54861423843ca8c0b82b3cbdbd7e43557493dee35be2c721a9cc21107a1/68747470733a2f2f696d672e736869656c64732e696f2f6f70656e636f6c6c6563746976652f6261636b6572732f7068616c636f6e3f7374796c653d666c61742d737175617265266c6f676f3d6f70656e636f6c6c656374697665266c6f676f436f6c6f723d7768697465)](https://opencollective.com/phalcon)[![OpenCollective Sponsors](https://camo.githubusercontent.com/09f0801da6213d104e2283e28a70b5b5c9aa25076b9211442e403187c64ca12b/68747470733a2f2f696d672e736869656c64732e696f2f6f70656e636f6c6c6563746976652f73706f6e736f72732f7068616c636f6e3f7374796c653d666c61742d737175617265266c6f676f3d6f70656e636f6c6c656374697665266c6f676f436f6c6f723d7768697465)](https://opencollective.com/phalcon)

API documentation generator for Zephir and PHP sources.

Quill reads a source tree into a typed model, then renders that model. Readers know one language and nothing about output; formatters know one output format and nothing about the language it came from.

```
ZephirReader  (phalcon/zephir)   ─┐                        ┌─→ MarkdownFormatter  (mkdocs pages)
                                  ├─→  Model  ─→ toArray() ─┤
PhpReader     (nikic/php-parser) ─┘   (object graph)        └─→ JsonFormatter      (model document)

```

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

[](#requirements)

- PHP `^8.1`
- `phalcon/zephir` to read `.zep` sources; selecting `language: zephir` without it fails with an explanation rather than a "class not found"

`nikic/php-parser` is a hard dependency and comes with quill - the PHP reader is not optional the way the Zephir one is.

Install
-------

[](#install)

```
composer require --dev phalcon/quill

```

Usage
-----

[](#usage)

```
vendor/bin/quill generate                             every page, using ./quill.php
vendor/bin/quill generate encryption                  only pages matching the filter
vendor/bin/quill generate --format=json               one model document instead
vendor/bin/quill parity left.json right.json          structural differences
vendor/bin/quill docblocks left.json right.json out.csv

```

Options
-------

[](#options)

OptionPurpose`--config=`explicit path to `quill.php`, default `./quill.php``--output=`destination override for one run; assets follow the documents`--format=``markdown` (default) or `json``--help`, `-h`usage``positional; narrows what is written, matched case-insensitivelyThe registry is always built from every source file regardless of the filter, so cross-page links stay correct.

Configuration
-------------

[](#configuration)

Everything project-specific lives in a `quill.php` at the project root. Nothing about any particular repository is compiled into quill.

```
