PHPackages                             on1kel/oas-core - 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. on1kel/oas-core

ActiveLibrary[API Development](/categories/api)

on1kel/oas-core
===============

Open API Specification Core: Строго типизированное ядро (Core) для работы со спецификацией OpenAPI 3.1 / 3.2 на PHP

v1.0.9(6mo ago)064—0%2MITPHPPHP ^8.2

Since Oct 24Pushed 6mo agoCompare

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

READMEChangelogDependencies (6)Versions (10)Used By (2)

on1kel/oas-core
===============

[](#on1keloas-core)

**OpenAPI core для PHP**: неизменяемые (immutable) модели OAS 3.x, быстрый парсер с поддержкой `$ref`, сериализация/денормализация, обход дерева (visitor/walker), профили версий и базовые правила валидации.

> Пакет предоставляет ядро, общее для разных версий спецификации OpenAPI 3.x. Поддержка различий версии (например, 3.1 vs 3.2) вынесена в **профили** (`SpecProfile`).

---

Возможности
-----------

[](#возможности)

- 🧩 **Модели OpenAPI**: типизированные value-объекты (например, `On1kel\\OAS\\Core\\Model\\OpenApiDocument`, `Info`, `PathItem`, `Components` и т.д.).
- 📥 **Парсинг**: преобразование массива/JSON в объектную модель, включая **разрешение `$ref`** (внутренних и внешних).
- 📤 **Сериализация**: обратная операция — модель → массив/JSON.
- 🧭 **Определение версии**: извлечение `openapi: "MAJOR.MINOR[.patch]"` и выбор соответствующего профиля.
- 🚶 **Обход дерева**: `Traverse\\Walker` + `NodeVisitor` с JSON Pointer путями каждого узла.
- ✅ **Валидация**: базовый валидатор с набором правил (например, `UniqueOperationIdRule`, `ReferenceNoSiblingsRule`, и др.).
- 🔌 **PSR-совместимость**: использует `psr/http-client` и `psr/http-factory` для загрузки внешних `$ref`.
- 🧱 **Иммутабельность**: модели неизменяемы.

---

Установка
---------

[](#установка)

```
composer require on1kel/oas-core
```

**Требования**: PHP ^8.2, расширения `ext-json`, `ext-ctype`. Зависимости времени выполнения: `psr/http-client`, `psr/http-factory`.

Лицензия: MIT.

---

Быстрый старт
-------------

[](#быстрый-старт)

### 1) Профили версий

[](#1-профили-версий)

Ядро опирается на интерфейс профиля `On1kel\\OAS\\Contract\\Profile\\SpecProfile`. Реализации профилей (например, для OAS 3.1/3.2) могут поставляться отдельными пакетами вашего проекта. Ниже — **минимальный пример профиля** для демонстрации (под нужды проекта реализуйте полноценную версию):

```
