PHPackages                             sonata/docs - 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. sonata/docs

ActiveLibrary[API Development](/categories/api)

sonata/docs
===========

OpenAPI docs module for Sonata framework

v1.0.2(3mo ago)037PHPPHP ^8.3

Since Feb 7Pushed 3mo agoCompare

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

READMEChangelogDependencies (2)Versions (4)Used By (0)

Sonata Docs
===========

[](#sonata-docs)

Модуль OpenAPI для Sonata Framework. Генерирует спецификацию и отдает ее через эндпоинт.

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

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

```
composer require sonata/docs
```

Эндпоинты
---------

[](#эндпоинты)

Контроллер `Sonata\Docs\Controllers\SwaggerController` подключается автоматически:

- `GET /openapi.json` — OpenAPI спецификация

Логика
------

[](#логика)

- Генератор `OpenApiGenerator` сканирует контроллеры и DTO.
- Использует атрибуты `#[Route]`, `#[Controller]`, `#[Tag]`, `#[Response]`, `#[From]`.
- В `prod` режиме применяет `OpenApiCache`.

Атрибуты для документации
-------------------------

[](#атрибуты-для-документации)

Используйте атрибуты Sonata Framework и OpenAPI:

- `#[Tag('Название', 'Описание')]` — группировка методов
- `#[Response(Dto::class, isArray: true)]` — схема ответа
- `#[From('json'|'query')]` — источник данных
- `#[OpenApi\Attributes\Property(...)]` — описание полей DTO

Пример:

```
use OpenApi\Attributes as OA;
use Sonata\Framework\Attributes\Response;
use Sonata\Framework\Attributes\Tag;

#[Tag('Пользователи')]
class UserController
{
    #[Response(UserResponse::class, isArray: true)]
    public function list(): array { /* ... */ }
}

final class UserResponse
{
    #[OA\Property(example: 1, description: 'ID пользователя')]
    public int $id;
}
```

Swagger UI
----------

[](#swagger-ui)

UI в комплект не входит. Можно:

1. Использовать локальные ассеты (как в приложении `view/swagger`).
2. Подключить Swagger UI через CDN и указывать `/openapi.json` как источник.

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance81

Actively maintained with recent releases

Popularity9

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity51

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

Every ~0 days

Total

3

Last Release

101d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9422fd07b352b8ce9d380d38ba9f8f186457895afd0c4c91182d560c85aeede0?d=identicon)[DimsHewiks](/maintainers/DimsHewiks)

---

Top Contributors

[![DimsHewiks](https://avatars.githubusercontent.com/u/143056381?v=4)](https://github.com/DimsHewiks "DimsHewiks (3 commits)")

### Embed Badge

![Health badge](/badges/sonata-docs/health.svg)

```
[![Health](https://phpackages.com/badges/sonata-docs/health.svg)](https://phpackages.com/packages/sonata-docs)
```

###  Alternatives

[darkaonline/l5-swagger

OpenApi or Swagger integration to Laravel

2.9k34.0M112](/packages/darkaonline-l5-swagger)[darkaonline/swagger-lume

OpenApi or Swagger integration to Lumen

3372.3M3](/packages/darkaonline-swagger-lume)[jlapp/swaggervel

A great way to integrate Swagger into Laravel

492931.6k2](/packages/jlapp-swaggervel)[light/yii2-swagger

swagger intergation with yii2

154801.6k4](/packages/light-yii2-swagger)[yii2mod/yii2-swagger

Swagger Documentation Generator for Yii2 Framework

63384.7k9](/packages/yii2mod-yii2-swagger)[alt3/cakephp-swagger

Instant Swagger documentation for your CakePHP 4.x APIs

64197.3k3](/packages/alt3-cakephp-swagger)

PHPackages © 2026

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