This is the fastest path from OpenAPI file to a typed PHP API client.
Generate DTOs and API client classes, then call your API through generated methods instead of hand-written request code.
<?php
declare(strict_types=1);
use MaxBeckers\OpenApiGenerator\Config\GenerationTarget;
use MaxBeckers\OpenApiGenerator\Config\GeneratorConfig;
use MaxBeckers\OpenApiGenerator\Config\HttpClientAdapter;
$config = new GeneratorConfig();
$config->specFile = 'openapi.yaml';
$config->outputDir = 'generated';
$config->modelNamespace = 'App\\Model';
$config->modelOutputDir = 'Model';
$config->apiNamespace = 'App\\Api';
$config->apiOutputDir = 'Api';
$config->generationTarget = GenerationTarget::Client;
$config->httpClient = HttpClientAdapter::SymfonyHttpClient; // or Guzzle / Psr18
return $config;
vendor/bin/openapi-gen
*ApiClient in your services.HttpClientAdapter::SymfonyHttpClient: good default for Symfony projectsHttpClientAdapter::Guzzle: fits existing Guzzle middleware stacksHttpClientAdapter::Psr18: portable, framework-neutral optionSee also: Client Generation and HTTP Client Adapters.