PHPackages                             wwwision/types-glossary - 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. wwwision/types-glossary

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

wwwision/types-glossary
=======================

1.1.1(1y ago)010.0k↓33.3%MITPHPPHP &gt;=8.1

Since Jul 31Pushed 1y ago1 watchersCompare

[ Source](https://github.com/bwaidelich/types-glossary)[ Packagist](https://packagist.org/packages/wwwision/types-glossary)[ GitHub Sponsors](https://github.com/sponsors/bwaidelich)[ Fund](https://www.paypal.me/bwaidelich)[ RSS](/packages/wwwision-types-glossary/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (6)Versions (5)Used By (0)

types-glossary
==============

[](#types-glossary)

Simple integration for the wwwision/types package that allows to generate Markdown Glossary for all types

Usage
-----

[](#usage)

This package can be installed via [composer](https://getcomposer.org):

```
composer require wwwision/types-glossary
```

To generate a Glossary, at least one class is required:

```
#[StringBased(minLength: 1, maxLength: 200)]
final class Name {
    private function __construct(public readonly string $value) {}
}

#[IntegerBased(minimum: 1, maximum: 130)]
final class Age {
    private function __construct(public readonly int $value) {}
}

final class Contact {
    public function __construct(
        public readonly Name $name,
        public readonly Age $age,
    ) {}
}

#[ListBased(itemClassName: Contact::class, minCount: 1, maxCount: 5)]
final class Contacts {
    private function __construct(private readonly array $contacts) {}
}
```

Now, a glossary can be rendered via:

```
// ...
$generator = new GlossaryGenerator();
$generator->registerClassNames('Group 01', Name::class, Age::class);
$generator->registerClassNames('Group 02', Contact::class, Contacts::class);

$expected =
