openapi-tools / generator-utils
Shared PHP Parser utilities for OpenAPI Tools code generators
Package info
github.com/php-openapi-tools/generator-utils
Language:Makefile
pkg:composer/openapi-tools/generator-utils
dev-main
2026-08-14 17:41 UTC
Requires
- php: ^8.4
- nikic/php-parser: ^5.0
- openapi-tools/representation: dev-main
- openapi-tools/utils: dev-main
Requires (Dev)
- wyrihaximus/async-test-utilities: ^13.5.1
- wyrihaximus/makefiles: ^0.13.3
This package is auto-updated.
Last update: 2026-08-14 17:42:01 UTC
README
Shared nikic/php-parser utilities for OpenAPI Tools code generators.
Components
| Class | Purpose |
|---|---|
FileStringyfier |
Pretty-print AST File contents with strict_types |
Builder\DocBlockBuilder |
Format PHPDoc blocks from line arrays |
Builder\ExpressionBuilder |
Common AST expressions (var, thisMethod, identical, andAll, …) |
Builder\StatementBuilder |
Common AST statements (assign, yieldMapOverIterable, …) |
Builder\MatchBuilder |
Build match expressions on variables or class name strings |
Builder\HydrationBuilder |
Generate $this->hydrate($class, $data)-style calls |
Builder\NamespaceBuilder |
Wrap class nodes in namespace File objects |
Type\UnionTypeUtils |
Resolve OpenAPI union types to PHP type strings |
Type\PropertyTypeResolver |
Resolve schema property types and docblock lines |
Usage
use OpenAPITools\Generator\Utils\Builder\ExpressionBuilder; use OpenAPITools\Generator\Utils\Builder\MatchBuilder; use OpenAPITools\Generator\Utils\Builder\StatementBuilder; use OpenAPITools\Generator\Utils\FileStringyfier; use PhpParser\PrettyPrinter\Standard; $methodBody = [ StatementBuilder::assign('payload', ExpressionBuilder::thisMethod('resolve', ['headers', 'data'])), new Stmt\Return_(ExpressionBuilder::thisProperty('handler')), ]; $match = MatchBuilder::onClassNameStrings('className', [ ['classNames' => ['\\Vendor\\Schema\\Foo'], 'body' => ExpressionBuilder::thisMethod('hydrateFoo', ['data'])], ]); $php = new FileStringyfier(new Standard())->toString($file);