PHP 8.1+ Latest Stable Version Latest Unstable Version License MIT
Reference implementation for TypeLang Printer.
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
$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_*, // ... // }