waffle-commons / openapi
OpenAPI 3.1 document generation for the Waffle framework, built from #[Route] attributes and typed DTOs.
Requires
- php: ^8.5
- waffle-commons/contracts: dev-main
Requires (Dev)
- carthage-software/mago: ^1.50
- cyclonedx/cyclonedx-php-composer: ^6.2
- igor-php/igor-php: ^0.9.7
- php-mock/php-mock-phpunit: ^2.15
- phpunit/phpunit: ^12.5
- vimeo/psalm: ^6.19
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-31 16:39:41 UTC
README
Waffle OpenApi Component
Release: unreleased ย |ย
CHANGELOG.mdStatus: In development for0.1.0-beta7โ roadmap[API-01](RFC-016). Generation runs at build time (openapi:generate); nothing is added to the request hot path.
OpenAPI 3.1 document generation for the Waffle framework, built from #[Route] attributes and typed DTOs.
๐ฆ Installation
composer require waffle-commons/openapi
๐งญ Architectural boundary (mago guard)
Waffle\Commons\OpenApi depends only on waffle-commons/contracts (plus waffle-commons/utils
for shared primitives) and the PSR interfaces โ never on a sibling component's concrete classes. Every
interface it implements lands in waffle-commons/contracts first.
๐งต Worker safety
Services are resident in FrankenPHP worker mode: no mutable state may survive a request. Anything that
holds per-request state implements ResettableInterface directly; composer igor must report 0 KO.
๐งช Testing
composer mago # formatter, linter, analyzer, guard โ clean means zero output composer tests # PHPUnit 12.5, line coverage โฅ 95 % composer igor # worker-safety audit
๐ Documentation
Full documentation tree: waffle-commons/documentation
๐ License
MIT โ see LICENSE.md.