Skip to content

Latest commit

 

History

History
70 lines (55 loc) · 2.18 KB

README.md

File metadata and controls

70 lines (55 loc) · 2.18 KB

PHP 8.1+ Latest Stable Version Latest Unstable Version License MIT

Reference implementation for TypeLang Printer.

Resources

Installation

TypeLang Printer is available as Composer repository and can be installed using the following command in a root of your project:

composer require type-lang/printer

Quick Start

$parser = new \TypeLang\Parser\Parser();
$type = $parser->parseType(<<<'PHP'
    array{
        field1: (callable(Example,int):mixed),
        field2: list<Some>,
        field3: iterable<array-key, array{int, non-empty-string}>,
        Some::CONST_*,
        "\njson_flags": \JSON_*,
        ...
    }
    PHP);

// Print Statement

$native = new \TypeLang\Printer\NativeTypePrinter();
echo $native->print($type);

// Expected Output:
// array

$phpdoc = new \TypeLang\Printer\PrettyPrinter();
echo $phpdoc->print($type);

// Expected Output:
// array{
//     field1: callable(Example, int): mixed,
//     field2: list<Some>,
//     field3: iterable<array-key, array{
//         int,
//         non-empty-string
//     }>,
//     Some::CONST_*,
//     "\njson_flags": \JSON_*,
//     ...
// }