PHPackages                             prometee/swagger-client-generator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. prometee/swagger-client-generator

Abandoned → [prometee/openapi-client-generator](/?search=prometee%2Fopenapi-client-generator)Library[API Development](/categories/api)

prometee/swagger-client-generator
=================================

Open API PHP8 skeleton client generator

v1.0.0(1y ago)111MITPHPPHP ^8.1

Since May 23Pushed 1y ago1 watchersCompare

[ Source](https://github.com/Prometee/OpenApiClientGenerator)[ Packagist](https://packagist.org/packages/prometee/swagger-client-generator)[ RSS](/packages/prometee-swagger-client-generator/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (5)Versions (3)Used By (0)

[![Latest Version on Packagist](https://camo.githubusercontent.com/4e1cd55f0afb70b5efa9d7851c1da0d64de82a704e9e5890aef7f5623485dd48/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f50726f6d657465652f6f70656e6170692d636c69656e742d67656e657261746f722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/Prometee/openapi-client-generator)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![Build Status](https://github.com/Prometee/OpenApiClientGenerator/workflows/Build/badge.svg)](https://github.com/Prometee/OpenApiClientGenerator/actions?query=workflow%3A%22Build%22)[![Quality Score](https://camo.githubusercontent.com/153490ff32e7dc168ae3c2dd8bad5615a611b4a875f1cbb7f4fb8a43d9e8a55b/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f50726f6d657465652f4f70656e417069436c69656e7447656e657261746f722e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/Prometee/OpenApiClientGenerator)

OpenApi PHP8 client generator
-----------------------------

[](#openapi-php8-client-generator)

This library is designed to generate PHP8 model and operation classes from an Open API json file.

Installation
------------

[](#installation)

Install using Composer :

```
$ composer require prometee/openapi-client-generator

```

Usage
-----

[](#usage)

```
declare(strict_types=1);

$loader = require_once( __DIR__.'/vendor/autoload.php');

use Prometee\PhpClassGenerator\Builder\ClassBuilder;
use Prometee\PhpClassGenerator\Builder\Model\ModelFactoryBuilder;
use Prometee\PhpClassGenerator\Builder\View\ViewFactoryBuilder;
use Prometee\SwaggerClientGenerator\OpenApi\Helper\ModelHelper;
use Prometee\SwaggerClientGenerator\OpenApi\Helper\OperationsHelper;
use Prometee\SwaggerClientGenerator\PhpGenerator\Converter\ModelConverter;
use Prometee\SwaggerClientGenerator\PhpGenerator\Converter\OpenApiConverter;
use Prometee\SwaggerClientGenerator\PhpGenerator\Converter\OperationsConverter;
use Prometee\SwaggerClientGenerator\PhpGenerator\PhpGenerator;
use Prometee\SwaggerClientGenerator\PhpGenerator\Operation\OperationsMethodGenerator;

$baseUri = 'https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/examples/v3.0/petstore-expanded.json';
$folder = __DIR__ . '/build';
$namespace = 'Tests\\Prometee\\SwaggerClientGenerator\\Build';
$abstractOperationClass = \MyVendor\MyApi\AbstractOperations::class;
$throwClasses = [
    \MyVendorMyApi\piException => 'ApiException',
    \Http\Client\Exception => 'HttpClientException',
    \Symfony\Component\Serializer\Exception\ExceptionInterface => 'SerializerExceptionInterface',
];

// Instantiate the PHP class generator.
// It builds PHP classes from a given array config.
$phpGenerator = new PhpGenerator(
    new ClassBuilder(
        new ModelFactoryBuilder(),
        new ViewFactoryBuilder()
    )
);

// Instantiate the Open API model converter.
// It will convert model definitions to an array of config for the PhpGenerator.
$modelConverter = new ModelConverter(
    'Model',
    $namespace,
    new ModelHelper()
);

// Instantiate the Open API operations converter.
// It will create array of config for the PhpGenerator to create Operations classes.
// They will contain for example each "GET /pets" "GET /pets/{id}" methods to query the API.
$operationsConverter = new OperationsConverter(
    'Operations',
    $namespace . "\\" . $modelConverter->getModelNamespacePrefix(),
    new OperationsHelper(),
    new OperationsMethodGenerator()
);

// 0.1. Configure the PHP Generator
$phpGenerator->configure($path, $namespace);
// 0.2. Configure the Operations classes with some default extending class
$operationsConverter->setAbstractOperationsClass($abstractOperationClass);
// 0.3. Configure the Operations classes with some PHPDoc @throw class on each generated methods
$operationsConverter->setThrowsClasses($throwClasses);

// 1. Convert OpenApi schema to an array understandable by the PhpGenerator
$openApiConverter = new OpenApiConverter($baseUri, $modelConverter, $operationsConverter);
$classConfig = $openApiConverter->convert();

// 2. Create PHP classes thank to the config given
$phpGenerator->setClassesConfig($classConfig);
$phpGenerator->generate();
```

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance32

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

715d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/970e9207938e33441b0b7e3207c46b4df8ed7f020c77e40793812405ae8b0a3b?d=identicon)[Prometee](/maintainers/Prometee)

---

Top Contributors

[![Prometee](https://avatars.githubusercontent.com/u/861820?v=4)](https://github.com/Prometee "Prometee (66 commits)")

---

Tags

apigeneratoropenapiphp8

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Rector

Code StyleECS

Type Coverage Yes

### Embed Badge

![Health badge](/badges/prometee-swagger-client-generator/health.svg)

```
[![Health](https://phpackages.com/badges/prometee-swagger-client-generator/health.svg)](https://phpackages.com/packages/prometee-swagger-client-generator)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M474](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M270](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M186](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M33](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M452](/packages/google-gax)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
