php-openapi-generator

Configuration Reference

This page covers the most important options in php-openapi-generator.php.

Core Inputs

Namespaces and Output Directories

Server vs Client Generation

frameworkVersion and httpClientVersion are optional string values you can set when generated code must react to framework- or transport-specific breaking changes. They are intended for template selection and conditional generation logic, similar to how $config->phpVersion is already used for PHP-specific output.

Model Generation Options

Type and Naming Controls

Validation Controls

These four flags inject runtime validation calls in generated server/client API classes when validationStrategy is ValidationStrategy::NativeMethod, ValidationStrategy::SymfonyConstraints, or ValidationStrategy::LaravelValidation.

See Validation Strategies for behavior and recommended defaults.

Operation Filtering

Generate only selected operations and their reachable schema graph:

Plugin and Runtime Controls

For x-* extension usage and custom plugin hooks, see Extension Plugins.

Example Config

<?php

declare(strict_types=1);

use MaxBeckers\OpenApiGenerator\Config\FrameworkTarget;
use MaxBeckers\OpenApiGenerator\Config\GenerationTarget;
use MaxBeckers\OpenApiGenerator\Config\GeneratorConfig;
use MaxBeckers\OpenApiGenerator\Config\HttpClientAdapter;
use MaxBeckers\OpenApiGenerator\Config\ValidationStrategy;

$config = new GeneratorConfig();

$config->specFile = 'openapi.yaml';
$config->outputDir = 'generated';

$config->modelNamespace = 'App\\Model';
$config->apiNamespace = 'App\\Api';

$config->generationTarget = GenerationTarget::Server;
$config->frameworkTarget = FrameworkTarget::Symfony;
$config->frameworkVersion = '8.0';

$config->phpReadonly = true;
$config->validationStrategy = ValidationStrategy::SymfonyConstraints;
$config->validateServerRequest = true;

// Client-only example when generating HTTP clients instead of server glue:
// $config->generationTarget = GenerationTarget::Client;
// $config->httpClient = HttpClientAdapter::Guzzle;
// $config->httpClientVersion = '7.8';

$config->includeTags = ['pets'];
$config->excludeOperationIds = ['deletePet'];

return $config;

CLI Overrides

Complete Option List

For all properties and defaults, see src/Config/GeneratorConfig.php.