zircote/swagger-php
Generate interactive documentation for your RESTful API using PHP attributes (preferred) or PHPDoc annotations
6.6.0
152M downloads/mo
#290 most downloaded on Packagist
zircote/swagger-php
What this package is like to depend on
Last release 6 days ago
18 Aug 2026
Ships fairly regularly
a new release about every 2 weeks
Rarely documented
notes for 10 of 205 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
210 releases · first in 2012
45 releases in the last 12 months
see the full history below
Release timeline
205 releases · Apr 2012 to Aug 2026Releases
latest 60 of 210-
6.6.018 Aug 2026Release notes
Open source →What's Changed
- fix(Spec): update remaining
$reftype-hints to acceptOA\Schema\Refby @DerManoMann in #2119 - chore(CS): follow rector rule changes by @DerManoMann in #2120
- feat(Spec): add shortcut to omit
OA\Propertywhen stacking witbhOA\Schemaby @DerManoMann in #2121 - refactor(Spec): refactor attribute
contains()method by @DerManoMann in #2122 - fix(Spec): visit all
refwitheachRef()by @DerManoMann in #2123 - feat(Spec): introduce
ComponentIndexfor lazy resolution of$refvalues and component lookups by @DerManoMann in #2124 - fix(Type): resolve ``\stdClass` type hint as OpenAPI object type by @DerManoMann in #2125
Full Changelog: 6.5.3...6.6.0
- fix(Spec): update remaining
-
6.5.312 Aug 2026Release notes
Open source →What's Changed
- feat(Spec): refactor/assembler level resolution by @DerManoMann in #2104
- Feat/scratch hybrid spec by @DerManoMann in #2108
- Explicitely allow additional CLI args for phpunit (only) by @DerManoMann in #2110
- feat(Spec): limit request body support to
Post, 'Put,PatchandDelete` by @DerManoMann in #2109 - refactor(Spec): move
getDirectInterfacesintoAttributeFactoryby @DerManoMann in #2112 - feat(Spec): add more spec scratch fixtures (batch II) by @DerManoMann in #2111
- refactor(Spec): refactor
mergeAllOfanddedupAllOfRefslogic intoRefsaugmenter by @DerManoMann in #2113 - fix(Spec): minor compile improvements and handle of PHP warnings by @DerManoMann in #2115
- chore(CS): Enable
php-cs-fixerruleordered_class_elementsby @DerManoMann in #2116 - feat(Spec): add inheritance reference doc by @DerManoMann in #2118
- feat(Spec): introduce
OA\Schema\Refwhich can be used as schema and onref:directyl by @DerManoMann in #2117 - feat(Spec): add operation inheritance by @DerManoMann in #2114
Full Changelog: 6.5.2...6.5.3
-
6.5.205 Aug 2026Release notes
Open source →What's Changed
- feat(Spec): improve
AttributeTranslatorInterfaceby @DerManoMann in #2096 - Cleanup Rector rules and adjust dev dependencies by @DerManoMann in #2097
- feat(Spec): simplify sharing of
TokenScannerby @DerManoMann in #2099 - Add roadmap by @DerManoMann in #2101
- chore(Spec): simplify specification population by replacing
foreachloops with unpacking operations by @DerManoMann in #2102 - feat(Spec): clarify attribute translator lifecycle and add tests by @DerManoMann in #2100
- Remove redundant
descriptionattribute from#[OA\Property]annotation by @DerManoMann in #2103 - chore(Rector): update config by @DerManoMann in #2105
- chore(Spec): refactor
OpenApi31Compiler: consolidate repetitive patterns by @DerManoMann in #2106 - feat(Spec): nullable summary / description by @DerManoMann in #2107
Full Changelog: 6.5.1...6.5.2
- feat(Spec): improve
-
6.5.130 Jul 2026Release notes
Open source →What's Changed
- feat(Spec): widen the type of the
contentparameter (MediaType) to acceptMediaType|array|nullby @DerManoMann in #2088 - feat(Spec): add string-backed enums for fixed OpenAPI spec values by @DerManoMann in #2089
- feat(Spec): add reference to
Speceficationto buildResultby @DerManoMann in #2093 - feat(Spec): widen
Buildersources to accept\Reflectorinstances too (except inCLASSICmode) by @DerManoMann in #2091 - feat(Spec): add media type shortcuts by @DerManoMann in #2090
- feat(SPEC): add shortcut attribute
Itemsby @DerManoMann in #2094 - Remove
spec-attributes.md; content no longer relevant or needed by @DerManoMann in #2095
Full Changelog: 6.5.0...6.5.1
- feat(Spec): widen the type of the
-
6.5.027 Jul 2026Release notes
Open source →Spec Pipeline
This version introduces the
specpipeline - a new set of attributes that will replace the current (classic) annotations/attributes.
It is using a radically different approach in how the code is organized which makes it a lot easier to maintain.Right now, the new code is disabled and nothing changes. Key is that in order to try the new code the new
OpenApi\Builderneeds to be used. Again - using theBuilderwill, by default, change nothing and the currentclassiccode is used.The new
Builder::setMode()method allows to run the newspecpipeline in two modes:HYBRID: Enablesspecsupport where found and also routes allclassicannotations/attributes through the newspecpipeline.
Under the hood the classicGeneratoris used to load/instantiateclassicannotations/attributes. Then a custom bridge translates all of those into new thinOpenApi\Specattributes and adds them to thespecpipeline.SPEC: Only newspecattributes are processed.
HYBRIDis a good way to see how compatible things are and also a migration path, as a codebase could be upgrade file by file.All
specpipeline related commits have been omitted from the change list for clarity and brevity. Going forward these will be marked asfeat(Spec):and listed as all other changes.Testing and Feedback
All current tests pass in
HYBRIDmode. However, there hasn't been any testing on actual projects yet. Testing the new code inhybridmode on existing projects and feedback would be greatly appreciated.What's Changed
- fix: correct TokenScanner::scanFile() @return phpdoc type by @DerManoMann in #2053
- refactor: modernize tools code (strict comparisons, str_* functions, type hints) by @DerManoMann in #2052
- chore: add CLAUDE.md with project tooling and test conventions by @DerManoMann in #2055
- refactor: extract shared TypeResolver core from TypeInfoTypeResolver by @DerManoMann in #2059
- Bump actions/setup-node from 4 to 6 by @dependabot[bot] in #2060
- Remove workflow to semi-automate backporting PRs to the 5.x branch by @DerManoMann in #2062
- feat: add Pipeline grouping and PipeInterface by @DerManoMann in #2056
- fix: replace
CustomName/BlinkwithCustomName-Blinkin examples and annotations by @DerManoMann in #2069 - Exclude empty tags array from serialization by @DerManoMann in #2086
Full Changelog: 6.4.0...6.5.0
-
6.4.012 Jul 2026Release notes
Open source →What's Changed
- feat: add Builder as unified entry point by @DerManoMann in #2044
Full Changelog: 6.3.2...6.4.0
-
6.3.210 Jul 2026Release notes
Open source →What's Changed
- Use classes from new
Utilsnamespace by @DerManoMann in #2041 - refactor: extract SourceScanner from Generator by @DerManoMann in #2042
- Add CS
multiline_comment_opening_closingrule by @DerManoMann in #2043 - Replace Spectral with Redocly for spec validation by @DerManoMann in #2045
- Add CS phpdoc_line_span rule for class/method docblocks by @DerManoMann in #2048
- Remove dev dep
composer/package-versions-deprecatedby @DerManoMann in #2049 - refactor: rewrite doc generation tools by @DerManoMann in #2050
- Fix CleanUnusedComponents removing schemas referenced via JsonContent by @DerManoMann in #2047
Full Changelog: 6.3.1...6.3.2
- Use classes from new
-
6.3.106 Jul 2026Release notes
Open source →What's Changed
- fix: add native array|string type to Serializer::doDeserializeBaseProperty() by @DerManoMann in #2036
- refactor: extract Generator::UNDEFINED to standalone Undefined class by @DerManoMann in #2035
- refactor: remove version branching from type resolvers by @DerManoMann in #2037
- refactor: extract generic docblock parsing to
Utils\DocBlockParserby @DerManoMann in #2038 - refactor: move
TokenScannerand other utils toOpenApi\Utilsnamespace by @DerManoMann in #2039 - refactor: extract TypeMapper as pipeline-agnostic type mapping utility by @DerManoMann in #2040
Full Changelog: 6.3.0...6.3.1
-
6.3.029 Jun 2026Release notes
Open source →What's Changed
- Bump actions/checkout from 6 to 7 by @dependabot[bot] in #2026
- Bump actions/cache from 5 to 6 by @dependabot[bot] in #2029
- fix: drop unmappable types in nested and union schemas by @alleknalle in #2028
- Fix/clean unused components performance by @DerManoMann in #2030
- fix: PHP 8.5 deprecation for null as array offset by @DerManoMann in #2032
- feat: resolve phpdoc array shapes to object schemas by @alleknalle in #2027
- Refactor/analysis merge annotation by @DerManoMann in #2031
- Refresh docs by @DerManoMann in #2033
New Contributors
- @alleknalle made their first contribution in #2028
Full Changelog: 6.2.0...6.3.0
-
6.2.014 Jun 2026Release notes
Open source →What's Changed
- Make
AbstractAnnotation::$_contextnon-nullable by @krissss in #2008 - fix: prevent PHP "mixed" from being emitted as invalid OpenAPI "type: mixed" by @krissss in #2011
- Add return type to
GeneratorAwareInterface::setGenerator()and align related code by @DerManoMann in #2013 - Add domain glossary (CONTEXT.md) by @DerManoMann in #2016
- fix: remove redundant is_array() check in Serializer by @DerManoMann in #2020
- fix: remove consumed annotations from analysis registry by @DerManoMann in #2024
Full Changelog: 6.1.2...6.2.0
- Make
-
6.1.228 Apr 2026Nothing published for this version
-
6.1.119 Apr 2026Nothing published for this version
-
6.1.006 Apr 2026Nothing published for this version
-
6.0.628 Feb 2026Nothing published for this version
-
6.0.510 Feb 2026Nothing published for this version
-
6.0.403 Feb 2026Nothing published for this version
-
6.0.322 Jan 2026Nothing published for this version
-
6.0.216 Jan 2026Nothing published for this version
-
6.0.115 Jan 2026Nothing published for this version
-
6.0.012 Jan 2026Nothing published for this version
-
6.0.0-RC408 Jan 2026 pre-releaseNothing published for this version
-
6.0.0-RC302 Jan 2026 pre-releaseNothing published for this version
-
6.0.0-RC203 Dec 2025 pre-releaseNothing published for this version
-
6.0.0-RC124 Nov 2025 pre-releaseNothing published for this version
-
5.8.302 Mar 2026Nothing published for this version
-
5.8.210 Feb 2026Nothing published for this version
-
5.8.103 Feb 2026Nothing published for this version
-
5.8.028 Jan 2026Nothing published for this version
-
5.7.813 Jan 2026Nothing published for this version
-
5.7.702 Jan 2026Nothing published for this version
-
5.7.604 Dec 2025Nothing published for this version
-
5.7.528 Nov 2025Nothing published for this version
-
5.7.427 Nov 2025Nothing published for this version
-
5.7.317 Nov 2025Nothing published for this version
-
5.7.217 Nov 2025Nothing published for this version
-
5.7.116 Nov 2025Nothing published for this version
-
5.7.011 Nov 2025Nothing published for this version
-
5.6.110 Nov 2025Nothing published for this version
-
5.6.004 Nov 2025Nothing published for this version
-
5.5.227 Oct 2025Nothing published for this version
-
5.5.117 Oct 2025Nothing published for this version
-
5.5.016 Oct 2025Nothing published for this version
-
5.4.209 Oct 2025Nothing published for this version
-
5.4.108 Oct 2025Nothing published for this version
-
5.4.012 Sep 2025Nothing published for this version
-
5.3.225 Aug 2025Nothing published for this version
-
5.3.116 Aug 2025Nothing published for this version
-
5.3.014 Aug 2025Nothing published for this version
-
5.2.011 Aug 2025Nothing published for this version
-
5.1.415 Jul 2025Nothing published for this version
-
5.1.320 May 2025Nothing published for this version
-
5.1.214 May 2025Nothing published for this version
-
5.1.127 Apr 2025Nothing published for this version
-
5.1.018 Apr 2025Nothing published for this version
-
5.0.719 Mar 2025Nothing published for this version
-
5.0.605 Mar 2025Nothing published for this version
-
5.0.524 Feb 2025Nothing published for this version
-
5.0.418 Feb 2025Nothing published for this version
-
5.0.315 Jan 2025Nothing published for this version
-
5.0.209 Jan 2025Nothing published for this version