sonata / docs
There is no license information available for the latest version (v1.0.2) of this package.
OpenAPI docs module for Sonata framework
v1.0.2
2026-02-07 09:22 UTC
Requires
- php: ^8.3
- sonata/framework: ^1.0
- zircote/swagger-php: ^6.0
This package is auto-updated.
Last update: 2026-04-07 09:37:04 UTC
README
Модуль 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
UI в комплект не входит. Можно:
- Использовать локальные ассеты (как в приложении
view/swagger). - Подключить Swagger UI через CDN и указывать
/openapi.jsonкак источник.