openapi-tools/generator-utils

Shared PHP Parser utilities for OpenAPI Tools code generators

Maintainers

Package info

github.com/php-openapi-tools/generator-utils

Language:Makefile

pkg:composer/openapi-tools/generator-utils

Transparency log

Statistics

Installs: 616

Dependents: 2

Suggesters: 0

Stars: 0

Open Issues: 0

dev-main 2026-08-14 17:41 UTC

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);