PHPackages                             fiasco/tabular-openapi - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. fiasco/tabular-openapi

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

fiasco/tabular-openapi
======================

Convert OpenAPI Schema into a relational table structure

03.9k↓50%1PHP

Since Oct 12Pushed 2y ago1 watchersCompare

[ Source](https://github.com/fiasco/tabular-openapi)[ Packagist](https://packagist.org/packages/fiasco/tabular-openapi)[ RSS](/packages/fiasco-tabular-openapi/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (1)

Tabular OpenApi
===============

[](#tabular-openapi)

Store OpenApi schema objects in tabular data structures.

This library allows you to map OpenApi schemas into tables that could be further converted into CSV, SQL or data lake storage (e.g. Domo).

Install
-------

[](#install)

This library depends on cebe/php-openapi and can be installed with composer:

```
composer require fiasco/tabular-openapi

```

Usage
-----

[](#usage)

Load the schema

```
use Fiasco\TabularOpenapi\Schema;

$schema = new Schema('https://path/to/openapi-spec.json');
```

Get an OpenApi schema component to insert data into.

```
$table = $schema->getTable('Report');
```

Insert your OpenApi compliant schema object into the table:

```
$table->addRow($report);
```

Loop over the schema tables to discover data in the tables. Tabular OpenApi has a dev dependency on Symfony Console so you can output tablular data to console during testing:

```
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Console\Output\ConsoleOutput;
use Symfony\Component\Console\Style\SymfonyStyle;

$io = new SymfonyStyle(new ArgvInput(), new ConsoleOutput());

foreach ($schema->getTables() as $name => $table) {
    $io->title($name.': '.$table->getRowsTotal() . ' ('.$table->uuid.')');
    $rows = [];
    foreach ($table->fetchAll() as $row) {
        $rows[] = $row;
    }
    $headers = array_keys(reset($rows) ?: []);

    $io->table($headers, $rows);
    $io->text('----');
}
```

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity20

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity21

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/f99b352933e300595a92c09b6c7839a6a3d0ce3ce8b07018fa49f921adbb6302?d=identicon)[fiasco](/maintainers/fiasco)

---

Top Contributors

[![fiasco](https://avatars.githubusercontent.com/u/108160?v=4)](https://github.com/fiasco "fiasco (10 commits)")

### Embed Badge

![Health badge](/badges/fiasco-tabular-openapi/health.svg)

```
[![Health](https://phpackages.com/badges/fiasco-tabular-openapi/health.svg)](https://phpackages.com/packages/fiasco-tabular-openapi)
```

###  Alternatives

[magekey/module-bestseller-widget

Magento 2 Bestseller Widget

1618.6k](/packages/magekey-module-bestseller-widget)

PHPackages © 2026

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